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) ![计划任务检测](https://raw.githubusercontent.com/farrukhCTI/soc-homelab/main/investigation-reports/screenshots/IR-001/kibana-event1-schtasks.png) **场景:** - 通过 `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 接口) ## 架构图 ![Homelab Architecture](https://raw.githubusercontent.com/farrukhCTI/soc-homelab/main/diagrams/homelab-diagram.png) *图:分段实验室,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安全, 事件关联分析, 事件响应报告, 安全架构, 安全调查, 安全运营中心, 库, 应急响应, 检测规则, 私有化部署, 端点遥测, 网络信息收集, 网络分段, 网络安全, 网络安全实验室, 网络映射, 网络资产发现, 请求拦截, 越狱测试, 防御规避, 隐私保护