开源安全管理平台wazuh-暴力破解检测与响应
文章目录
- 一、环境准备
- 二、wazuh 配置
- Wazuh server配置
- 三、模拟攻击
- 四、效果验证
Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。
暴力破解是网络安全领域一种常见且顽固的威胁,像Linux端点的SSH这样的服务通常容易受到暴力破解攻击,攻击者利用它来非法访问端点和服务。有效应对暴力破解需要“侦测”和“防护”双管齐下。Wazuh通过关联多个认证失败事件来识别暴力破解攻击并可以配置主动响应以阻止攻击者的IP地址。
本文通过POC来验证wazuh对暴力破解检测与响应能力
一、环境准备
POC环境如下图所示:
主机 | 描述 |
---|---|
安全管理平台wazuh-server (192.168.0.40) | All in one安装wazuh,监控wazuh-agent上报的告警信息进行暴力破解检测并联动wazuh-agent进行封堵响应 |
ubuntu应用服务器 (192.168.0.30) | ubuntu应用服务器ssh服务,安装wazuh-agent ,模拟被攻击的服务器 |
Kali Linux模拟攻击机器 (192.168.0.65) | Kali linux ,模拟攻击机器 |
二、wazuh 配置
Wazuh使用主动响应模块在受监控端点上运行脚本或可执行文件,对某些触发器采取行动。在本用例中,我们模拟对ubuntu应用服务器端点的SSH暴力破解攻击,并配置主动响应模块以阻止攻击端点的IP地址。目标是防止SSH暴力破解攻击。
Wazuh附带一套用于主动响应的默认脚本。这些脚本位于Linux/Unix端点的/var/ossec/active-response/bin/
目录中。firewall-drop主动响应脚本与Linux/Unix操作系统兼容。它使用iptables来阻止恶意IP地址。
Wazuh server配置
1、打开Wazuh服务器/var/ossec/etc/ossec.conf
文件,并验证在<ossec_config>
块中存在名为firewall-drop的<command>
块,其配置如下:
<command><name>firewall-drop</name><executable>firewall-drop</executable><timeout_allowed>yes</timeout_allowed>
</command>
<command>
块包含有关在Wazuh代理上执行的操作的信息:
<name>
:为命令设置名称。在本例中,为firewall-drop。<executable>
:指定在触发时必须运行的响应脚本或可执行文件。在本例中,是firewall-drop可执行文件。<timeout_allowed>
:允许在一段时间后超时。在此处,此标签设置为yes,表示状态性主动响应。
2、将以下 <active-response>
块添加到 Wazuh 服务器 /var/ossec/etc/ossec.conf
配置文件中:
<ossec_config><active-response><disabled>no</disabled><command>firewall-drop</command><location>local</location><rules_id>5763</rules_id><timeout>180</timeout></active-response>
</ossec_config>
<comand>
:指定要配置的命令。这是在上一步骤中定义的防火墙丢弃命令 firewall-drop。<location>
:指定命令执行的位置。使用本地值表示命令在触发事件发生的监控端点处执行。<rules_id>
:如果规则ID 5763 - SSHD暴力破解尝试访问系统触发,则活动响应模块将执行该命令。<timeout>
:指定活动响应操作必须持续的时间。在本用例中,模块将阻止执行暴力破解攻击的端点IP地址180秒。
3、重新启动Wazuh管理器服务以应用更改:
sudo systemctl restart wazuh-manager
三、模拟攻击
我们通过Kali Linux自带的Hydra进行模拟攻击。
请注意:本文介绍的模拟攻击仅限于自己搭建测试环境进行POC验证。请不要使用这些工具和方法对其它目标主机进行测试,使用这些工具前,务必获得目标系统的明确书面授权,未经授权的测试属违法行为。
Hydra 配合 SecLists 工具包,可以显著提升密码破解测试的效率和成功率。
SecLists 是一款在安全测试中非常受欢迎的开源集合项目,提供了各种类型的字典列表,包括但不限于用户名、密码、目录路径、子域名等。Hydra 则是一款强大的网络登录破解工具,支持多种协议。将两者结合,可以针对各种网络服务进行高效的密码暴力破解测试。
在 Kali Linux 中,SecLists 通常位于 /usr/share/seclists
目录。如果系统未安装,可以使用以下命令安装:
sudo apt update && sudo apt install seclists
在Kali Linux(192.168.0.65)上执行hydra 对 192.168.0.30 进行模拟攻击
hydra -L /usr/share/seclists/Usernames/top-usernames-shortlist.txt -P /usr/share/seclists/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt 192.168.0.30 ssh -t 4 -vV
四、效果验证
可以看到触发了wazuh的告警规则,在Wazuh仪表板中看到多次的登录失败的告警数据,并生成了试图暴力破解的攻击告警。
在详情中可以清楚的看到多次尝试暴力破解ssh登录
可以看到wazuh检测到有ssh暴力破解的行为并自动调用防火墙对攻击IP进行封堵,封堵180秒。
在Hydra的攻击日志可以看到,被wazuh进行响应封堵后ssh超时报错,说明已经成功阻断阻止了攻击行为。
至此,我们通过一个实际的POC实例验证了wazuh对ssh暴力破解攻击行为的检测和响应,通过“侦测”和“防护”双管齐下能有效减轻ssh暴力破解威胁攻击风险。
作者博客:http://xiejava.ishareread.com/