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, 威胁情报, 开发者工具, 检测规则, 知识库安全, 网络资产发现, 自动化告警分诊, 逆向工具