jotmalhitarun-hash/Splunk-Sysmon-SOC-Lab

GitHub: jotmalhitarun-hash/Splunk-Sysmon-SOC-Lab

该项目设计并验证了一套混合 SIEM 环境,将 Sysmon 高保真遥测与 Splunk 实时 SPL 检测规则相结合,解决端到端威胁检测与 SOC 事件响应的工程化落地问题。

Stars: 0 | Forks: 0

# Splunk-Sysmon-SOC-Lab 一个混合 SIEM 环境,旨在设计高保真度的 Windows 端点日志记录 (Sysmon)、实时 SPL 检测规则以及实时 SOC 事件响应仪表板。 # 混合 SIEM 基础设施与端点威胁检测 Pipeline ## 📌 项目概述 本项目详细介绍了用于本地端点监控和主动威胁检测的稳健、多层 Security Information and Event Management (SIEM) 环境的设计、部署和验证。 该项目在混合虚拟化架构上运行,建立了一个弹性的日志 pipeline,将高保真度的操作系统和进程遥测数据流传输到中央分析引擎。该 pipeline 并不依赖被动的签名监控,而是实现了可编程的、不区分大小写的逻辑,能够检测真实世界的对手行为。在项目实施过程中,遇到、诊断并系统地修复了多个核心基础设施难题——从虚拟化驱动程序架构冲突到服务账户访问 token 以及执行限流。 ## 🏗️ 架构与数据流层级 该部署将服务器级的分析收集器与虚拟化目标节点隔离开来。遥测数据摄取绕过了脆弱的文件监控模型,直接与 Windows 事件 API 交互。 [安全运营中心仪表板布局图像] * **分析节点 (Host):** 运行 **Splunk Enterprise** 的 macOS ARM64 (监听 TCP 端口 `9997`)。 * **目标节点 (Virtual Guest):** 运行在 **UTM** 中的 Windows 11 ARM64,通过 **Sysmon64a** 进行监控,并通过 **Splunk Universal Forwarder** 发送数据。 ### 🔄 摄取架构数据路径: 1. **Kernel 级捕获:** 系统活动触发 Windows 安全审计和 Sysmon 驱动程序。 2. **API 订阅 Hook:** Splunk Universal Forwarder 通过声明式配置文件 (`inputs.conf`) 直接 Hook 到 Windows Event Log API 通道。 3. **封装网络传输:** 遥测数据通过虚拟桥接网络链接直接转发到 Splunk Host 接收器。 4. **解析与规范化:** Splunk 解析非结构化文本,映射字段以供 Search Processing Language (SPL) 摄取。 ## 🛠️ 基础设施配置与故障排除记录 (RCA) 构建此环境需要克服几个关键的系统边界。以下是工程根本原因分析 (RCA) 日志: ### ⚡ 事件 1:Subsystem 驱动程序被阻止进入 Kernel 空间 * **症状:** 实用程序安装失败,提示 `StartService failed for SysmonDrv: This driver has been blocked from loading`。 * **根本原因分析:** Windows 11 强制执行严格的 kernel 驱动程序签名验证。由于 Guest VM 运行的是基于 ARM64 的架构,部署标准的 x64 二进制文件 (`Sysmon64.exe`) 会导致驱动程序层出现不可逆的指令集不匹配,从而迫使 kernel 阻止执行。 * **修复:** 清除了未链接的服务块,并显式部署了 ARM64 原生二进制包装器: sc.exe delete Sysmon64 .\Sysmon64a.exe -accepteula -i sysmonconfig-export.xml 这加载了一个指令集兼容、经过数字签名的 ARM64 kernel 驱动程序,立即恢复了功能。 ### ⚡ 事件 2:Sysmon 通道空间上的遥测摄取静默 * **症状:** Windows 安全日志迁移成功,但高保真度的 Sysmon 操作通道返回了 `0` 条记录。 * **根本原因分析:** 默认情况下,Splunk Forwarder 服务配置为使用低权限的虚拟服务账户 profile (`NT SERVICE\SplunkForwarder`)。与标准的安全日志读取器不同,Sysmon 操作通道强制执行严格的访问控制描述符,该描述符拒绝对此虚拟化 token 的授权,从而引发了静默的 `errorCode=5 (Access Denied)` 异常。 * **修复:** 更改了 Forwarder 服务的操作 token 结构,将执行上下文重新分配给高权限的系统空间: sc.exe config SplunkForwarder obj= "LocalSystem" Restart-Service SplunkForwarder `LocalSystem` 身份绕过了 DACL 限制,立即将所有 Sysmon 遥测对象刷新到 SIEM 层。 ### ⚡ 事件 3:Windows 事件折叠与循环优化失败 * **症状:** 旨在填充 Event Code 4625 的自动化凭据攻击循环未能在 SIEM 控制台中返回警报或日志。 * **根本原因分析:** 通过 `Start-Process` 进行的程序化执行被困在 PowerShell 的错误处理空间内,未能触及本地安全机构。当切换到标准的本地循环时,Windows 网络限流和环回优化会在内部将快速失败进行分组或丢弃,以节省处理开销,从而导致日志 pipeline 数据匮乏。 * **修复:** 通过显式的目标包装器,将攻击流量定向到本地进程间通信 (Inter-Process Communication) 管理共享链接: net use \\localhost\IPC$ /user:fakeuser123 WrongPassword999 通过本地 `\\localhost\IPC$` 通道进行路由,绕过了环回优化,迫使操作系统明确评估事务并记录单独的、未分组的 Event ID 4625 日志。 ## 🎯 MITRE ATT&CK 矩阵对齐与自定义 SPL 逻辑 设计的检测套件针对基础的对手战术。为了对抗复杂的防御规避战术(例如字符大小写混合),查询通过 `lower()` 函数以编程方式将输入规范化为小写 schema。 ### 🛡️ T1110 - 凭据访问 (暴力破解) * **攻击向量:** 尝试遍历身份验证锁定以破坏账户。 * **检测策略:** 在短暂的并发窗口中隔离身份验证失败边界 (Event ID 4625)。 * **SPL 查询逻辑:** index=* sourcetype="WinEventLog:Security" EventCode=4625 | stats count as failed_attempts values(TargetUserName) as targeted_users dc(TargetUserName) as unique_users_targeted by SourceNetworkAddress | where failed_attempts >= 5 ### 🛡️ T1059.001 - 执行 / T1027 - 防御规避 (PowerShell 颠覆) * **攻击向量:** 攻击者执行混淆脚本、绕过本地执行策略或托管无文件 staging 脚本。 * **检测策略:** 监控进程创建 (Sysmon Event ID 1) 字符串中的签名规避标志 (`-enc`, `Bypass`, `IEX`, `DownloadString`)。 * **SPL 查询逻辑:** index=* sourcetype="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1 (Image="*powershell.exe" OR Image="*pwsh.exe") | eval CommandLine_Lower=lower(CommandLine) | search CommandLine_Lower="*-encodedcommand*" OR CommandLine_Lower="*-enc*" OR CommandLine_Lower="*-e *" OR CommandLine_Lower="*bypass*" OR CommandLine_Lower="*iex*" OR CommandLine_Lower="*downloadstring*" | timechart count by host ### 🛡️ T1053.005 - 持久化 (计划任务) * **攻击向量:** 注册非易失性执行 Hook,以在系统重启后保持访问权限。 * **检测策略:** 标记针对 `schtasks.exe` 的结构化创建 payload 参数 (`/create`)。 * **SPL 查询逻辑:** index=* sourcetype="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1 Image="*schtasks.exe" AND CommandLine="*/create*" | timechart count by host ## 📊 实时事件响应 SOC 仪表板 为了优化事件分诊,分析引擎与传统的后台 cron 调度(在虚拟化环境下容易出现丢失)解耦,并迁移到了低延迟的 **Real-Time Streaming Pipelines** 中。 该界面被构造成一个主动威胁跟踪网格: 1. **PowerShell 规避趋势:** 以柱状图可视化,监控频率峰值。 2. **主动端点威胁记录:** 一个实时的表格化取证视图,展示执行身份、机器资产、动态威胁类别分类以及确切的命令字符串 payload。 3. **持久化机制检测:** 专用图表,用于隔离寻求环境长久驻留的执行异常。 ![SOC Dashboard Mockup]([Image]) ## 🧠 网络工程关键要点 1. **遥测保真度优于传统日志:** 标准的操作系统审计很容易隐藏执行参数。引入 Sysmon 可以绝对清晰地查看进程参数 (`CommandLine`, `ParentImage`)。 2. **可编程弹性:** 依赖基本的文本匹配无法抵御混淆。防御措施必须利用规范化函数(例如小写转换层)来抵御简单的字符串操作。 3. **基础设施可见性:** 技术故障排除应始终按照从外到内的顺序系统地进行:验证网络接口绑定、在本地测试日志可见性、检查访问控制 (ACL) 以及分析运行时账户权限。
标签:AI合规, AMSI绕过, Sysmon, 威胁检测