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 <user> -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://github.com/super-l/sqlassie

本文原创,作者:congtou,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/241682.html

发表评论