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 | sudo apt updat |
允许防火墙访问
1 | sudo ufw allow 'Nginx Full' |
验证nginx服务状态
1 | sudo systemctl status nginx |
用浏览器访问http://192.168.0.41 验证nginx服务是否正常访问
将以下内容添加到 /var/ossec/etc/ossec.conf
文件中,以配置 Wazuh 代理并监控 nginx访问日志
1 | <localfile> |
如下图所示:
重启wazuh-agent使配置生效
1 | sudo systemctl restart wazuh-agent |
2) 安装apach2并配置wazuh-agent
在192.168.0.43上安装apach2
1 | sudo apt update |
允许防火墙访问
1 | sudo ufw allow 'Apache' |
验证nginx服务状态
1 | sudo systemctl status apache2 |
用浏览器访问http://192.168.0.43 验证apache2服务是否正常访问
将以下内容添加到 /var/ossec/etc/ossec.conf
文件中,以配置 Wazuh 代理并监控 apache2访问日志
1 | <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 | <group name="attack,"> |
将自定义规则集加入到Wazuh server /var/ossec/etc/ossec.conf
的配置文件中
1 | <ossec_config> |
将活动响应块添加到Wazuh服务器/var/ossec/etc/ossec.conf
文件:
防火墙丢弃命令与Ubuntu本地iptables防火墙集成,并丢弃来自攻击端点的网络连接60秒
1 | <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/
关注:微信公众号,一起学习成长!