Ameer952/soc-homelab-splunk

GitHub: Ameer952/soc-homelab-splunk

一个基于 Splunk 和 Sysmon 的 SOC 家庭实验室项目,用于学习 SIEM 配置、检测工程和安全监控仪表板搭建。

Stars: 0 | Forks: 0

# SOC 家庭实验室 – SIEM 监控与威胁检测 这是一个用于模拟安全运营中心 (SOC) 环境的蓝队家庭实验室。该项目展示了在端点遥测、SIEM 配置、检测工程和安全监控仪表板方面的实践经验。 ## 概述 | 组件 | 工具 | |-----------|------| | 虚拟化 | VirtualBox | | 端点 | Windows 11 Enterprise (Evaluation) | | 遥测 | Sysmon (SwiftOnSecurity 配置) | | SIEM | Splunk Enterprise (免费许可证) | | 日志转发 | Splunk Universal Forwarder | ## SOC 仪表板 ![SOC 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/80842601d1224446.png) ## 架构 ``` Windows 11 VM (VirtualBox) └── Sysmon + Windows Event Logs └── Splunk Universal Forwarder └── Splunk Enterprise (Host Machine) └── Detections & Dashboard ``` Windows 11 虚拟机通过 Sysmon 和 Windows Event Logging 生成安全遥测数据。Universal Forwarder 使用 Host-Only 网络适配器通过 TCP 端口 9997 将日志发送到 Splunk。Splunk 对数据进行索引,并作为检测和可视化的 SIEM 平台。 ## 设置 ### 1. Windows 11 虚拟机 - 通过 VirtualBox 部署 Windows 11 Enterprise 评估版 - 配置 Host-Only 网络以实现隔离的实验室通信 - 安装 VirtualBox Guest Additions 以提升可用性 ### 2. Sysmon - 使用 SwiftOnSecurity 配置安装 Sysmon64 - 捕获进程创建 (Event ID 1)、网络连接、文件更改等 - 验证其作为 Windows 服务运行 ``` .\Sysmon64.exe -accepteula -i sysmonconfig-export.xml Get-Service Sysmon64 # Status: Running ``` ![Sysmon 运行状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a01330a078224447.png) ### 3. Splunk Universal Forwarder - 安装在 Windows 虚拟机上 - 配置为监控 Windows Event Logs 和 Sysmon Operational 日志 - 转发至主机上的 Splunk Enterprise,端口为 9997 监控的源: - `C:\Windows\System32\winevt\Logs` (所有 Windows Event Logs) - `Microsoft-Windows-Sysmon%4Operational.evtx` - `Microsoft-Windows-PowerShell%4Operational.evtx` ### 4. Splunk Enterprise - 安装在主机上 - 配置 TCP 端口 9997 接收数据 - 验证日志摄取:已索引 22,000+ 个事件 ## 构建的检测规则 ### 暴力破解登录检测 **描述:** 识别具有重复失败身份验证尝试的账户 —— 这是暴力破解或凭证填充攻击的关键指标。 **事件:** Windows Security Log – EventCode 4625 (登录失败) **Splunk 搜索:** ``` index=main EventCode=4625 | stats count by Account_Name, Source_Network_Address, host | where count > 3 ``` **告警配置:** - 计划:每小时运行一次 - 触发条件:结果 > 0 - 严重性:高 - 动作:添加到触发告警 ![触发的告警](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/334b714f66224448.png) **模拟:** 在 Windows 虚拟机上故意输入错误密码 5 次以上。检测成功触发,识别了账户名和源 IP。 ![暴力破解检测结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a503c893b6224449.png) ## SOC 仪表板 构建了一个多面板 Splunk 仪表板用于实时安全监控: | 面板 | 描述 | |-------|-------------| | 失败登录总数 | EventCode 4625 事件的单值计数 | | 随时间变化的失败登录 | 按账户显示失败登录尝试的折线图 | | 成功登录 | 随时间变化的 EventCode 4624 事件折线图 | | 登录活动对比 | 同一时间轴上成功与失败登录的对比 | | 热门安全事件 | 按频率排名前 10 的 EventCode 柱状图 | | 按主机统计的事件 | 按源主机细分事件的饼图 | ## 主要收获 - 配置了从端点到 SIEM 的端到端日志管道 - 理解了原生 Windows Event Logs 与 Sysmon 遥测之间的区别 - 使用 Splunk SPL (Search Processing Language) 编写了真实的检测规则 - 排查了 VirtualBox 网络连接问题(NAT 与 Host-Only 适配器) - 理解了为何与单独的 Windows 日志记录相比,Sysmon 能显著提升端点可见性 ## 后续计划 - **Kali Linux 虚拟机** – 模拟攻击(端口扫描、密码喷洒)并验证检测 - **Atomic Red Team** – 映射到 MITRE ATT&CK 的自动化攻击模拟 - **Sysmon EventCode 1 检测** – 对可疑进程创建模式发出告警 - **GeoIP 充实** – 为失败登录告警添加攻击者位置上下文 ## 参考 - [SwiftOnSecurity Sysmon 配置](https://github.com/SwiftOnSecurity/sysmon-config) - [Splunk 文档](https://docs.splunk.com) - [Microsoft Sysinternals – Sysmon](https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon) - [MITRE ATT&CK 框架](https://attack.mitre.org)
标签:AMSI绕过, HTTP/HTTPS抓包, meg, PE 加载器, Sysmon, VirtualBox, Windows事件日志, 信息安全, 威胁检测, 安全运营中心, 家庭实验室, 态势感知, 端点遥测, 红队行动, 网络安全, 网络映射, 虚拟化环境, 速率限制, 隐私保护