aaronjohnsontech/wazuh-detection-engineering-lab

GitHub: aaronjohnsontech/wazuh-detection-engineering-lab

该项目是一个 Wazuh 检测工程实验室,通过模拟受控 SSH 暴力破解活动,验证自定义 SIEM 规则对 Windows 端点重复认证失败的检测与告警能力。

Stars: 0 | Forks: 0

# Wazuh 检测工程实验室 ## 执行摘要 本项目演示了使用 Wazuh、Windows 11、Kali Linux 和 OpenSSH 的完整检测工程工作流。该实验室针对 Windows 终端节点生成了受控的 SSH 认证活动,针对重复的认证失败创建了自定义 Wazuh 规则逻辑,并在 Wazuh Threat Hunting 中验证了面向分析师的告警。 其目的是展示从**受控活动**到**端点遥测**再到**SIEM 检测输出**的完整路径。 ## 项目链接 - **作品集案例研究:** https://aaronjohnson.tech/wazuh_ssh_bruteforce_lab.html - **作品集主页:** https://aaronjohnson.tech - **GitHub 仓库:** https://github.com/aaronjohnsontech/wazuh-detection-engineering-lab ## 问题 认证失败在企业环境中很常见,但针对远程访问服务的重复失败可能表明存在暴力破解行为、凭证猜测、配置错误或未经授权的访问尝试。安全团队需要一种方法,将常规的认证噪音与值得分析师审查的模式区分开来。 ## 目标 - 构建一个隔离的 Wazuh 检测实验室。 - 将 Windows 11 终端节点配置为遥测源。 - 在 Windows 终端节点上启用 OpenSSH Server。 - 从 Kali 生成受控的 SSH 认证活动。 - 创建针对重复认证失败的自定义 Wazuh 规则逻辑。 - 在 Wazuh Threat Hunting 中验证检测。 - 通过脱敏的证据和可复现的文档打包项目。 ## 环境 | 组件 | 角色 | |---|---| | Wazuh Manager | SIEM 和检测平台 | | Windows 11 终端节点 | 受监控的终端节点和 OpenSSH 遥测源 | | Kali Linux | 受控活动生成 | | VirtualBox NAT 网络 | 隔离的实验室网络 | | OpenSSH Server | 用于生成认证遥测的远程访问服务 | | Hydra | 授权实验室中的受控凭证测试模拟器 | | Wazuh Threat Hunting | 分析师验证界面 | ## 检测逻辑 该自定义规则旨在检测与 SSH 活动相关的重复 Windows 认证失败。 最终验证的规则特征: | 字段 | 值 | |---|---| | Rule ID | `100002` | | Level | `10` | | Matched rule | Windows 认证失败基线 | | Frequency | 短时间内的重复失败 | | Description | 针对 Windows 终端节点的疑似 SSH 暴力破解活动 | | Groups | `windows`, `authentication_failed`, `ssh`, `local` | ## 证据亮点 ### 实验室拓扑 ![Wazuh 检测拓扑](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/cff0689f4a073858.svg) ### VirtualBox 实验室网络 ![VirtualBox 实验室网络](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5ff3011f3b073904.webp) ### 受控的 SSH 认证模拟 ![受控的 SSH 模拟](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/89cffa451d073910.webp) 凭证输出已脱敏。实验室 IP 地址特意保留可见状态,因为它们仅为该隔离实验室创建,并有助于演示测试路径。 ### 自定义 Wazuh 规则 ![自定义 Wazuh 规则](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f7b1e91e12073916.webp) ### Threat Hunting 验证 ![Threat Hunting 结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/601a0121d0073921.webp) ### Dashboard 摘要 ![Wazuh dashboard 摘要](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/25c4996d8c073927.webp) ## 检测逻辑深度解析 该自定义规则旨在使重复的 Windows SSH 认证失败作为面向分析师的模式脱颖而出,而不是将其作为孤立的低级别事件遗留。 | 检测选择 | 理由 | |---|---| | `if_matched_sid 60122` | 链接自实验室中观察到的 Windows 认证失败信号,而不是仅匹配原始文本。 | | `frequency 5` | 在引发自定义告警之前需要重复失败多次。 | | `timeframe 60` | 保持告警集中在聚集行为上,而不是孤立的失误。 | | `level 10` | 使告警对分析师可见,而不会将每次测试都标记为严重事件。 | | Groups | 添加可搜索的上下文:`windows`, `authentication_failed`, `ssh`, 和 `local`。 | ### 之前 / 之后 **之前:** 该活动表现为单个 Windows 认证失败事件。 **之后:** 重复的失败被提升至自定义 Wazuh 规则 `100002`,针对针对 Windows 终端节点的疑似 SSH 暴力破解行为生成明确的 level 10 检测。 ### 相关的 Windows 事件上下文 支持的 Wazuh 文档字段显示了 Windows 认证失败上下文,包括: - Windows Event ID `4625` - 终端节点身份和 agent 字段 - OpenSSH 进程上下文 - 登录类型 - 状态和子状态值 - 认证包信息 这为分析师提供了充足的上下文,以决定告警代表的是实验室测试、用户错误、过期凭证还是可疑的认证行为。 ## 分析师分诊指南 当此告警触发时,分析师应检查: 1. 涉及了哪个终端节点和账户。 2. 源主机是预期的还是异常的。 3. 在重复失败后不久是否发生了成功的登录。 4. 相同的账户或源是否出现在多个终端节点上。 5. 该账户是否具有特权、与服务相关或是新创建的。 6. 该活动是否符合已批准的管理测试。 ## 误报考虑 可能的误报包括: - 管理员反复输入错误密码 - 过期的已保存 SSH 凭证 - 使用过期凭证的定时脚本 - 授权的漏洞测试 - 实验室验证活动 在生产环境中,应使用正常的认证基线、已批准的管理源 IP 范围、特权账户监控要求以及预期的 service account 行为对该规则进行调优。 ## 仓库结构 ``` wazuh-detection-engineering-lab/ ├── README.md ├── docs/ │ ├── case-study.md │ ├── implementation-guide.md │ ├── validation-checklist.md │ ├── detection-rationale.md │ └── interview-talking-points.md ├── configs/ │ └── local_rules_ssh_bruteforce.xml ├── scripts/ │ └── controlled-ssh-simulation-example.sh ├── evidence/ │ └── screenshots/ ├── website/ │ ├── wazuh-case-study.html │ └── project-card-snippet.html ├── LICENSE └── SECURITY.md ``` ## 展示的技能 - Wazuh 检测工程 - Windows 终端节点遥测 - SSH 认证事件分析 - 自定义 SIEM 规则逻辑 - Threat Hunting 工作流 - 隔离实验室中的受控对手模拟 - 告警验证和文档记录 - 安全运营沟通 ## 安全提示 本项目是在隔离的、经授权的实验室环境中进行的。请勿对您不拥有或未经明确许可测试的系统运行凭证测试工具。
标签:Wazuh, 后端开发, 安全实验环境, 安全运营, 扫描框架, 红队行动