zook5098/threat-hunting-framework

GitHub: zook5098/threat-hunting-framework

一个假设驱动的结构化威胁狩猎框架,每次狩猎都记录完整分析过程并附带多平台查询,区别于单纯的查询集合。

Stars: 0 | Forks: 0

# 威胁狩猎框架 一个结构化、假设驱动的威胁狩猎仓库:每次狩猎都记录了它存在的*原因*、需要*什么数据*、要运行的*实际查询*,以及*如何验证*发现。旨在展示狩猎背后的分析过程,而不仅仅是一个查询文件夹。 ## 为什么采用这种结构 GitHub 上大多数“威胁狩猎”仓库只是查询堆砌。资深 D&R/狩猎职位的招聘经理希望看到背后的逻辑:你假设了什么对手行为,什么证据可以证实或反驳它,以及一旦你发现了什么,你会怎么做。这个仓库将每次狩猎视为一次带有自己独立报告的微型调查。 ## 仓库结构 ``` hunts/ lateral-movement/ credential-access/ persistence/ templates/ hunt_template.md <- copy this to start a new hunt queries/ sigma/ <- platform-agnostic detection rules derived from hunts splunk/ <- SPL versions kql/ <- KQL versions (Sentinel/Defender) docs/ methodology.md <- the hunting process this repo follows data_sources.md <- what log sources are assumed to exist and why ``` ## 狩猎模板 `hunts/` 中的每次狩猎都遵循此格式(参见 `templates/hunt_template.md`): 1. **假设** — 正在狩猎的特定对手行为,与 ATT&CK 技术相关联 2. **基本原理** — 为什么这种行为值得狩猎(普遍性、现有检测中的盲点、威胁情报驱动因素) 3. **所需数据源** — 所需的精确日志源/字段 4. **狩猎查询** — 实际查询,首先是 Sigma(为了可移植性),然后是特定平台的转换 5. **预期的合法活动** — 正常/良性匹配是什么样的,以便您可以排除噪音 6. **验证步骤** — 当一个命中结果看起来有可疑时,分析师要做什么,以确认是真正的还是误报 7. **结果 / 发现** — 记录运行此狩猎实际发现了什么(即使是“什么也没发现,这也是仍然有用的原因”) 8. **检测后续行动** — 如果狩猎发现了可重复的内容,将其提升为 `queries/sigma/` 中的常驻 Sigma 规则 ## 示例狩猎(计划中) | 狩猎 | ATT&CK | 状态 | |---|---|---| | [通过 WMI 基于 LOLBin 的横向移动](hunts/lateral-movement/wmi-lateral-movement.md) | T1047, T1021 | 已验证(实验室数据) | | [通过异常 TGS 请求量进行的 Kerberoasting](hunts/credential-access/kerberoasting.md) | T1558.003 | 已验证(实验室数据) | | 通过 comsvcs.dll 窃取凭据的 Living-off-the-land | T1003.001 | 草稿 | | [基线之外的新计划任务持久性](hunts/persistence/scheduled-task-persistence.md) | T1053.005 | 已验证(实验室数据) | | 可疑的父/子进程链(Office → LOLBin) | T1204, T1059 | 草稿 | ## 方法论 本仓库遵循一个简单的循环:**假设 → 收集 → 分析 → 验证 → 行动 → 自动化**。请参阅 `docs/methodology.md` 了解每个阶段的详细分解,以及它如何映射到上面的狩猎模板字段。 ## 状态 框架和模板已敲定;正在逐一编写狩猎报告,并根据实验室数据进行验证。每个狩猎文件夹都将包含报告和查询,以便您可以同时看到“如何做”和“为什么”。
标签:安全运营, 扫描框架, 检测规则, 网络资产发现, 防御加固