XieJava的博客

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

sudo apt updat
sudo apt install nginx

允许防火墙访问

sudo ufw allow 'Nginx Full'
sudo ufw status
sudo ufw app list

验证nginx服务状态

sudo systemctl status nginx

用浏览器访问http://192.168.0.41 验证nginx服务是否正常访问 nginx

将以下内容添加到 /var/ossec/etc/ossec.conf 文件中,以配置 Wazuh 代理并监控 nginx访问日志

  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/nginx/access.log</location>
  </localfile>

如下图所示:

nginx访问日志路径

重启wazuh-agent使配置生效

sudo systemctl restart wazuh-agent

2) 安装apach2并配置wazuh-agent

在192.168.0.43上安装apach2

sudo apt update
sudo apt install apache2

允许防火墙访问

sudo ufw allow 'Apache'
sudo ufw status
sudo ufw app list

验证nginx服务状态

sudo systemctl status apache2

用浏览器访问http://192.168.0.43 验证apache2服务是否正常访问

apache2

将以下内容添加到 /var/ossec/etc/ossec.conf 文件中,以配置 Wazuh 代理并监控 apache2访问日志

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/apache2/access.log</location>
</localfile>

如下图所示:

apache访问日志路径

重启wazuh-agent使配置生效

sudo systemctl restart wazuh-agent

2、wazuh-server配置

1)配置IP信息黑名单

下载Alienvault IP信誉数据库:

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信誉数据库中:

sudo echo "192.168.0.65" >> /var/ossec/etc/lists/alienvault_reputation.ipset

下载一个将 .ipset 格式转换为 .cdb 列表格式的脚本:

sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py

通过运行iplist-to-cdblist.py将ipset转换成.cdb 列表格式blacklist-alienvault

sudo python3 /tmp/iplist-to-cdblist.py /var/ossec/etc/lists/alienvault_reputation.ipset /var/ossec/etc/lists/blacklist-alienvault

为生成的文件分配正确的权限:

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主动响应脚本。

<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 的配置文件中

<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秒

<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管理器以应用更改生效:

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”微信公众号

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