abdul48bari/splunk-soc-detection-lab

GitHub: abdul48bari/splunk-soc-detection-lab

一个基于 Splunk 和 Sysmon 的企业级 SOC 家庭实验室,用于演示检测工程、日志分析和威胁狩猎的完整工作流程。

Stars: 1 | Forks: 0

# SOC 家庭实验室:使用 Splunk 进行检测工程与威胁狩猎 这是一个企业级的安全运营中心 (SOC) 家庭实验室,旨在展示实际的**检测工程**、**日志分析**和**威胁狩猎**技能。本项目复现了 Tier 1 SOC 分析师的核心工作流程:收集遥测数据、模拟真实攻击、使用自定义查询进行检测,并记录发现。 ![Splunk](https://img.shields.io/badge/SIEM-Splunk-black) ![Sysmon](https://img.shields.io/badge/Endpoint-Sysmon-blue) ![MITRE ATT&CK](https://img.shields.io/badge/Mapped%20to-MITRE%20ATT%26CK-red) ![Platform](https://img.shields.io/badge/Lab-VMware-lightgrey) ## 概述 我构建了一个多虚拟机实验室环境,部署了 **Splunk Enterprise** 作为 SIEM,并从受监控的端点转发了 **Windows Event Log** 和 **Sysmon** 遥测数据。然后,我从 Kali Linux 模拟了真实世界的攻击,设计了映射到 **MITRE ATT&CK** 框架的自定义 **SPL** 检测,在实时 SOC 仪表板中将结果可视化,并进行了一次假设驱动的威胁狩猎。 目标很简单:证明我能够端到端地运行完整的检测生命周期 —— **收集 → 检测 → 调查 → 记录。** ## 实验室架构 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/cas/a9/a906f44ce69d2a46f4935c0bce7d1c03fecccbafdae3643e397a0a626ce7ea3c.png) ``` ┌──────────────────────────┐ │ Kali Linux │ │ 192.168.19.133 │ │ (Attacker) │ └────────────┬─────────────┘ │ Attacks (brute force, recon) ▼ ┌──────────────────────────┐ │ Windows 10 │ │ 192.168.19.135 │ │ Monitored Endpoint │ │ • Universal Forwarder │ │ • Sysmon │ └────────────┬─────────────┘ │ Logs (Windows Events + Sysmon) │ TCP 9997 ▼ ┌──────────────────────────┐ │ Ubuntu │ │ 192.168.19.136 │ │ Splunk Enterprise SIEM │ │ (Indexer + Search Head) │ └──────────────────────────┘ ``` | 虚拟机 | 角色 | 关键软件 | |----|------|--------------| | **Ubuntu** | SIEM 服务器 | Splunk Enterprise (indexer + search head) | | **Windows 10** | 受监控端点 | Splunk Universal Forwarder, Sysmon | | **Kali Linux** | 攻击者 | CrackMapExec, Nmap | | **Windows Server 2019** | 域控制器 | *(保留用于后续的 Active Directory 实验)* | 所有机器均运行在 **VMware Workstation** 的一个隔离 NAT 网络上。 ## 数据流水线 1. **Sysmon**(带有调优的 SwiftOnSecurity 配置)捕获深度的端点遥测数据 —— 包含完整命令行的进程创建、父子进程关系、网络连接以及文件/注册表活动。 2. **Splunk Universal Forwarder** 通过 TCP 9997 端口将 Windows Security/System/Application 日志**和** Sysmon 操作通道发送至 SIEM。 3. **Splunk Enterprise** 对数据进行索引,随后对其进行搜索、关联、告警和可视化。 ## 设计的检测 每次攻击均从 Kali 发起,随后在 Splunk 中使用自定义 SPL 查询进行检测,并映射到 MITRE ATT&CK。 ### 1. 暴力破解身份验证 — `T1110` 使用 CrackMapExec 对一个 SMB 账户运行了密码猜测攻击,产生了一阵失败的登录尝试,随后登录成功。 **检测逻辑 —— 标记具有过多失败登录的账户:** ``` index=main source="WinEventLog:Security" EventCode=4625 | stats count by Account_Name, host | where count > 2 | sort - count ``` **关联时间线 —— 失败爆发后跟随成功的登录:** ``` index=main source="WinEventLog:Security" (EventCode=4625 OR EventCode=4624) Account_Name="testvictim" | table _time, EventCode, Account_Name, Source_Network_Address | sort _time ``` ![暴力破解检测](https://static.pigsec.cn/wp-content/uploads/repos/cas/96/96143b6aed3a10082d128e23d30d87e8760ea44f91047c3e2a7e6b3d4e83bd53.png) ### 2. 主机与域侦察 — `T1087` / `T1082` 入侵后的发现命令在端点上执行,并通过 Sysmon 进程创建日志被检测到。 ``` index=main source="*Sysmon*" EventCode=1 (CommandLine="*whoami*" OR CommandLine="*net user*" OR CommandLine="*net localgroup*" OR CommandLine="*systeminfo*" OR CommandLine="*nltest*") | table _time, User, ParentImage, Image, CommandLine | sort _time ``` ## SOC 监控仪表板 一个实时的 5 面板仪表板,可对环境进行一目了然的监控: - **随时间变化的失败登录** —— 显示身份验证攻击的激增 - **登录成功与失败对比** —— 身份验证结果的细分 - **受攻击最多的账户** —— 排名靠前、正受到攻击的账户 - **检测到的侦察命令** —— 来自 Sysmon 的发现活动 - **顶级进程活动** —— 进程执行基线 ![SOC 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/11/11f2391ed312e997112ef6bc34778422c6ed0867700a08a9c852f9798ec0e6f4.png) ## 端点遥测 (Sysmon) 丰富的进程创建数据,显示了父进程、执行的映像以及完整的命令行 —— 这正是分析师用来调查可疑活动的确切字段。 ![Sysmon 遥测](https://static.pigsec.cn/wp-content/uploads/repos/cas/75/759f89368b4edc8e1e01d213031b1c31ca49dee1718b31dc8f4584ea7a48348a.png) ## 威胁狩猎 **假设:** 如果攻击者对端点进行暴力破解,我们应该会看到针对单一账户的大量失败登录 (4625) 激增,随后是一次成功的登录 (4624) 和早期的发现命令。 **方法:** 1. 查询按账户分组的失败登录 —— 发现 `testvictim` 超过了尝试阈值。 2. 关联 4625/4624 时间线,确认在失败爆发后立即出现了成功的登录。 3. 转向 Sysmon 进程日志,并确认了受影响主机上的侦察命令(`whoami`、`nltest`、`systeminfo`)。 **发现:** 模式相匹配 —— 一次成功的暴力破解,随后是主机和域侦察,映射到 **T1110** 和 **T1087 / T1082**。 **建议:** 强制执行账户锁定策略,对单个账户的 4625 激增进行告警,监控集群化的发现命令,并要求使用强大且唯一的凭证。 ## 展现的技能 `SIEM 管理` · `检测工程` · `SPL (搜索处理语言)` · `Sysmon` `Windows Event Log 分析` · `MITRE ATT&CK` · `威胁狩猎` · `事件调查` `日志转发与流水线设计` · `攻击模拟` · `Linux 与 Windows 管理` ## 仓库结构 ``` splunk-soc-detection-lab/ ├── README.md ├── screenshots/ │ ├── architecture-diagram.png │ ├── sysmon-telemetry-splunk.png │ ├── brute-force-detection.png │ └── soc-dashboard.png ├── detections/ │ └── spl-queries.md └── threat-hunt/ └── threat-hunt.md ``` ## 关键收获 构建这个实验室印证了,可见性在很大程度上取决于遥测数据的质量 —— 经过调优的 Sysmon 配置能将浅层的默认日志转化为丰富、可调查的数据源。它也使检测生命周期变得具体:只有当查询能可靠地将攻击呈现出来时,攻击才算被“检测”到;只有当文档记录得足够清晰、足以让他人据此采取行动时,检测才是有用的。 *该实验室是在隔离环境中出于教育和作品集目的而构建的。*
标签:CTI, Sysmon, 安全实验室, 安全运营中心, 插件系统, 网络映射