srkyn/splunk-detection-content

GitHub: srkyn/splunk-detection-content

一份按 MITRE ATT&CK 战术组织的 Splunk SPL 检测手册,每条规则附带完整的行为分析、数据源假设、误报调优说明和分析师后续调查步骤,适用于蓝队学习和检测工程参考。

Stars: 0 | Forks: 0

# Splunk 检测内容 ![Splunk 检测内容项目横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fd8bdfd4fd114623.svg) 一个按 [MITRE ATT&CK](https://attack.mitre.org/) 战术组织的 Splunk SPL 搜索检测手册。这些内容是为以 Windows 为中心、包含 Active Directory、Sysmon、PowerShell 日志记录和标准 Windows 安全事件的实验室环境编写的。 这个仓库的目的不是为了堆砌搜索语句,也不是为了声称达到了生产级别的覆盖率。每项检测都被写成了分析师笔记:它寻找什么行为,它假设了什么数据,通常什么情况会产生误报,以及在升级上报之前我会接下来检查什么。 这些搜索语句基于实验室实践、公开的攻击技术研究以及经过脱敏处理的检测编写练习。它们旨在展示安全运营的思维逻辑:行为分析、前提假设、规则调优和分类上下文。 每个查询包含: - **检测内容** — 正在狩猎的行为或指标 - **ATT&CK 映射** — 战术和技术参考 - **所需数据源** — index/sourcetype 假设 - **SPL** — 可直接复制粘贴,并指明了字段假设条件 - **调优说明** — 已知的 FP 来源以及如何减少噪音 - **分析师后续步骤** — 在确认某事可疑之前我会使用的切入点 ## 范围 这是一个作品集检测手册,而不是一个托管的检测产品。 使用它来了解: - 我如何将攻击者行为转化为 SPL - 每个搜索语句假设了什么数据源 - 误报可能出现在哪里 - 在升级上报之前我会检查什么 - 实验室和 TryHackMe 风格的练习如何转化为文档化的检测逻辑 不要在部署前不调整 index、sourcetype、字段名、基线和允许列表的情况下,直接在真实的 Splunk 环境中原样使用它们。 ## 我如何审查检测 1. 从行为开始,而不是工具名称。 2. 确认数据源确实能够观察到该行为。 3. 编写第一个 SPL 版本作为可见性搜索。 4. 添加分组、阈值和有助于人工判定的字段。 5. 在不隐藏罕见活动的情况下,调优已知的正常管理员活动。 6. 记录下一步要检查什么,这样警报就不会停留在“有趣”这一步。 最后一部分很重要。一个不能告诉下一位分析师去哪里深入调查的检测只完成了一半。 ## 数据源假设 | 日志源 | Sourcetype | 备注 | |---|---|---| | Windows 安全事件 | `WinEventLog:Security` | 审计策略:登录、账户管理、对象访问 | | Sysmon | `XmlWinEventLog:Microsoft-Windows-Sysmon/Operational` | 配置:SwiftOnSecurity 或 olafhartong | | PowerShell | `WinEventLog:Microsoft-Windows-PowerShell/Operational` | 已启用脚本块日志记录 | | Windows 系统 | `WinEventLog:System` | 服务安装、任务计划程序 | | DNS | `stream:dns` 或特定供应商 | 正向和反向查找 | ## 查询索引 | 文件 | 战术 | 涵盖的技术 | |---|---|---| | [persistence.md](queries/persistence.md) | 持久化 | T1053.005, T1547.001, T1543.003 | | [credential-access.md](queries/credential-access.md) | 凭证访问 | T1110.001, T1558.003, T1003.001 | | [lateral-movement.md](queries/lateral-movement.md) | 横向移动 | T1021.002, T1021.006, T1550.002 | | [defense-evasion.md](queries/defense-evasion.md) | 防御规避 | T1070.001, T1562.001, T1036.005 | | [discovery.md](queries/discovery.md) | 发现 | T1135, T1087.002, T1046 | | [execution.md](queries/execution.md) | 执行 | T1059.001, T1204, T1105, T1218 | | [initial-access.md](queries/initial-access.md) | 初始访问 | T1566.001, T1566.002 | | [exfiltration.md](queries/exfiltration.md) | 数据窃取 | T1041, T1567.002 | ## 用法 所有查询均以 `index=wineventlog` 或 `index=sysmon` 基线为目标。在部署之前,请调整索引名称和字段映射以匹配您的环境。 查询是为 **Splunk Enterprise** 和 **Splunk Cloud** 编写的,并在可能的情况下使用了标准的 CIM 风格字段命名。 推荐工作流: ``` | stats count dc(host) as host_count values(host) as hosts by user, Image, CommandLine | sort - count ``` 首先使用宽泛版本以了解正常活动,然后再收紧查询条件。在理解误报路径之前,不要将检测转化为警报。 ## 作品集说明 这是一个防御性内容仓库。这些搜索语句旨在展示什么信号重要、需要什么上下文,以及在分类期间我接下来会做什么。 我避免使用特定于环境的允许列表、真实的主机名、内部域名、用户名、工单号以及来自私有系统的屏幕截图。 有关实验室出处和持续的实践笔记,请参阅[实践日志](docs/practice-log.md)。 ## 验证 该仓库包含一个轻量级验证脚本,用于检查每个查询编写是否包含预期的分析师部分、MITRE ATT&CK 技术 ID 以及封闭的 SPL 代码块: ``` python scripts/validate_queries.py ``` ## 作者 David Sarkisyan · 网络安全分析师 · 纽约市 [srkyn.com](https://srkyn.com) · [github.com/srkyn](https://github.com/srkyn) · Splunk Core User
标签:Active Directory, ATT&CK框架, Cloudflare, Conpot, MITRE ATT&CK, OpenCanary, Plaso, PowerShell日志, SPL, Sysmon, TryHackMe, URL发现, Windows安全, 子域名变形, 安全剧本, 安全实验室, 安全检测, 安全研究笔记, 安全运营, 扫描框架, 端口项目, 网络安全, 误报调优, 逆向工具, 隐私保护