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 现有的频率/阈值逻辑保持一致,而不是与其冲突,并且仅为了本实验室的目的,将匹配到的行为提升到更高、更可见的严重级别。

## 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
```

**Dashboard 同步修复** - 当 Web UI 在设置完成后未能及时显示传入的日志时,重启 indexer 和 dashboard 服务解决了此问题:
```
sudo systemctl restart wazuh-indexer
sudo systemctl restart wazuh-dashboard
```

**Agent 连接检查** - 确认 agent 没有在不知不觉中中断其与 manager 的连接:
```
sudo tail -n 20 /var/ossec/logs/ossec.log
```

## 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 的默认噪音阈值并触发自定义规则。

## 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/)

## 展现的技能
- 在默认规则集的基础上编写和调整自定义 Wazuh 关联规则
- 在真实的多组件 SIEM 部署下进行 Linux 服务/权限故障排除
- 模拟攻击者行为(SSH 密码猜测)以验证检测逻辑
- 将检测映射到 **MITRE ATT&CK** 框架
- 端到端验证:日志源 → 规则匹配 → dashboard 告警
标签:SSH暴力破解, Wazuh, 安全实验环境, 安全运营, 扫描框架