1. 首页
  2. 网络安全工具

SQLassie 数据库防火墙

SQLassie是一种数据库防火墙,可在运行时检测并阻止SQL注入攻击。

SQLassie 数据库防火墙

用法

SQLassie目前只支持MySQL。要启动SQLassie,您需要配置SQLassie如何连接到MySQL服务器,启动SQLassie侦听现在受保护的其他端口,然后将应用程序配置为通过此备用端口而不是直接连接到MySQL。

例如,考虑一种情况,即您运行MySQL数据库引擎并侦听域套接字上的连接/var/run/mysql/mysqld.sock并运行MediaWiki安装。

首先,使用启动SQLassie

./sqlassie -s /var/run/mysql/mysqld.sock -l 3307 然后,编辑MediaWiki的配置文件LocalSettings.php连接到端口3307。

$wgDBServer = “127.0.0.1:3307”

请注意,您不能在这里使用localhost; 默认情况下,MySQL将其解释localhost为使用直接数据库域套接字连接的请求,并且大多数Web应用程序也以这种方式运行。因此,您必须使用显式字符串127.0.0.1才能强制连接通过TCP端口。有关更多信息,请查看应用程序的文档。

测试

现在您已经掌握了所有内容并运行,请检查您的Web应用程序是否仍然加载。如果是,您可以检查SQLassie是否正确过滤针对您的数据库的攻击。

建立终端并运行
mysql -u -p -h 127.0.0.1 -P 3307 -C

通过SQLassie连接到数据库。

我们可以在这里进行一些测试。首先,SQLassie将阻止MySQL生成的大多数错误消息,因为这些信息对黑客来说很有价值。从跑步开始

SELECT * FROM foo;
通常情况下,MYSQL会响应一个没有选择数据库的错误,但是SQLassie会拦截查询,而是响应Empty set。在这种情况下,SQLassie认识到查询是一个SELECT查询,而不是给出错误,它只是提供了一个基于查询类型有意义的响应。
接下来,尝试运行

SELECT first_name, last_name, age FROM user WHERE id = 1323 UNION SELECT User, Password, 1 FROM mysql.user;
SQLassie将此查询标识为包含架构发现攻击并阻止查询,并使用虚假的空Empty set消息进行响应。

编译

SQLassie附带两个Makefile:一个用于gcc,一个用于clang 。此时对gcc的支持更加彻底,因此要开始构建,请更改为源目录
cd src
并通过运行链接到gcc Makefile

ln -s Makefile.gcc Makefile
接下来,您需要安装一些依赖项。在基于Debian的系统上,您应该通过运行获得所需的一切
apt-get install make g bison flex libboost-regex-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev libboost-filesystem-dev libmysqlclient-dev
最后,通过运行编译
make
生成的二进制文件将放在bin目录中。

项目地址

传送门

文章来源:【安全时代】 原文链接:https://www.agesec.com/tool/6587.html

安全时代全部内容仅适用于网络安全技术爱好者学习研究,学习中请遵循国家相关法律法规。

安全时代全部数据来源互联网,不代表安全时代立场,如侵犯您权益可邮箱联系我们,详情:版权纠纷

发表评论

电子邮件地址不会被公开。 必填项已用*标注