abhi050206/wazuh-soc-lab

GitHub: abhi050206/wazuh-soc-lab

基于自托管 Wazuh SIEM 构建的 SOC 分析师实验室,涵盖自定义检测规则编写、攻击遥测生成与端到端告警分诊。

Stars: 0 | Forks: 0

# Wazuh SOC 分析师实验室 — 检测工程与威胁狩猎 一个基于自托管 Wazuh SIEM(Docker,单节点)构建的 SOC 分析师实操实验室。在这里,我编写了自定义检测规则,使用 Windows 端点生成了真实的攻击遥测数据,并进行了端到端的告警分诊——包括发现并记录了一个误报。 本项目是在完成 [HTB Academy SOC 分析师路径](https://academy.hackthebox.com/) 的过程中构建的,旨在将所学概念应用于实时环境,而不仅仅是实验模块。 ## 架构 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/cas/4d/4de0273462adc898c1e520d1f67814ae352373e72c76157e656b57b6f1c6d05f.png) - **Windows agent** (`soc-test-machine`) 通过端口 1514 将 Windows Security 和 Sysmon 日志发送到 manager。 - **Wazuh manager** 运行规则引擎(自定义规则位于 `local_rules.xml` 中)并评估每一个传入的事件。 - **Wazuh indexer**(基于 OpenSearch)存储所有生成的告警。 - **Wazuh dashboard** 提供用于威胁狩猎和分诊的 Kibana 风格 UI。 所有四个组件均通过 `docker-compose`(`single-node` 部署)作为 Docker 容器运行。 ## 场景 1 — 自定义暴力破解检测规则 **目标:** 检测 Windows agent 上的重复身份验证失败,并将它们关联为一个单独的高严重性告警,而不是依赖 Wazuh 默认的、充满噪音的单事件日志。 **编写的规则** (`/var/ossec/etc/rules/local_rules.xml`): ``` 60122 Multiple failed logon attempts (5+ in 120s) - possible brute force attack T1110 authentication_failures, ``` 此规则在基础规则 `60122`(“Logon Failure — Unknown user or bad password”)之上触发,将 120 秒窗口内的 5 次及以上失败关联起来,并将其标记为 MITRE ATT&CK **T1110 (Brute Force)**。 **测试:** 在 Windows agent 上模拟了多次失败登录,并确认关联规则正确触发。 ![规则 100010 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/12/125e2334c5fdf9129de4f64b89ff8bcda6140734b2f0553b5bdd2601d9605d96.png) *仪表板确认了级别为 10 的告警,并在 MITRE ATT&CK 下标记为 Brute Force。* ![规则 100010 展开详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/d5/d5033650bee51ef4c927976702fa3ec8811069bad9f2bd9a2dd271239a390707.png) *文档详情显示 `rule.frequency: 5`,并且失败时间戳聚集在 8 秒的时间窗口内——确认关联逻辑按预期工作。* **基础规则参考**(60122 — 100010 基于其进行关联的底层登录失败规则): ![规则 60122 详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/ae/ae8a6218b203396f524d03d96761ef068c83e85c6be6ea64a93de17182195484.png) ## 场景 2 — PowerShell 告警分诊(误报) **目标:** 调查高严重性的基于 Sysmon 的告警(规则 `92213`,级别 15 — “Executable file dropped in folder commonly used by malware”),并确定其是否代表真正的威胁。 ![PowerShell/Sysmon 事件](https://static.pigsec.cn/wp-content/uploads/repos/cas/b0/b04e41fd7fb9073a78ef90e86624522e89fb4a5f2c6dbe267a91533a26fa629b.png) *规则 92213(释放可执行文件)和 92027(生成 PowerShell 进程)在 agent 上同时触发的事件。* **调查:** 展开告警的文档详情以检查释放文件的路径: ![规则 92213 展开详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/ee/ee62056588c1cc045461142090c86a99b18f73604d208584ad92f42f9260f99b.png) `data.win.eventdata.targetFilename`: ``` C:\Users\Abhishek\AppData\Local\Temp\__PSScriptPolicyTest_gvi44ono.ypm.ps1 ``` **分析与结论:** ![误报分诊记录](https://static.pigsec.cn/wp-content/uploads/repos/cas/79/791610525241a88c5e176e79a0c3a7b14a64c033d60ea4d36895df7b3a0830d7.png) ``` Investigation: Rule 92213 - Executable dropped in folder commonly used by malware Alert triggered on: __PSScriptPolicyTest_gvi44ono.ypm.ps1 Path: C:\Users\Abhishek\AppData\Local\Temp\ Analysis: File pattern "__PSScriptPolicyTest_*.ps1" is a known Windows PowerShell Script Block Logging / Constrained Language Mode policy test artifact, auto-generated by the OS itself whenever PowerShell evaluates script execution policy - NOT attacker-dropped payload. Verdict: FALSE POSITIVE - benign system-generated test script Action: No response needed; consider tuning rule to exclude this pattern ``` 这对于 SOC 分析师角色尤为重要,因为**正确排除误报与发现真实威胁同样重要**——由未归档的误报引起的告警疲劳是现实世界中最常见的 SOC 失败模式之一。 ## 环境设置 - Wazuh v4.9.0,通过 Docker Desktop 部署(`wazuh-docker/single-node`) - Windows 11 agent 已注册并连接(`Endpoints` → `soc-test-machine`,状态:Active) - 在 agent 上安装并配置了 Sysmon(SwiftOnSecurity 配置)以实现进程创建可见性 ![Agent 状态](https://static.pigsec.cn/wp-content/uploads/repos/cas/78/78336b09ba382f36e3c8adc60010391d49cd86dba6cd367238abe1bbcba3a119.png) ## 关键收获 - 从零开始编写并测试了自定义 Wazuh 关联规则(XML 规则语法、`if_matched_sid`、`frequency`/`timeframe`、MITRE ATT&CK 映射) - 针对真实的 Windows 遥测数据(Security + Sysmon 日志)模拟并验证了检测结果 - 实践了完整的告警分诊工作流:识别 → 调查 → 确定根本原因 → 记录结论 - 学会了区分真正的威胁与操作系统生成的噪音——这对于减少分析师的告警疲劳至关重要 ## 关于我 计算机工程专业的学生(LDCE, Ahmedabad),致力于网络安全,目前专注于 SOC 分析师(L1)职位。 - GitHub:[github.com/abhi050206](https://github.com/abhi050206) - LinkedIn:[linkedin.com/in/abhishekgohel05](https://linkedin.com/in/abhishekgohel05)
标签:Wazuh, 告警分诊, 安全实验室, 安全运营, 扫描框架, 请求拦截