Nvafiades1/threat-hunt-library
GitHub: Nvafiades1/threat-hunt-library
基于 GitHub 全自动化的 MITRE ATT&CK 威胁狩猎知识库,提供从假设到归档的标准化工作流、实时覆盖率矩阵和聚合威胁情报仪表板。
Stars: 0 | Forks: 0
# 威胁狩猎库
#### 一个动态的、与 MITRE ATT&CK 对齐的威胁狩猎目录 —— 在 GitHub 中跟踪,并自动归档。
[](https://attack.mitre.org/matrices/enterprise/)
[](.github/workflows)
[](https://nvafiades1.github.io/threat-hunt-library/)
[](https://nvafiades1.github.io/threat-hunt-library/metrics.html)
[](https://nvafiades1.github.io/threat-hunt-library/cti.html)
**[实时威胁狩猎矩阵 →](https://nvafiades1.github.io/threat-hunt-library/)** · **[管理指标仪表板 →](https://nvafiades1.github.io/threat-hunt-library/metrics.html)** · **[CTI Hub →](https://nvafiades1.github.io/threat-hunt-library/cti.html)**
## 概述
**威胁狩猎库**是一个团队共享的知识库,包含我们运行的所有威胁狩猎,并按 MITRE ATT&CK 技术进行组织。每次狩猎都记录了假设、使用的查询、观察到的内容以及得出的结论 —— 从而使未来的狩猎能够在先前工作的基础上进行,而不是从零开始。
**为什么需要它。** 狩猎结果通常存在于工单系统、聊天记录和个人笔记中。它们会逐渐消失。本仓库使每个已完成的狩猎:
- **易于发现** — 组织在 `techniques/T####/` 下,并在实时的 MITRE 矩阵中可视化。
- **可审计** — 每次狩猎既作为一个 GitHub issue(工作流),又作为一个已提交的 markdown 文件(记录)存在。
- **可复用** — 针对同一技术的未来狩猎可以基于先前的发现开始。
**适用人群。** 威胁猎人、检测工程师、安全负责人,以及任何正在准备审计、紫队演练或覆盖率审查的人员。
## 工作流
```
flowchart LR
A[Analyst opensThreat Hunt issue] --> B[Auto-added to
Project Board] A -.->|Threat Actor field| X[Threat-actor enrichment
posted as comment] X -.-> Y[Profile committed to
threat-actor-profiles/] B --> C[In Progress
analyst runs hunt] C --> D[Peer Review] D --> E[Status: Completed] E -->|automation| F[Issue closed] F -->|automation| G[Archived to
techniques/T####/] G -->|automation| H[Matrix + metrics
rebuilt & published] style A fill:#17202c,stroke:#e87722,color:#fff style E fill:#17202c,stroke:#2fbf71,color:#fff style H fill:#17202c,stroke:#2fbf71,color:#fff style X fill:#17202c,stroke:#3a9cd8,color:#fff style Y fill:#17202c,stroke:#3a9cd8,color:#fff ``` 1. **提议。** 分析师使用模板创建一个*威胁狩猎* issue。字段包括:MITRE 技术 ID、假设、查询、平台、严重性、置信度、观察到的指标。 2. **分类。** 新 issue 会自动出现在 **威胁狩猎追踪器** 项目看板的 `Backlog` 列中。 3. **执行。** 分析师将卡片移至 `In Progress`,运行狩猎,并在 issue 中记录发现。 4. **审查。** 移至 `Peer Review`。第二名分析师验证查询、发现和保真度。 5. **归档。** 将卡片移至 `Completed`。自动化流程随之接管:issue 被关闭,狩猎记录被写入 `techniques/T####/`,并且实时矩阵将重新构建。 无需手动创建文件,无需浏览文件夹 — 项目看板驱动归档。 ## 快速开始 ### 面向分析师(贡献一次狩猎) 1. 打开一个新的 issue — 选择**威胁狩猎**模板。 2. 填写模板要求的所有字段。**MITRE 技术 ID(例如,`T1059.001`)是必填的** — 自动化流程会使用它来正确归档狩猎记录。 3. 该 issue 将出现在 [威胁狩猎追踪器](https://github.com/users/Nvafiades1/projects/3) 看板上。将其依次移过 `Backlog` → `Ready` → `In Progress` → `Peer Review` → `Completed`。 4. 完成。系统将自动为您完成归档。 ### 面向审查者 - 项目看板是*正在进行的狩猎*的唯一事实来源。 - `techniques/` 文件夹是*已完成狩猎*的唯一事实来源。 - [实时矩阵](https://nvafiades1.github.io/threat-hunt-library/) 提供了横跨所有 14 个 ATT&CK 战术的鸟瞰式覆盖率视图。 ### 面向管理层 / 审计 - **[指标仪表板](https://nvafiades1.github.io/threat-hunt-library/metrics.html)** 显示了总狩猎次数、涵盖的技术、追踪的威胁行为者、覆盖率百分比以及随时间变化的趋势图。 - 覆盖率百分比也会显示在实时矩阵的页眉中。 - 每次已完成的狩猎都会被提交并带有时间戳 — 适合作为审计证据。 - 项目看板可以一目了然地显示吞吐量和当前工作。 ## 仓库布局 ``` threat-hunt-library/ ├── README.md ← you are here ├── docs/ │ ├── index.html ← the live matrix (auto-generated) │ ├── metrics.html ← executive metrics dashboard (auto-generated) │ └── cti.html ← CTI hub: aggregated open-source threat intel (auto-generated, hourly) ├── techniques/ │ ├── T1003/ ← OS Credential Dumping │ │ ├── README.md ← MITRE description (auto-updated) │ │ └── T1003-*.md ← individual hunts (one per issue) │ ├── T1059/ ← Command and Scripting Interpreter │ └── ... (836 technique folders, full enterprise coverage) ├── threat-actor-profiles/ │ ├── G0016-apt29.md ← MITRE ATT&CK group profiles │ └── ... ← auto-generated when an issue names an actor ├── mitre_ttp_mapping.json ← technique → tactic mapping ├── tools/ │ ├── build_matrix.py ← generates docs/index.html │ ├── build_metrics.py ← generates docs/metrics.html │ ├── build_cti.py ← generates docs/cti.html (open-source CTI aggregator) │ └── cti_state.json ← rolling 30-day CTI item state (auto-maintained) └── .github/ ├── ISSUE_TEMPLATE/ ← threat-hunt form template ├── scripts/ │ ├── createMitreFolders.js ← keeps techniques/ in sync with ATT&CK │ ├── enrichThreatActor.js ← MITRE + MISP threat-actor lookup │ └── updateThreatHunt.js ← archives completed hunts └── workflows/ ← five automation pipelines (see below) ``` ## 自动化 六个工作流使该库保持自我维护: | 工作流 | 触发器 | 功能描述 | |---|---|---| | **更新 MITRE 文件夹** | 每周定时任务 + 手动触发 | 从 `mitre-attack/attack-stix-data` 拉取当前的 STIX bundle,为每个活动 + 已弃用 + 已撤销的技术重新生成 `techniques/T####/README.md`,并重写 `mitre_ttp_mapping.json`。已弃用/撤销的技术会在其 README 中获得一个 `STATUS:` 标注。 | | **将新 Issue 保存到文件夹** | Issue 被打开时 | 将新 issue 暂存为 `test/issue-
MITRE intrusion-set?} M -- yes --> A[Group profile
+ TTPs + tools] M -- no --> C{Match in
MITRE campaign?} C -- yes --> CP[Campaign profile
+ TTPs + attribution] C -- no --> P{Match in
MISP galaxy?} P -- MISP entry refs
a MITRE group --> A P -- MISP only --> MP[MISP profile
country, sector, refs] P -- no --> N["No match — post
“did you mean…”"] style A fill:#17202c,stroke:#e87722,color:#fff style CP fill:#17202c,stroke:#e87722,color:#fff style MP fill:#17202c,stroke:#3a9cd8,color:#fff style N fill:#17202c,stroke:#a02020,color:#fff ``` ### 识别内容 | 命名系列 | 示例 | 解析方式 | |---|---|---| | MITRE 主要名称 | `APT29`, `FIN7`, `Lazarus Group` | MITRE group (G####) | | MITRE 别名 | `Cozy Bear`, `Midnight Blizzard`, `UNC2452` | 通过别名列表查找 MITRE group | | Microsoft 代码(现代) | `Storm-0249`, `Mint Sandstorm` | MISP → MITRE(如果已关联),否则仅生成 MISP 配置文件 | | Mandiant / CrowdStrike 代码 | `UNC4990`, `WIZARD SPIDER` | MISP 覆盖范围;当 MISP 条目引用 MITRE 时解析为 MITRE | | MITRE 攻击活动 | `SolarWinds Compromise`, `2015 Ukraine Electric Power Attack` | 带有 `attributed-to` 行为者链接的 MITRE campaign (C####) | ### 存储位置 | 输出 | 内容 | |---|---| | `threat-actor-profiles/G####-{slug}.md` | 完整的 MITRE 组织配置文件:快照块(国家、疑似赞助商、目标行业、疑似受害者、最近攻击活动、覆盖率统计)、概述、**归属攻击活动表**(包含首次/最后一次发现日期)、工具/恶意软件及其平台、**按 TTP 划分的过程描述**(即“操作指南” —— 摘自 MITRE,供猎人用作查询起点)、作为加固清单的**建议缓解措施**,以及列出 MITRE 引用的每份主要研究报告(Volexity、Mandiant、FireEye、CrowdStrike、Microsoft、NCSC 等)的**参考与 IOC 来源**部分。 | | `threat-actor-profiles/C####-{slug}.md` | 完整的 MITRE 攻击活动配置文件:快照、attributed-to 行为者链接、日期、工具、按 TTP 划分的过程描述、缓解措施、参考。 | | `threat-actor-profiles/misp-{slug}.md` | 仅 MISP 的备用配置文件:别名、国家、赞助商、目标行业、疑似受害者、动机、MISP 引用的 IOC 来源 URL。(无 TTPs — MITRE 不跟踪此行为者。) | | Issue 评论 | 每个匹配项对应一个部分,包含别名、国家/赞助商/行业行、最近攻击活动行、描述摘要、标题统计(`66 TTPs · 12 tactics · 49 tools · 2 campaigns`)以及指向完整配置文件的链接。逗号分隔的多个行为者将生成一条包含多个部分的评论。 | ### 智能重新丰富 每次丰富评论都带有一个隐藏标记,用于标记其涵盖的规范 ID(例如 ``)。在随后的 Issue 编辑中: - **行为者列表相同** → 工作流直接退出,不执行任何操作(无垃圾评论)。 - **行为者列表已更改** → 现有评论将被**原地编辑**以反映新的解析结果;新的配置文件将与旧文件一起提交(历史记录将被保留 — 不会删除任何内容)。 - **无匹配重试** → 如果分析师修复了拼写错误,下次编辑将获取更正后的名称并相应地重写评论。 ## 自定义 ### 更改矩阵外观 编辑 `tools/build_matrix.py` — HTML 模板和 CSS 都存在于该单一文件中。推送到 `main` 分支后会自动重新构建和部署。 ### 添加 / 重命名战术 `tools/build_matrix.py` 中的 `TACTICS` 列表决定了列的顺序。`mitre_ttp_mapping.json` 文件将每个 T#### 映射到其对应的战术。 ### 调整归档格式 写入 `techniques/T####/` 的 markdown 是在 `.github/scripts/updateThreatHunt.js` 中构建的(参见 `buildArchive()`)。 ### 调整威胁行为者丰富度 MISP 和 MITRE STIX URL、解析优先级以及配置文件/评论 markdown 模板都位于 `.github/scripts/enrichThreatActor.js` 中。要将覆盖范围扩展到其他来源(例如 MITRE ATT&CK Mobile、MITRE ICS),请在 `resolveQuery()` 中添加一个新的获取器和一个新的分支。 ### 调整 CTI 订阅源 完整的来源列表、获取器调度表和 HTML/CSS 模板都位于 `tools/build_cti.py` 中。要添加来源,请向 `SOURCES` 追加一个元组(`(display_name, category, fetcher_key, url)`)— 对于 RSS 来源,现有的 `fetch_rss` 处理程序就足够了。对于非 RSS 格式(JSON / CSV),请添加一个新的获取器函数并将其注册到 `FETCHERS` 中。刷新频率在 `.github/workflows/build_cti.yml` 中设置(默认:每小时 `:15`)。 ## 维护者 如有问题、功能请求或疑问 → [创建一个 Issue](https://github.com/Nvafiades1/threat-hunt-library/issues/new/choose)。
使用 GitHub Issues、Projects 和 Actions 构建。与 MITRE ATT&CK Enterprise 对齐。
标签:Cloudflare, GitHub Actions, Markdown, MITRE ATT&CK, Ruby, SecOps, 云安全架构, 仪表盘, 安全运营, 扫描框架, 数据可视化, 知识库, 矩阵视图, 紫队, 网络威胁情报, 网络安全, 自动化归档, 自动笔记, 逆向工具, 隐私保护, 黑客攻击防范