Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。
《开源安全管理平台wazuh-安装与配置》介绍了wazuh的安装和配置,本文基于已经完成的wazuh安装配置基础上通过POC来验证wazuh的功能,通过wazuh来阻止已知的恶意IP的访问。
一、环境准备#
POC环境如下图所示:

| 主机 | 描述 |
|---|
安全管理平台wazuh-server (192.168.0.40) | All in one安装wazuh,监控wazuh-agent上报的告警信息进行可视化展示,并联动wazuh-agent进行主动的拦截阻止 |
Nginx服务器 (192.168.0.41) | 安装Nginx服务及wazuh-agent |
Apache2服务器 (192.168.0.43) | 安装Apache2服务及wazuh-agent |
kali (192.168.0.65) | Kali (模拟恶意IP主机) |
以上除192.168.0.65是kali linux外,其他主机都是ubuntu。
二、wazuh配置#
1、wazuh-agent配置#
1)安装nginx服务并配置wazuh-agent#
在192.168.0.41上安装nginx
1
2
| sudo apt updat
sudo apt install nginx
|
允许防火墙访问
1
2
3
| sudo ufw allow 'Nginx Full'
sudo ufw status
sudo ufw app list
|
验证nginx服务状态
1
| sudo systemctl status nginx
|
用浏览器访问http://192.168.0.41 验证nginx服务是否正常访问

将以下内容添加到 /var/ossec/etc/ossec.conf 文件中,以配置 Wazuh 代理并监控 nginx访问日志
1
2
3
4
| <localfile>
<log_format>syslog</log_format>
<location>/var/log/nginx/access.log</location>
</localfile>
|
如下图所示:

重启wazuh-agent使配置生效
1
| sudo systemctl restart wazuh-agent
|
2) 安装apach2并配置wazuh-agent#
在192.168.0.43上安装apach2
1
2
| sudo apt update
sudo apt install apache2
|
允许防火墙访问
1
2
3
| sudo ufw allow 'Apache'
sudo ufw status
sudo ufw app list
|
验证nginx服务状态
1
| sudo systemctl status apache2
|
用浏览器访问http://192.168.0.43 验证apache2服务是否正常访问

将以下内容添加到 /var/ossec/etc/ossec.conf 文件中,以配置 Wazuh 代理并监控 apache2访问日志
1
2
3
4
| <localfile>
<log_format>syslog</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>
|
如下图所示:

重启wazuh-agent使配置生效
1
| sudo systemctl restart wazuh-agent
|
2、wazuh-server配置#
1)配置IP信息黑名单#
下载Alienvault IP信誉数据库:
1
| sudo wget https://iplists.firehol.org/files/alienvault_reputation.ipset -O /var/ossec/etc/lists/alienvault_reputation.ipset
|
将攻击端点的IP地址(kali的IP地址192.168.0.65)添加到IP信誉数据库中:
1
| sudo echo "192.168.0.65" >> /var/ossec/etc/lists/alienvault_reputation.ipset
|
下载一个将 .ipset 格式转换为 .cdb 列表格式的脚本:
1
| sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py
|
通过运行iplist-to-cdblist.py将ipset转换成.cdb 列表格式blacklist-alienvault
1
| sudo python3 /tmp/iplist-to-cdblist.py /var/ossec/etc/lists/alienvault_reputation.ipset /var/ossec/etc/lists/blacklist-alienvault
|
为生成的文件分配正确的权限:
1
| sudo chown wazuh:wazuh /var/ossec/etc/lists/blacklist-alienvault
|
确认一下恶意IP192.168.0.65是否在黑名单里

2)配置响应模块以阻止恶意IP地址#
在Wazuh服务器上的 /var/ossec/etc/rules/local_rules.xml 自定义规则集文件中添加一个自定义规则以触发Wazuh主动响应脚本。
1
2
3
4
5
6
7
| <group name="attack,">
<rule id="100100" level="10">
<if_group>web|attack|attacks</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/blacklist-alienvault</list>
<description>IP address found in AlienVault reputation database.</description>
</rule>
</group>
|
将自定义规则集加入到Wazuh server /var/ossec/etc/ossec.conf 的配置文件中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <ossec_config>
<ruleset>
<!-- Default ruleset -->
<decoder_dir>ruleset/decoders</decoder_dir>
<rule_dir>ruleset/rules</rule_dir>
<rule_exclude>0215-policy_rules.xml</rule_exclude>
<list>etc/lists/audit-keys</list>
<list>etc/lists/amazon/aws-eventnames</list>
<list>etc/lists/security-eventchannel</list>
<list>etc/lists/blacklist-alienvault</list>
<!-- User-defined ruleset -->
<decoder_dir>etc/decoders</decoder_dir>
<rule_dir>etc/rules</rule_dir>
</ruleset>
</ossec_config>
|
将活动响应块添加到Wazuh服务器/var/ossec/etc/ossec.conf 文件:
防火墙丢弃命令与Ubuntu本地iptables防火墙集成,并丢弃来自攻击端点的网络连接60秒
1
2
3
4
5
6
7
8
9
| <ossec_config>
<active-response>
<disabled>no</disabled>
<command>firewall-drop</command>
<location>local</location>
<rules_id>100100</rules_id>
<timeout>60</timeout>
</active-response>
</ossec_config>
|
重新启动Wazuh管理器以应用更改生效:
1
| sudo systemctl restart wazuh-manager
|
三、效果验证#
1、模拟攻击#
用kali(192.168.0.65)访问 http://192.168.0.41和http://192.168.0.43
攻击端点首次连接到受害者的Web服务器。首次连接后,Wazuh主动响应模块临时阻止对Web服务器的任何后续连接60秒。

通过浏览器访问可以看到首次访问后每次都会被阻止60秒才能继续访问。
通过curl http://192.168.0.41和curl http://192.168.0.43 首次可以返回信息,每次过60秒才能再次返回信息。
2、可视化效果验证#
可以在Wazuh仪表板中可视化警报数据。在威胁狩猎模块,添加过滤器以查询警报。

在威胁狩猎模块可以看到有恶意IP地址在信誉库中被匹配到的告警,被防火墙自动阻断响应的告警以及60秒以后自动解除阻断的处置信息。
在详情信息中可以看到攻击阻止的详细信息,通过攻击源IP匹配到了信誉库的黑名单,触发了防火墙封堵规则进行了自动封堵。

至此,我们通过一个完整的POC验证了wazuh发现恶意IP攻击到自动封堵阻止攻击的全过程。
作者博客:http://xiejava.ishareread.com/

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