dhruvvv55/soc-home-lab

GitHub: dhruvvv55/soc-home-lab

基于 Wazuh SIEM、Sysmon 和 Python 自动化 Pipeline 的 SOC 检测工程实验室,覆盖攻击模拟、自定义检测规则与自动化告警分类全流程。

Stars: 0 | Forks: 0

# SOC 检测工程实验室 一个检测工程家庭实验室,使用 Kali Linux、Windows 11、Wazuh SIEM 以及带有 VirusTotal 情报补充的自动化 Python 告警分类 pipeline,模拟真实世界的攻击场景。 ## 架构 ``` Kali Linux (Attacker) │ │ simulates attacks ▼ Windows 11 ARM + Sysmon ARM64 (Victim) │ │ ships logs via Wazuh Agent ▼ Wazuh Manager 4.14.6 (native ARM64 on Kali) │ │ alerts.json via SSH ▼ Python Pipeline (collector → triage → VT enrichment → report) ``` ## 我所构建的内容 ### 检测规则 15+ 条自定义 Wazuh 检测规则,映射到 MITRE ATT&CK,涵盖: | 技术 | ID | 描述 | |---|---|---| | 凭据转储 | T1003.001 | 通过 Sysmon Event 10 访问 LSASS 内存 | | PowerShell 滥用 | T1059.001 | 编码命令、下载诱饵 | | 暴力破解 | T1110.001 | RDP 暴力破解(60秒内失败5次) | | LOLBin 滥用 | T1218 | CertUtil 编码/解码/下载 | | HTA 执行 | T1218.005 | Mshta HTA 执行 | | Squiblydoo | T1218.010 | Regsvr32 代理执行 | | UAC 绕过 | T1548.002 | Fodhelper UAC 绕过 | | 持久化 | T1547.001 | 修改注册表 Run 键 | | 进程注入 | T1055 | CreateRemoteThread 检测 | | 防御规避 | T1562.004 | 修改防火墙规则 | ### 攻击模拟 (Kali → Windows) - 通过 Hydra 进行 RDP 暴力破解 - CertUtil LOLBin 滥用 (`-encode`, `-decode`, `-urlcache`) - PowerShell 编码命令执行 - 通过 Run 键实现注册表持久化 - 可疑进程创建(svchost 注入模式) ### Python 告警 Pipeline 自动化 4 阶段 pipeline: 1. **收集器** — 通过 SSH 登录 Wazuh Manager,直接读取 `alerts.json` 2. **分类器** — 去重,评估严重程度(CRITICAL/HIGH/MEDIUM/LOW),应用分析师注释 3. **补充器** — 通过 VirusTotal API 对 IP 和文件哈希进行情报补充 4. **报告器** — 生成包含 MITRE ATT&CK 覆盖范围的结构化事件摘要 **示例输出:** ``` ============================================================ SOC INCIDENT SUMMARY ============================================================ Generated : 2026-07-05T14:55:24Z Window : Last 1h Total Alerts : 10 Critical : 1 High : 4 Medium : 5 Affected Agents : HOMELAB-WIN ------------------------------------------------------------ TOP THREATS ------------------------------------------------------------ [CRITICAL] L15 | Executable file dropped in malware folder Agent: HOMELAB-WIN | MITRE: T1105 [HIGH ] L12 | PowerShell base64 encoded command execution Agent: HOMELAB-WIN | MITRE: T1059.001 [HIGH ] L12 | Suspicious svchost.exe process Agent: HOMELAB-WIN | MITRE: T1055 ------------------------------------------------------------ MITRE ATT&CK COVERAGE ------------------------------------------------------------ T1105 2 alert(s) T1059.001 1 alert(s) T1055 1 alert(s) T1546.011 1 alert(s) ``` ## 技术栈 | 组件 | 工具 | |---|---| | 宿主机 | Apple Silicon MacBook (M 系列) | | 虚拟机平台 | UTM (基于 QEMU,ARM 原生) | | 攻击者虚拟机 | Kali Linux ARM64 | | 受害者虚拟机 | Windows 11 ARM | | 端点日志记录 | Sysmon ARM64 `Sysmon64a.exe` (SwiftOnSecurity 配置) | | SIEM | Wazuh 4.14.6 (原生 ARM64,安装在 Kali 上) | | 检测规则 | 自定义 Wazuh XML + Sigma 规则 | | IOC 情报补充 | VirusTotal API v3 | | Pipeline | Python 3.9+ 通过 SSH | ## 项目结构 ``` soc-home-lab/ ├── wazuh-docker/ │ ├── docker-compose.yml # Wazuh stack config (reference, not used on ARM) │ └── config/ │ ├── custom_rules.xml # 15+ detection rules (T1003, T1059, T1110...) │ └── wazuh_cluster/ │ └── wazuh_manager.conf # Manager config with Sysmon log collection ├── detections/ │ └── sigma-rules/ │ └── soc_lab_rules.yml # Sigma rules for LSASS, CertUtil, PowerShell, Registry ├── pipeline/ │ ├── pipeline.py # Main triage + enrichment + reporting pipeline │ ├── requirements.txt │ └── .env.template # Environment variable template ├── reports/ # Generated JSON incident reports └── docs/ └── SETUP.md # Full setup guide ``` ## 安装说明 ### 前置条件 - Apple Silicon Mac (M1/M2/M3/M4) - UTM — https://mac.getutm.app - Kali Linux ARM64 ISO — https://www.kali.org/get-kali/#kali-installer-images - Windows 11 ARM ISO (通过 crystalfetch 获取:`brew install crystalfetch && crystalfetch`) - Python 3.9+ - VirusTotal 免费 API key — https://www.virustotal.com/gui/join-us ### 快速开始 **1. 克隆仓库** ``` git clone https://github.com/dhruvvv55/soc-home-lab.git cd soc-home-lab ``` **2. 在 Kali 虚拟机上安装 Wazuh** ``` curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg \ --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import sudo chmod 644 /usr/share/keyrings/wazuh.gpg echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" \ | sudo tee /etc/apt/sources.list.d/wazuh.list sudo apt-get update && sudo apt-get install wazuh-manager -y sudo systemctl enable --now wazuh-manager ``` **3. 在 Windows 虚拟机上安装 Sysmon(以管理员身份运行 PowerShell)** ``` New-Item -ItemType Directory -Path C:\Sysmon -Force Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Sysmon.zip" -OutFile C:\Sysmon\Sysmon.zip Expand-Archive C:\Sysmon\Sysmon.zip -DestinationPath C:\Sysmon Invoke-WebRequest -Uri "https://raw.githubusercontent.com/SwiftOnSecurity/sysmon-config/master/sysmonconfig-export.xml" -OutFile C:\Sysmon\sysmon-config.xml # 在 ARM64 Windows 上使用 Sysmon64a.exe C:\Sysmon\Sysmon64a.exe -accepteula -i C:\Sysmon\sysmon-config.xml ``` **4. 注册 Windows agent** ``` # 将 KALI_IP 替换为你的 Kali VM IP(使用以下命令检查:ip a) Invoke-WebRequest -Uri "https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.3-1.msi" -OutFile C:\wazuh-agent.msi msiexec.exe /i C:\wazuh-agent.msi WAZUH_MANAGER="KALI_IP" WAZUH_AGENT_NAME="HOMELAB-WIN" /q NET START WazuhSvc ``` **5. 设置 SSH 密钥 (Mac → Kali)** ``` ssh-keygen -t ed25519 -f ~/.ssh/id_rsa -N "" ssh-copy-id dhruv@KALI_IP ``` **6. 运行 pipeline** ``` cd pipeline pip install -r requirements.txt cp .env.template .env # 编辑 .env 并填入你的 SSH host 和 VirusTotal API key python3 pipeline.py python3 pipeline.py --hours 24 --output reports/$(date +%Y%m%d).json ``` ## 检测工程笔记 ### 真/假阳性调优 每条规则都包含过滤条件以减少噪音: - LSASS 访问:排除已知的合法进程(MsMpEng、svchost、wininit) - 注册表 Run 键:排除软件安装程序(MsiExec、setup.exe) - CertUtil:无合法排除项 — 在此实验室环境中所有使用行为均视为可疑 ### Sigma 规则 规则以 Sigma 格式编写,以便在不同的 SIEM 平台之间移植。使用 [sigma-cli](https://github.com/SigmaHQ/sigma-cli) 转换为 Splunk、Elastic 或 QRadar 格式。 ### Apple Silicon 笔记 - 在 Windows ARM 上使用 `Sysmon64a.exe` (ARM64) 而不是 `Sysmon64.exe` - Wazuh 必须原生安装在 Kali ARM64 上 — Docker 镜像仅支持 x86 - 使用 UTM 的 Virtualize 模式(而非 Emulate 模式)以获得原生 ARM 性能 ## 展示技能 - 检测工程(自定义规则、TP/FP 调优) - MITRE ATT&CK 框架映射 - 端点遥测(Sysmon 配置和日志分析) - 告警分类和事件响应工作流 - 安全自动化(Python、SSH、REST API) - IOC 情报补充(VirusTotal API) - 威胁模拟(Kali Linux 攻击工具) ## 作者 **Dhruv Patel** — USC 网络安全工程硕士 [LinkedIn](https://www.linkedin.com/in/dhruvvv55/) · [作品集](https://dhruv-ashok-patel-portfolio.vercel.app/)
标签:OpenCanary, SOC实验室, Sysmon, Wazuh, 威胁情报, 开发者工具, 检测规则, 知识库安全, 网络资产发现, 自动化告警分诊, 逆向工具