ZALO-DART/Wazuh-detection-lab
GitHub: ZALO-DART/Wazuh-detection-lab
一个基于 Wazuh 与 Suricata 的检测实验室,专注于自定义解码器、规则开发与 MITRE ATT&CK 映射,帮助优化告警并提升 SOC 检测能力。
Stars: 0 | Forks: 0
# Wazuh 检测实验室
## 概述
本项目扩展了之前实施的基础实验室 **VMware 中的 Wazuh + Suricata 实验室**,旨在通过 Wazuh 集中处理安全事件,集成 Suricata 作为 IDS,并监控一个 Ubuntu 代理和一个 Windows 代理。
在此已正常运行的基础设施之上,本仓库专门聚焦于 **在 Wazuh 中创建自定义 decoder 和规则**、**告警调优** 以及 **将检测映射到 MITRE ATT&CK**。
## 与基础实验室的关系
此检测实验室建立在 `Wazuh-suricata-lab` 项目的基础之上,该项目已配置好此项工作所需的技术基础:
- 在 VMware 中部署 Wazuh Server
- 集成了带有 Suricata 和 Wazuh Agent 的 Ubuntu Server
- 集成了带有 Wazuh Agent 的 Windows 10
- 验证了 Wazuh Dashboard 中的事件和告警接入
- 确认了平台内有两个活跃的代理
得益于该基础,本仓库得以专注于更高级的层面:**检测、事件关联和告警调优**。
## 项目目标
- 在 Wazuh 中创建自定义 decoder
- 设计自定义检测规则
- 关联事件以识别可疑行为
- 应用调优以减少运行噪声
- 将用例映射到 MITRE ATT&CK
- 记录面向 SOC 环境的技术证据
## 使用的架构
本实验室依赖于基础项目中已验证的基础设施:
- **Wazuh Server**
- **Ubuntu + Suricata + Wazuh Agent**
- **Windows 10 + Wazuh Agent**
- **Wazuh Dashboard**
在实验室的这个阶段,测试事件是通过 `logger` 从 Ubuntu 代理以受控方式生成的,从而验证 Wazuh 中的完整检测流程:
**log -> decoder -> 规则 -> 告警**
## 使用的技术
- VMware Workstation
- Wazuh
- Suricata
- Ubuntu Server
- Windows 10
- Git
- GitHub
## 实施的用例
### 1. 身份验证失败
检测由受控源生成的登录失败事件。
### 2. 疑似暴力破解
关联在特定时间窗口内来自同一 IP 地址的多次身份验证失败。
### 3. 创建本地用户
检测与创建本地账户相关的活动。
### 4. 提权执行
检测通过 `sudo` 成功使用提升权限的行为。
## 实施的自定义规则
- **100500** – 登录失败
- **100501** – 疑似暴力破解
- **100510** – 创建本地用户
- **100520** – 提权执行
## MITRE ATT&CK 映射
- **T1110** – Brute Force
- **T1136.001** – Create Account: Local Account
- **T1548** – Abuse Elevation Control Mechanism
## 告警调优
### 调优前
单次身份验证失败事件会产生大量重复的低优先级告警,增加了运行噪声。
### 调优后
保留了一条低严重级别的基础规则用于每次登录失败,并实施了一条关联规则,当在短时间内检测到来自同一 IP 的多次失败时,该规则会提升严重级别。
## 最终验证
实验室的验证分两个主要阶段进行:
### 1. 使用 `wazuh-logtest` 进行验证
确认了 decoder 能够正确解析自定义事件,并且规则生成了预期的告警:
- `100500` – 登录失败
- `100510` – 创建本地用户
- `100520` – 提权执行
- `100501` – 通过关联检测到的疑似暴力破解攻击
### 2. 在 Wazuh Dashboard 中验证
随后,从 Ubuntu 代理生成事件并在 **Threat Hunting** 中进行可视化查看,确认了 SIEM 中实际生成了告警。
## 遇到的问题及解决方案
在实验室实施过程中,进行了几项技术调整:
- `local_decoder.xml` 中因 XML 结构不正确导致的初始错误。
- 在规则中错误使用了 decoder 名称。
- 调整规则以正确使用 `dstuser` 等字段,而不是 `user`。
- 修正关联规则 `100501` 以使用 `same_srcip`。
- 在 Dashboard 中检查事件之前,先通过 `wazuh-logtest` 验证关联。
这些调整使得检测流程得以稳定,并在 Wazuh 环境中获得了有效的告警。
## 项目结构
- `decoders/`: 自定义 decoder
- `rules/`: 自定义规则
- `scripts/`: 生成测试 log
- `docs/`: 技术文档和 MITRE 映射
- `evidence/`: 实验室证据,按配置、通过 `wazuh-logtest` 验证以及在 Wazuh Dashboard 中验证进行分类
## 证据
实验室的证据位于 `evidence/` 文件夹中,分为三组:
### 01-config
为实验室开发的配置组件的截图:
- `local_rules.xml` 中的自定义规则
- `local_decoder.xml` 中的自定义 decoder
- 用于生成测试事件的 `generate_test_logs.sh` 脚本
### 02-logtest
使用 `wazuh-logtest` 进行的验证截图,其中检查了以下流程:
**log -> decoder -> 规则 -> 告警**
本部分包含了以下规则的证据:
- `100500` – 登录失败
- `100510` – 创建本地用户
- `100520` – 提权执行
- `100501` – 通过关联检测到的疑似暴力破解攻击
### 03-dashboard
在 **Wazuh Dashboard / Threat Hunting** 中的验证截图,确认了由 Ubuntu 代理生成的告警的实际可视化展示。
本部分包含以下证据:
- `100500` – 登录失败
- `100501` – 疑似暴力破解攻击
- `100510` – 创建本地用户
- `100520` – 提权执行
- `100500` 和 `100501` 事件之间关联的摘要视图
## 获得的经验
该实验室有助于巩固以下方面:
- 创建自定义 decoder
- 设计检测规则
- Wazuh 中的事件关联
- 用于减少噪声的调优
- 面向 SOC 环境的技术文档
- 可观察事件与 MITRE ATT&CK 之间的关系
## 未来改进
作为项目的演进,可以通过以下方式扩展实验室:
- Windows 中的额外用例
- 与 Sysmon 集成
- 新的关联规则
- 更广泛的 threat hunting 场景
## 作者
本项目由 **GONZALO M. PEREZ** 开发,作为面向安全事件监控、检测和分析的作品集的一部分。
标签:AMSI绕过, Cloudflare, MITRE ATT&CK, SIEM, Suricata, Wazuh, 入侵检测系统, 威胁检测, 安全数据湖, 安全运营中心, 日志分析, 现代安全运营, 网络映射