Sujith-Taridalu/wazuh-soc-detection-lab

GitHub: Sujith-Taridalu/wazuh-soc-detection-lab

基于 Wazuh 的 SOC 实验室项目,提供映射 ATT&CK 的检测规则开发、事件分拣记录与可逆自动化响应的可验证实践环境。

Stars: 0 | Forks: 0

# Wazuh SOC 检测工程与事件响应实验室 一个基于 Wazuh 4.14.6 构建的、以证据为驱动的 SOC 作品集实验室。该项目旨在展示安全的 SIEM/XDR 部署、端点遥测、检测工程、告警分类、事件响应以及可逆自动化,且不发布虚构的指标。 ## 已正常运行的功能 - 运行于 VMware Fusion 上的 Ubuntu 24.04.4 LTS ARM64 中心服务器 - 4 个 vCPU,8 GiB RAM,4 GiB swap 以及 56 GiB 的根文件系统 - Wazuh indexer、manager、Filebeat 和 dashboard 处于活动状态 - Wazuh dashboard 可通过 HTTPS 在 TCP 443 端口访问 - Agent 注册和事件通道监听 TCP 1514 和 1515 端口 - Wazuh API 监听 TCP 55000 端口 - 本地 Wazuh indexer 绑定到 TCP 9200 端口的 loopback - 使用基于用户作用域的 Ed25519 密钥进行 SSH 管理 - 安装后没有失败的 systemd units - 自定义 SSH 关联规则已安装,并通过了正向和反向 `wazuh-logtest` 测试用例 - 专用的 Ubuntu 24.04 ARM64 端点已注册为活动 agent `001` - 实时 DET-01 告警以级别 12 索引,并关联 ATT&CK `T1110` 和 `T1021.004` - 实时的权限变更和 root-crontab 检测已索引,包含结构化的 actor/target 字段并验证了回滚 - 实时 FIM,包含 who-data、进程谱系、内容差异以及 SHA-256 回滚验证 - `authorized_keys` 持久化检测,并测试了 `nodiff` 隐私控制 - 六个模拟事件已完成分类并记录,附带测量的处置时间 - 变更后 DET-01 实时回归测试,记录了一个未设置间隔的计时失误以及成功设置间隔的重跑 - 带允许列表的 stateful Active Response,具有 15 秒超时以及测量的添加/删除回滚证据 - 通过 Python 和 GitHub Actions 实现可重现的 CSV 记录验证 ## 架构 ``` flowchart LR H["Apple Silicon host
VMware Fusion"] --> M M["Ubuntu 24.04 ARM64
Wazuh 4.14.6 all-in-one"] M --> I["Wazuh indexer
TCP 9200 loopback"] M --> W["Wazuh manager
1514 / 1515 / 55000"] M --> D["Wazuh dashboard
HTTPS 443"] L["Ubuntu 24.04 ARM64 endpoint
agent 001"] -->|"journal / audit / FIM / SCA"| W X["Windows 11 ARM
Sysmon + Wazuh agent
planned"] -.-> W W --> C["Detection catalog
tests + ATT&CK mappings"] W --> R["Incident cases
triage + response + rollback"] ``` 参见 [architecture/lab-architecture.mmd](architecture/lab-architecture.mmd) 和 [docs/telemetry-design.md](docs/telemetry-design.md)。 ## 基础测量结果 | 控制项 | 结果 | 证据来源 | |---|---:|---| | 中心组件活动状态 | 4/4 | `systemctl is-active` | | 失败的 systemd units | 0 | `systemctl --failed` | | Dashboard HTTP 结果 | 302 重定向至登录页 | 主机端 HTTPS 检查 | | Indexer 健康状态 | 绿色,1 个节点,23 个活动分片 | 经过身份验证的集群 API | | Wazuh API | 4.14.6,身份验证成功 | 基于 token 的 API 检查 | | LVM 扩展后的根文件系统 | 56 GiB | `df -h /` | | 安装程序版本 | Wazuh 4.14.6 | 官方安装助手 | | 安装程序 SHA-256 | `cb7f4ca737a798e4ed98c73579a6105b4dab45aa967bc1c0154f85ab2951b209` | 主机记录的下载哈希值 | | 已注册的非 manager 端点 | 1 个活动 | Manager `agent_control` | | 通过测试用例回归测试的检测 | 5 | 正向和反向控制 | | 已验证的自定义检测 | 5 | 测试 + 实时模拟 + 已索引告警 | | 大致的事件到告警间隔 | 0.33–2.34 秒 | 一秒精度的源时间戳 | | 已执行的模拟/控制案例 | 总计 10 个;9 个通过,1 个失败 | 保留了失败的计时敏感运行记录 | | 已完成的模拟事件案例 | 7 | 六个人工分类 + 一个自动响应案例 | | Stateful response 回滚 | 16.09 秒 | 配置的 15 秒超时 | 该项目特意**不**宣称“12 条关联规则”、“MTTR 降低 40%”或类似的数据,除非存在可比较的测量结果。 完整的生成计算结果位于 [`reports/metrics-summary.md`](reports/metrics-summary.md) 中,并在 GitHub Actions 中进行了漂移检查。 最终的恢复、权限移除和快照证据位于 [`reports/final-validation-and-snapshots.md`](reports/final-validation-and-snapshots.md) 中。 ## 检测路线图 验收目标是至少八个限定范围的模拟和五个经过回归测试的自定义检测: | ID | 场景 | MITRE ATT&CK | 状态 | |---|---|---|---| | DET-01 | 重复的 SSH 身份验证失败 | T1110 / T1021.004 | 已验证 | | DET-02 | Linux sudo 组成员身份变更 | T1098 / T1548.003 | 已验证 | | DET-03 | Root crontab 持久化修改 | T1053.003 | 已验证 | | DET-04 | 可疑或编码过的 PowerShell | T1059.001 | 计划中 | | DET-05 | Windows 本地管理员变更 | T1136.001 / T1098 | 计划中 | | DET-06 | Windows 服务创建 | T1543.003 | 计划中 | | DET-07 | 注册表 Run-key 修改 | T1547.001 | 计划中 | | DET-08 | 受保护的配置修改 | T1565.001 | 已验证 | | DET-09 | SSH authorized keys 持久化 | T1098.004 | 已验证 | 每个检测必须通过正向和反向 `wazuh-logtest` 测试用例以及一次限定了范围的实时验证,其状态才能更改为 `validated`。 ## 仓库地图 ``` . ├── architecture/ # Network and data-flow diagrams ├── data/ # Source-of-truth project records ├── detections/ # Wazuh rules and test fixtures ├── docs/ # Runbooks, standards, and playbooks ├── evidence/ # Sanitized proof only ├── incidents/ # Investigation case records ├── reports/ # Reproducible measurements ├── scripts/ # Validation and metrics tooling ├── simulations/ # Bounded test procedures └── tests/ # Automated repository checks ``` ## 安全模型 - 仅限用户拥有的实验室系统在范围内。 - 不得进行无限制的拒绝服务、凭据窃取、恶意软件部署或第三方扫描。 - 每个场景都有设定的持续时间或事件计数。 - 原始日志、凭据、私钥和生成的 Wazuh 密码归档文件被排除在 Git 之外。 - Active Response 仅在检测稳定后引入,并附带管理允许列表、超时、审计追踪和经过测试的回滚机制。 - AI 输出可以汇总经过脱敏处理的告警,但不能触发遏制措施。 ## 验证仓库 ``` python3 scripts/validate_records.py ``` 相同的命令运行在 `.github/workflows/validate.yml` 中。 ## 简历门槛 专注于 Linux 的发布符合其作品集门槛要求: - 至少八个安全执行的场景:**已执行 10 个**; - 至少五个经过回归测试的自定义检测:**已验证 5 个**; - 三个完整的事件案例:**已关闭 7 条记录**; - 良性/反向控制:**包含在每个已验证的检测中**; - 一次限时响应操作:**15 秒超时并带回滚**;以及 - 可重现的指标:**从版本控制的 CSV 记录生成并在 CI 中检查**。 Windows 遥测未被表述为已完成的工作。只有在 DET-04 到 DET-07 具备了同等的测试用例、实时证据、分类记录和清理验证之后,才能添加针对 Windows 的特定声明。 参见 [`docs/resume-and-interview-guide.md`](docs/resume-and-interview-guide.md) 以获取有理有据的简历要点和面试边界。
标签:Wazuh, x64dbg, 安全检测工程, 安全运营, 库, 应急响应, 扫描框架, 逆向工具