farrukhCTI/soc-homelab
GitHub: farrukhCTI/soc-homelab
在消费级硬件上构建的完整 SOC 实验室,用于检测规则开发、攻击模拟和事件响应调查的端到端实战练习。
Stars: 1 | Forks: 0
# SOC Homelab – 检测与事件响应
**重点:** SOC 分析师 | 检测工程 | 事件响应
使用 **Sysmon(端点遥测)** 和 **Suricata(网络 IDS)** 模拟真实世界攻击者行为的实践 SOC 实验室,并在 **Elastic SIEM(Elasticsearch + Kibana)** 中进行调查。
## 这展示了什么
- 使用 Sysmon + KQL 进行端点检测
- 使用 Suricata 进行网络检测(自定义规则工程)
- 网络 + 端点遥测的关联分析
- 映射至 MITRE ATT&CK 的事件响应调查
- 检测差距分析与补救设计
## 检测示例(IR-001)

**场景:**
- 通过 `certutil.exe` 传输工具
- 通过计划任务(`schtasks.exe`)实现持久化
- 编码的 PowerShell 执行
**捕获的证据:**
- Sysmon 事件 ID 3 → 出站网络连接
- Sysmon 事件 ID 1 → 计划任务创建
- Sysmon 事件 ID 11 → 任务文件写入
**完整报告:** `investigation-reports/IR-001.md`
## 主要成就
- 构建了分段实验室,攻击流量必须穿越受监控接口(OPT1 上的 Suricata)
- 识别了内部流量场景中 ET SCAN 规则的局限性,并设计了一条自定义检测规则(SID 9000001)
- 创建了 95 条映射至 MITRE ATT&CK 的基于 Sysmon 的检测规则
- 验证了以下两者之间的实时关联:
- 网络警报(Suricata EVE JSON)
- 端点遥测(通过 Elastic Agent 的 Sysmon)
- 执行了包含时间线重建和检测差距分析的完整事件调查
## 架构(概述)
- Node 1:SOC 核心(Elastic SIEM + Sysmon)
- Node 2:Proxmox 实验室(pfSense,Kali 攻击者,Windows 受害者)
- pfSense:路由 + Suricata IDS
- 网络分段:
- 10.0.30.0/24 → 攻击网络
- 10.0.20.0/24 → 受害者网络
- 受监控流量必须穿越 pfSense OPT1(Suricata 接口)
## 架构图

*图:分段实验室,Suricata 位于 OPT1 上以监控网络间的攻击流量*
## 架构(详细)
```
192.168.100.0/24 — HOME LAN
│
├── Node 1: SOC Core (192.168.100.143)
│ └── Elasticsearch + Kibana + Fleet + Sysmon
│
└── Node 2: Proxmox (192.168.100.2)
│
├── VM 100: pfSense (Router + IDS)
│ ├── WAN → 192.168.100.144 (vmbr0)
│ ├── LAN → 10.0.20.1/24 (vmbr1 - Victim Network)
│ └── OPT1 → 10.0.30.1/24 (vmbr2 - Attack Network)
│ └── Suricata (monitoring OPT1 / vtnet2)
│
├── VM 101: Kali Linux
│ └── 10.0.30.10 (Attack Network - vmbr2)
│
└── VM 102: Windows 10 Victim
└── 10.0.20.10 (Victim Network - vmbr1)
```
**受监控的流量路径(Suricata 可见):**
```
Kali (10.0.30.10)
→ pfSense OPT1 (Suricata)
→ pfSense LAN
→ Victim (10.0.20.10)
```
**未受监控的路径(Suricata 盲点):**
```
Kali → Node 1 (192.168.100.143)
```
## 检测流水线
### 端点流水线
```
Victim (10.0.20.10)
→ Sysmon
→ Elastic Agent
→ Fleet Server (Node 1)
→ Elasticsearch
→ Kibana
```
### 网络流水线
```
Kali (10.0.30.10)
→ pfSense OPT1 (Suricata)
→ EVE JSON (syslog)
→ Elastic Agent (Node 1)
→ Elasticsearch
→ Kibana
```
## 检测工程
### 自定义 Suricata 规则(SID 9000001)
```
alert tcp 10.0.30.0/24 any -> 10.0.20.0/24 any (
msg:"LOCAL SCAN Kali SYN Sweep to Victim";
flow:stateless; flags:S;
threshold:type both, track by_src, count 15, seconds 5;
sid:9000001; rev:1;
)
```
### Sysmon 检测规则
- 95 条基于 KQL 的自定义检测规则
- 覆盖 MITRE ATT&CK 战术
导出:
detection-rules/sysmon-custom-rules.ndjson
## 调查报告
- IR-001:工具传输与持久化 — 已完成
- IR-002:凭据访问(LSASS) — 进行中
- IR-003:持久化 — 进行中
- IR-004:LOLBins — 进行中
- IR-005:完整杀伤链 — 计划中
## 技术栈
- Elasticsearch / Kibana
- Elastic Agent
- Sysmon
- Suricata
- pfSense
- Proxmox
- Kali Linux
## 硬件
| Node | 设备 | CPU | RAM | 角色 |
|------|--------|-----|-----|------|
| Node 1 | Dell Inspiron 3593 | i5-1035G1 | 16GB | SOC 核心 |
| Node 2 | Dell E7250 | i5-5300U | 8GB | Proxmox 实验室 |
## 仓库结构
```
soc-homelab/
├── README.md
├── docker/
├── detection-rules/
├── config/
├── scripts/
└── investigation-reports/
├── IR-001.md
├── IR-002.md
├── IR-003.md
├── IR-004.md
├── IR-005.md
└── screenshots/
```
## 作者
Farrukh Ejaz
GitHub: https://github.com/farrukhCTI
LinkedIn: https://linkedin.com/in/farrukhejazminhas
标签:Cloudflare, Conpot, DNS 反向解析, Elasticsearch, Elastic SIEM, IT安全, KQL查询, Libemu, Metaprompt, MITRE ATT&CK, OpenCanary, pfSense路由, Proxmox虚拟化, SOC Homelab, Suricata IDS, Sysmon, Windows安全, 事件关联分析, 事件响应报告, 安全架构, 安全调查, 安全运营中心, 库, 应急响应, 检测规则, 私有化部署, 端点遥测, 网络信息收集, 网络分段, 网络安全, 网络安全实验室, 网络映射, 网络资产发现, 请求拦截, 越狱测试, 防御规避, 隐私保护