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, 入侵检测系统, 威胁检测, 安全数据湖, 安全运营中心, 日志分析, 现代安全运营, 网络映射