开源安全管理平台wazuh-阻止恶意IP访问

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

一、环境准备

POC环境如下图所示:

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服务是否正常访问
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>

如下图所示:

nginx访问日志路径

重启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服务是否正常访问

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>

如下图所示:

apache访问日志路径

重启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是否在黑名单里

恶意IP在信誉库的黑名单中

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.41curl http://192.168.0.43 首次可以返回信息,每次过60秒才能再次返回信息。

2、可视化效果验证

可以在Wazuh仪表板中可视化警报数据。在威胁狩猎模块,添加过滤器以查询警报。

告警信息

在威胁狩猎模块可以看到有恶意IP地址在信誉库中被匹配到的告警,被防火墙自动阻断响应的告警以及60秒以后自动解除阻断的处置信息。

在详情信息中可以看到攻击阻止的详细信息,通过攻击源IP匹配到了信誉库的黑名单,触发了防火墙封堵规则进行了自动封堵。

告警详情

至此,我们通过一个完整的POC验证了wazuh发现恶意IP攻击到自动封堵阻止攻击的全过程。


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


“fullbug”微信公众号

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

0%