Emiliano-Its/SOC-Lab-And-Detection

GitHub: Emiliano-Its/SOC-Lab-And-Detection

该项目是在 Azure 上构建的 SOC 检测工程实验室,通过模拟攻击、采集遥测、编写 Sigma 规则到生成 IR 报告,完整覆盖蓝队检测与响应的生命周期。

Stars: 0 | Forks: 0

# 家庭 SOC 实验室与检测工程 这是一个在 Microsoft Azure 上从零开始构建的实操检测工程实验室。其目标是在多主机环境中模拟真实的攻击者行为,在 Sigma 中构建自定义检测,并生成事件响应文档——涵盖了从遥测数据接入到警报分级的完整蓝队生命周期。 ## 架构 在 Azure 上的私有虚拟网络(`soc-lab-vnet`,`10.0.0.0/16`)内部署了三台隔离的虚拟机: | 主机 | 角色 | 操作系统 | |---|---|---| | `soc-lab-windows` | 受害端点 | Windows 11 Pro | | `soc-lab-UbuntuServer` | Linux 服务器 + 网络传感器 | Ubuntu Server 24.04 LTS | | `soc-lab-wazuh` | SIEM | Ubuntu Server 24.04 LTS | ``` Windows (Sysmon + Wazuh Agent) │ ├─────────────────────────────┐ │ ▼ Ubuntu (auditd + Zeek + Wazuh Agent)──► Wazuh SIEM ``` ## 技术栈 | 层级 | 工具 | |---|---| | SIEM | Wazuh 4.14.5 | | 端点遥测 (Windows) | Sysmon — SwiftOnSecurity 配置 | | 端点遥测 (Linux) | auditd — Neo23x0 规则集 | | 网络遥测 | Zeek 8.2.0 (JSON 输出) | | 攻击模拟 | Atomic Red Team (Invoke-AtomicTest) | | 检测格式 | Sigma (YAML) | | 规则转换 | pySigma | ## ATT&CK 覆盖范围 | 技术 | 名称 | 战术 | Sigma 规则 | |---|---|---|---| | T1003 | 操作系统凭据转储 | 凭据访问 | ✓ | | T1016 | 系统网络配置发现 | 发现 | ✓ | | T1041 | 通过 C2 通道外发数据 | 数据外泄 | ✓ | | T1046 | 网络服务发现 | 发现 | ✓ | | T1057 | 进程发现 | 发现 | ✓ | | T1059.001 | PowerShell | 执行 | ✓ | | T1059.001 | PowerShell 编码命令 | 执行 | ✓ | ## 仓库结构 ``` / ├── README.md ├── LESSONS_LEARNED.md ├── /architecture/ │ └── lab-topology.png ├── /rules/ │ └── *.yml — one Sigma rule per technique ├── /attacks/ │ └── *.md — one doc per simulated technique ├── /ir-reports/ │ └── *.md — incident response writeups └── /tuning/ └── *.md — before/after rule tuning documentation ``` ## 检测工程方法 每项技术都遵循相同的工作流: 1. **模拟** — 使用 Atomic Red Team 执行该技术 2. **观察** — 确认 Wazuh 捕获了哪些遥测数据以及数据来源 3. **编写** — 编写针对特定行为而非通用警报的 Sigma 规则 4. **调优** — 引入良性的边缘情况,完善规则逻辑直到消除误报 5. **记录** — 将检测结果视为真实事件,生成 IR 报告 ## 关键技术说明 - Wazuh agent 需要对日志文件的读取权限 — 将 `wazuh` 用户添加到 `adm` 组以读取 `audit.log`,并添加到 `zeek` 组以读取 Zeek 日志 - Zeek 必须输出 JSON 格式:在 `local.zeek` 中加载 `policy/tuning/json-logs` - Zeek 日志路径为 `/opt/zeek/spool/zeek/` — 而非 `/opt/zeek/logs/current/` - 在 Wazuh 中启用 `logall_json` 以归档所有事件,而不仅仅是警报 - Azure NSG 需要开放 443 端口才能从外部访问 Wazuh dashboard ## 参考资源 - [MITRE ATT&CK](https://attack.mitre.org) - [Sigma HQ](https://github.com/SigmaHQ/sigma) - [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) - [SwiftOnSecurity Sysmon 配置](https://github.com/SwiftOnSecurity/sysmon-config) - [Neo23x0 auditd 规则](https://github.com/Neo23x0/auditd) - [Zeek 文档](https://docs.zeek.org) - [Wazuh 文档](https://documentation.wazuh.com) - [The DFIR Report](https://thedfirreport.com)
标签:OpenCanary, Wazuh, 后渗透, 安全实验室, 插件系统