Vikttee/wazuh-ssh-bruteforce-detection

GitHub: Vikttee/wazuh-ssh-bruteforce-detection

基于 Wazuh SIEM 编写自定义 SSH 暴力破解检测规则,并通过模拟攻击流量与 MITRE ATT&CK 映射完成端到端告警验证。

Stars: 0 | Forks: 0

# Wazuh SIEM - 自定义 SSH 暴力破解检测规则 这是一个家庭实验室项目,旨在展示使用 **Wazuh** 进行检测工程:编写自定义关联规则、调整部署、针对实验室 VM 模拟 SSH 暴力破解攻击,并端到端验证告警。 ## 为什么做这个项目 任何人都可以安装 SIEM。有趣的部分在于编写能够捕捉真实攻击者行为的规则,同时不被海量的噪音淹没,并且能够通过你自己的攻击流量证明规则确实触发了。本仓库记录了完整的闭环过程:**构建 → 破坏 → 检测 → 验证**。 ## 实验室环境 | 组件 | 角色 | 详情 | |---|---|---| | Wazuh Manager / Dashboard | SIEM stack | 运行在 Kali Linux 上 | | 监控端点 | 攻击目标 | Ubuntu Server (`10.0.2.6`),日志源:`/var/log/auth.log` | 两台 VM 都位于隔离的内部实验室网络中(私有 `10.0.2.0/24` 网段)——这是一个自包含的检测实验室,并非针对任何外部或第三方系统的流量。 ## 1. 自定义检测规则 **文件:** `/var/ossec/etc/rules/local_rules.xml` 自定义规则并没有从零开始编写暴力破解检测器,而是**继承了 Wazuh 内置的系统告警**(规则 ID `2502`、`5712`、`5720`)。这使其与 Wazuh 现有的频率/阈值逻辑保持一致,而不是与其冲突,并且仅为了本实验室的目的,将匹配到的行为提升到更高、更可见的严重级别。 ![自定义规则配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/40/4027cb929af26f844a6556a3f90a5b8ce05ec3d17a84ec7c270d69aebb7feb2b.png) ## 2. 主机优化与环境调优 在资源受限的 VM 中让多服务的 SIEM stack(indexer、manager、dashboard)保持稳定,需要进行一些实质性的故障排除: **权限修正** - 修复了 indexer 的日志和数据目录的所有权问题,这些问题曾导致初始化崩溃: ``` sudo chown -R wazuh-indexer:wazuh /var/log/wazuh-indexer sudo chmod -R 775 /var/log/wazuh-indexer sudo chown -R wazuh-indexer:wazuh /var/lib/wazuh-indexer ``` **Systemd 生命周期延长** - 延长了启动超时时间,使 indexer 节点在有限的实验室资源下有足够的时间启动: ``` sudo systemctl edit wazuh-indexer ``` ``` [Service] TimeoutStartSec=300 ``` ![命令执行](https://static.pigsec.cn/wp-content/uploads/repos/cas/31/31b011194548ec5694e263740b69b6cab4fd8746ba61b31253b00c055a0e2f3a.png) **Dashboard 同步修复** - 当 Web UI 在设置完成后未能及时显示传入的日志时,重启 indexer 和 dashboard 服务解决了此问题: ``` sudo systemctl restart wazuh-indexer sudo systemctl restart wazuh-dashboard ``` ![攻击循环的终端输出](https://static.pigsec.cn/wp-content/uploads/repos/cas/91/9193d5a89263542cce29f6193569458db910d5db42f3ec801fbfec38101f6aeb.png) **Agent 连接检查** - 确认 agent 没有在不知不觉中中断其与 manager 的连接: ``` sudo tail -n 20 /var/ossec/logs/ossec.log ``` ![显示已触发告警的 Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/cas/bf/bf3604c70cae478528364fea837b99414ce211722439ec550ef650ccca1e70e1.png) ## 3. 攻击模拟 为了生成该规则旨在捕获的失败登录遥测数据,从 Kali 机器向实验室自己的 Ubuntu VM 运行了一个简短的循环: ``` for i in {1..10}; do ssh -o ConnectTimeout=2 -o NumberOfPasswordPrompts=1 bubblegum@10.0.2.6 done ``` 这会连续触发 10 次快速的失败身份验证——足以突破 Wazuh 的默认噪音阈值并触发自定义规则。 ![告警详情视图](https://static.pigsec.cn/wp-content/uploads/repos/cas/16/161bc184acbe30e99fb4c5884c265b80679773de3e2ed94cc01c9bd328376332.png) ## 4. 验证 Wazuh Dashboard 捕获并正确分类了模拟攻击: - **Rule ID:** `100002`(自定义) - **告警严重性:** Level 10 - **分类:** 自定义 SSH 暴力破解告警(通过 PAM/SSHD 触发) - **MITRE ATT&CK 映射:** [T1110.001 - Brute Force: Password Guessing](https://attack.mitre.org/techniques/T1110/001/) ![告警详情视图,规则分解](https://static.pigsec.cn/wp-content/uploads/repos/cas/cd/cdcbc5971b2e86bb2504b0360259010a374dec87995c243397ac7e8553d5a1c7.png) ## 展现的技能 - 在默认规则集的基础上编写和调整自定义 Wazuh 关联规则 - 在真实的多组件 SIEM 部署下进行 Linux 服务/权限故障排除 - 模拟攻击者行为(SSH 密码猜测)以验证检测逻辑 - 将检测映射到 **MITRE ATT&CK** 框架 - 端到端验证:日志源 → 规则匹配 → dashboard 告警
标签:SSH暴力破解, Wazuh, 安全实验环境, 安全运营, 扫描框架