开源安全管理平台wazuh-检测SQL注入攻击

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。

SQL 注入是一种攻击,在这种攻击中,威胁行为者将恶意代码插入传输到数据库服务器的字符串中进行解析和执行。成功的 SQL 注入攻击可以未经授权访问数据库中包含的机密信息。

我们可以使用 Wazuh 从 Web 服务器日志中检测 SQL 注入攻击,这些日志包含 select、union 和其他常见 SQL 注入模式等模式。本文通过POC来验证wazuh检测SQL注入攻击。

一、环境准备

POC测试环境拓扑如下图所示:

POC测试环境拓扑

主机 说明
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent上报的告警信息进行威胁检测
DVWA靶机
(192.168.0.43)
被监控主机安装wazuh-agent,安装DVWA靶机,模拟被攻击

DVWA靶机安装参考《CentOS7+LAMP+DVWA靶机搭建
首先安装LAMP环境

1
2
apt update
apt install -y apache2 mariadb-server mariadb-client php php-mysqli php-gd libapache2-mod-php

下载DVWA的软件包
进入到默认的web发布目录

1
2
cd /var/www/html
git clone https://github.com/digininja/DVWA.git

将config/config.inc.php.dist复制成config/config.inc.php并配置环境

1
cp config.inc.php.dist config.inc.php

用root用户登录数据库,然后执行以下命令创建dvwa数据库:

1
2
3
4
5
6
7
8
9
10
11
mysql> create database dvwa;
Query OK, 1 row affected (0.00 sec)

mysql> create user dvwa@localhost identified by 'p@ssw0rd';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on dvwa.* to dvwa@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

默认用户 = admin
默认密码 = password
将安全级别设为 Low(最易注入)

二、wazuh配置

将以下行添加到 Wazuh 代理 /var/ossec/etc/ossec.conf 文件中。允许 Wazuh-agent 代理监控 Apache 服务器的访问日志:

1
2
3
4
5
6
<ossec_config>
<localfile>
<log_format>apache</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>
</ossec_config>

重新启动 Wazuh 代理以使应用配置更改生效:

1
sudo systemctl restart wazuh-agent

三、模拟攻击

访问DVWA的靶机地址http://192.168.0.43/DVWA/login.php
默认用户 = admin
默认密码 = password
登录后找到SQL Injection 输入例如”1' UNION SELECT database(), version()“ 等SQL注入Payload

DVWA-SQL注入

四、效果验证

在wazuh此处的预期结果是规则 ID 为 31164 SQL injection attempt 的告警,但成功的 SQL 注入尝试会生成规则 ID 为 31106 A web attack returned code 200 (success)的告警。

sql注入检测

我们可以点击详情看到具体的SQL注入攻击日志

SQL注入检测日志详情

至此,我们通过POC验证了wazuh检测SQL注入攻击场景。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

0%