xuanz3/Enterprise-SOC-Lab

GitHub: xuanz3/Enterprise-SOC-Lab

一个在 Azure 上搭建的企业 SOC 安全实验室,演示了完整的端点遥测采集、SIEM 检测工程与事件响应工作流。

Stars: 1 | Forks: 0

# 企业 SOC 实验环境 一个自主设计的 Azure 安全实验室,构建了小型的 Windows 和 Linux 环境,用于集中监控、检测工程和事件调查。 **项目状态:** 于 2026 年 7 月完成。 ## 概述 我设计并构建了这个项目,旨在探索如何将身份、端点和操作系统的遥测数据收集到一个 SIEM 中,并将其转化为可重复的安全检测。 该实验室遵循完整的工作流程: **受控模拟 → 遥测收集 → SIEM 检测 → 调查 → 响应 → 规则调优 → 验证** 它结合了 Microsoft Azure、Active Directory、Wazuh、Sysmon、Windows Event Logs、PowerShell logging 和 Linux 身份验证遥测。 ## 主要成果 | 领域 | 结果 | |---|---| | 基础设施 | 隔离虚拟网络中的三台 Azure 虚拟机 | | 受监控系统 | Windows Server 域控制器和 Ubuntu 端点 | | 遥测数据 | Windows Security、PowerShell、Sysmon、Linux 身份验证、journald 和 sudo | | 检测场景 | 六个已验证的场景 | | 自定义检测 | 用于内部 TCP 扫描的 Wazuh 关联规则 `100111` | | 事件调查 | 两份记录在案的事件调查 | | 证据 | 五张展示主要验证结果的精选截图 | ## 架构 ``` flowchart LR Linux["vm-linux-01
Ubuntu 24.04
Wazuh Agent + Nmap"] DC["vm-dc01
Windows Server 2022
AD DS + DNS
Sysmon + Wazuh Agent"] Wazuh["vm-wazuh
Wazuh Manager
Indexer + Dashboard"] Linux -->|"Authentication, journald and sudo logs"| Wazuh DC -->|"Security, PowerShell and Sysmon logs"| Wazuh Linux -->|"Controlled TCP scan"| DC ``` 这种三主机设计刻意保持紧凑。它足以展示完整的监控和调查生命周期,同时兼顾低成本和可重复性。 详细的网络和日志流文档可在 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 中找到。 ## 已实现的功能 - Azure 虚拟网络和受限的管理访问权限 - Windows Server 2022 Active Directory 和 DNS - 组织单位、域用户和安全组 - 基于 Group Policy 的 Windows 审核日志记录 - PowerShell Script Block 和 Module Logging - Sysmon 进程、网络、文件、DNS 和注册表遥测 - Wazuh Windows 和 Linux agent 部署 - Windows Security、PowerShell 和 Sysmon 频道的集中收集 - Linux 身份验证、journald 和 sudo 监控 - 可重复使用的 PowerShell 和 Bash 模拟脚本 - 检测验证、误报分析和规则调优 - 事件时间线、发现、响应记录和建议 ## 已验证的检测场景 | ID | 场景 | 主要遥测数据 | 检测 | |---|---|---|---| | D01 | 频繁的域身份验证失败 | Windows 4625 和 4776 | Wazuh 规则 `60122` | | D02 | 特权组成员身份变更 | Windows 4728 和 4729 | Wazuh 规则 `60141` 和 `60142` | | D03 | 编码的 PowerShell 进程发现 | PowerShell 4104 | Wazuh 规则 `91815` | | D04 | 注册表 Run-key 持久化 | Sysmon 13 | Wazuh 规则 `91844` | | D05 | 内部 TCP 端口扫描 | Sysmon 3 | 自定义 Wazuh 规则 `100111` | | D06 | SSH 身份验证失败和 sudo 活动 | Linux 身份验证日志和 journald | Wazuh Linux 检测 | 完整的检测说明请参见 [detections/DETECTION_CATALOG.md](detections/DETECTION_CATALOG.md)。 ## 检测工程亮点 [detections/soclab_port_scan.xml](detections/soclab_port_scan.xml) 中的自定义规则将短时间窗口内的多个 Sysmon 网络事件进行了关联。 第一版规则范围太广,对无关的网络流量也产生了告警。我对比了预期字段和观察到的字段,将候选规则限制在授权的源地址和目标地址,临时公开中间事件以进行验证,然后对最终规则进行了重新测试。 最终结果是对从 `10.10.20.4` 到 `10.10.20.5` 的受控扫描产生了一个 Level 10 告警。 完整的调优记录可在 [detections/RULE_TUNING_PORT_SCAN.md](detections/RULE_TUNING_PORT_SCAN.md) 中找到。 ## 事件调查 - [IR-01 — 频繁的域身份验证失败](reports/IR-01_FAILED_AUTHENTICATION.md) - [IR-02 — 内部 TCP 端口扫描](reports/IR-02_INTERNAL_PORT_SCAN.md) 每份报告都包含告警摘要、证据、时间线、分析、响应、处置、建议和 MITRE ATT&CK 映射。 ## 证据 [精选证据](evidence/selected/README.md) 包含五张简洁的截图,展示了主要的验证结果。 截图是辅助材料。配置、脚本、自定义规则、检测目录、调优记录和调查报告才是主要的技术产物。 ## 仓库结构 ``` . ├── configs/ │ ├── sysmon/ │ ├── wazuh/ │ └── windows-audit/ ├── detections/ │ ├── DETECTION_CATALOG.md │ ├── RULE_TUNING_PORT_SCAN.md │ ├── WAZUH_QUERIES.md │ └── soclab_port_scan.xml ├── docs/ │ ├── ARCHITECTURE.md │ ├── PROJECT_RETROSPECTIVE.md │ └── PROJECT_STATUS.md ├── evidence/ │ └── selected/ ├── reports/ └── scripts/ ``` ## 复现说明 模拟脚本仅限于授权的私有实验室: - [身份验证失败模拟](scripts/simulate-failed-logons.ps1) - [特权组变更模拟](scripts/simulate-privileged-group-change.ps1) - [编码 PowerShell 模拟](scripts/simulate-suspicious-powershell.ps1) - [注册表持久化模拟](scripts/simulate-registry-persistence.ps1) - [内部端口扫描模拟](scripts/simulate-port-scan.sh) - [Sysmon 扫描事件验证](scripts/verify-port-scan-events.ps1) 在运行脚本之前,请检查所有目标值和安全检查。 ## 项目边界 这是一个教育性质的实验室,而不是生产级别的安全平台。 最终范围使用了三台 Azure 虚拟机。自定义的端口扫描规则被刻意限制在实验室地址内,事件响应操作是记录在案的模拟,而不是自动化的生产遏制。 可能的扩展包括: - 独立的 Windows 工作站 - 专用测试主机 - Microsoft Sentinel 查询 - Terraform 或 Bicep 部署 - 网络数据包捕获分析 - 自动化响应工作流 - 额外的横向移动和防御规避场景 ## 安全性 所有测试仅在隔离且授权的环境中执行。 该仓库不包含密码、私钥、访问令牌、生产数据、公共目标或有害的 payload。 ## 作者 Xuanze Chen
标签:AI合规, Libemu, Terraform 安全, Wazuh, 企业安全, 安全运营中心, 应用安全, 插件系统, 网络映射, 网络资产管理