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` 了解每个阶段的详细分解,以及它如何映射到上面的狩猎模板字段。
## 状态
框架和模板已敲定;正在逐一编写狩猎报告,并根据实验室数据进行验证。每个狩猎文件夹都将包含报告和查询,以便您可以同时看到“如何做”和“为什么”。
标签:安全运营, 扫描框架, 检测规则, 网络资产发现, 防御加固