clivoa/attack-analysis-workbench
GitHub: clivoa/attack-analysis-workbench
基于 MITRE ATT&CK 框架的纯静态交互式分析工作台,帮助安全团队将威胁情报转化为优先级检测计划和缓解投资决策。
Stars: 0 | Forks: 0
# ATT&CK 分析工作台
一个用于 [MITRE ATT&CK®](https://attack.mitre.org/) Enterprise 的交互式分析工作台。探索威胁组织、软件、技术、战术、活动和缓解措施之间的关系——然后构建一个**威胁档案**并将其转化为可操作的输出:技术热力图、优先级检测工程工作清单以及缓解措施投资排名。导入你**已部署的检测规则**以运行三层差距分析(威胁 × 遥测 × 规则),并针对差距获取 **SigmaHQ 规则建议**。纯静态站点:无后端,使用 Vite 构建并部署于 GitHub Pages。
## 适用人群
- **CTI 分析师** —— 黑客档案、生态图谱、技术重叠同类分析、综合足迹、Navigator 层导出。
- **检测工程师** —— 带有评分的工作清单(说明检测什么以及为什么检测)、针对你真实遥测数据的可见性判定、针对导入规则清单的规则覆盖率差距分析、针对各项技术的 SigmaHQ 规则建议、包含 MITRE 分析的逐项技术检测卡片、可导出的检测计划。
- **SOC 主管** —— 覆盖率 KPI、缓解措施 ROI 排名、盲点列表、适合向高管汇报的成果。
## 导览
首次访问会打开一个导览启动器(随时可通过 **✦ 导览** 按钮访问)。四个基于角色的交互式导览会在应用内演示一个实时案例(APT29 + Lazarus Group),突出显示各个控件,并在结束时提供恢复你自己数据的选项:
- **平台概述**(约 2 分钟)—— 视图、搜索、威胁档案、详情面板。
- **CTI 分析师**(约 4 分钟)—— 黑客档案、生态图谱、综合足迹、Navigator 导出。
- **检测工程师**(约 5 分钟)—— 遥测声明、优先级评分、检测卡片、积压工作、计划导出。
- **SOC 主管**(约 3 分钟)—— 覆盖率 KPI、缓解措施 ROI、盲点、高管报告。
导览也支持深链接:`#tour=cti`、`#tour=engineer`、`#tour=soc`(可选择附带步骤,例如 `#tour=engineer:6`)。
## 工作流程
1. **探索** —— 一个可扩展的关系图谱。搜索任何实体(组织、恶意软件、技术、活动、缓解措施),将其添加到画布,然后双击节点以扩展它们的关系:谁使用了什么、哪些活动部署了哪些恶意软件、什么缓解了什么。
2. **构建威胁档案** —— 在任何组织/软件/活动面板中,点击 *+ 威胁档案*。该档案(保存在你的浏览器中)代表了你所关注的对手。
3. **矩阵** —— 将 ATT&CK 矩阵作为热力图。单元格强度显示有多少档案实体使用了每项技术(如果档案为空,则显示全球组织的使用情况)。切换子技术、筛选仅显示档案包含的内容、叠加你的**规则覆盖情况**(绿色边框 = 已被导入的规则覆盖,红色虚线 = 档案使用了该技术但无规则),并**导出为 ATT&CK Navigator 层**。
4. **检测设计器** —— 检测工程工作台(见下文)。
5. **防御规划器** —— 根据对你档案技术的加权覆盖率对缓解措施进行排名:哪一项单独的控制措施能最大程度地削弱这些参与者的实际行为。同时也会显示档案中最常用的技术及其**盲点**(未映射缓解措施的技术)。
支持深链接:`#matrix`、`#detect`、`#defense`、任何 ATT&CK ID(`#G0016`、`#T1055.001`),或直接访问检测卡片(`#detect=T1053.005`)。
## 检测设计器(SOC / 检测工程 / CTI)
解答*我们应该检测什么*以及*为什么*:
- **优先工作清单** —— 范围内的每项技术(威胁档案,或所有组织)均按透明的评分标准排名:**威胁**(你已画像参与者的使用情况,0–50)+ **流行度**(全球组织使用情况,对数缩放,0–30)+ **暴露程度**(当 ATT&CK 未映射缓解措施时为 +20,即检测是唯一的控制措施)。
- **遥测档案** —— 勾选你的 SOC 实际采集的日志源(来自 ATT&CK 分析语料库的 266 个源,按产品分组,并提供 Windows/Linux/macOS/Cloud/Network 预设)。每项技术都会据此获得 **Full / Partial / Blind** 可见性判定,以及一个总体可见性百分比。
- **逐项技术的检测卡片** —— *为什么检测此技术*(CTI 上下文:已画像参与者、全球参与者计数、活动)、*收集什么*(通道级日志源,根据你的遥测数据显示 ✓/✗)、*检测用例*(ATT&CK v18+ 分析:行为描述、平台、所需日志源、调整旋钮)。
- **规则清单和差距分析** —— 导入你实际已部署的检测规则(见下文格式)。工作清单中的每项技术都会获得一个 **✓ 有规则 / 无规则** 的判定,摘要会显示你的**规则覆盖率 %**以及**准备好填补的差距**数量(无规则,但遥测已就绪——最低成本的胜利),专门的过滤器可隔离已覆盖/未覆盖/可操作差距的技术。覆盖率在层级间向上汇总:标记为某项子技术的规则也会计入其父技术,而父级规则涵盖其子技术(标记为 *via TXXXX*)。
- **SigmaHQ 规则建议** —— 每张检测卡片都会列出该技术下排名前列的公共 [SigmaHQ](https://github.com/SigmaHQ/sigma) 规则(稳定/关键级别优先,并链接到 GitHub),这些数据来自包含约 2,800 条 ATT&CK 标记规则、涵盖约 390 项技术的内置索引。没有自己规则的子技术将回退到其父技术。
- **积压工作跟踪** —— 将技术标记为 待审查 / 计划中 / 已实施 / 不适用(本地保存);摘要卡片可一目了然地显示积压工作进度。
- **导出** —— 将完整的检测计划导出为 **Markdown**(用于 wiki/工单)或 **JSON**(机器可读的积压工作:分数、可见性、规则覆盖率、所需日志源、分析 ID),以及复制单顶技术的卡片。
### 导入你的规则
**检测设计器 → 你的检测规则 → 导入规则…**(支持多文件,仅存储在你的浏览器中)。支持的格式:
| 格式 | 技术匹配方式 |
|---|---|
| **Sigma YAML** (`.yml`/`.yaml`) | `title:`、`status:` 以及 `tags:` 下的 `attack.tXXXX` 条目 —— 与 SigmaHQ 使用的约定相同 |
| **CSV** (`.csv`) | 包含名称列(`name`/`title`/`rule`)、技术列(`technique`/`attack`/`mitre`/`tid` —— 任何包含 `T####`/`T####.###` ID 的单元格文本)以及可选 `status` 列的标题行 |
| **JSON** (`.json`) | 一个对象数组,包含 `name`/`title` + `techniques`/`technique`/`attack`(字符串或数组)+ 可选的 `status`/`enabled` |
| **ATT&CK Navigator layer** (`.json`) | 每一个带有正分(或无分)的 `techniqueID` 都会被标记为已覆盖,作为以该层命名的单个清单条目 |
状态为 `disabled`、`deprecated`、`unsupported` 或 `enabled: false` 的规则会保留在清单中,但不计入覆盖率。CSV 示例:
```
rule_name,techniques,status
Credential Dumping via LSASS,T1003.001,active
Process Injection Detector,"T1055, T1055.001",active
Scheduled Task Creation,T1053.005,disabled
```
## 本地运行
安装依赖并运行 Vite dev server:
```
git clone https://github.com//attack-analysis-workbench.git
cd attack-analysis-workbench
npm install
npm run dev
```
如需生产环境预览,请依次运行 `npm run build` 和 `npm run preview`。
## 项目结构
```
attack-analysis-workbench/
├── src/
│ ├── index.html # single page: topbar, tabs, the four views, side panel
│ ├── main.js # Vite entrypoint
│ ├── css/style.css # all styling (dark + light themes)
│ └── js/
│ ├── app.js # state (S), data load, indexes, search, threat profile, tabs, deep links
│ ├── graph.js # Explore: expandable D3 force-directed relationship graph
│ ├── matrix.js # Matrix: tactics x techniques heatmap + Navigator layer export
│ ├── detect.js # Detection Designer: scoring, telemetry model, cards, backlog, exports
│ ├── rules.js # rule inventory: Sigma/CSV/JSON import, coverage layer, SigmaHQ suggestions
│ ├── defense.js # Defense Planner: mitigation ranking, blind spots
│ ├── panel.js # universal entity detail panel with cross-navigation
│ └── tour.js # guided tours: engine + persona walkthrough definitions
├── public/data/ # attack-data.json + sigma-index.json copied into the production build
├── data/ # source copies of the compact datasets
├── vite.config.js # GitHub Pages base path and build settings
└── scripts/
├── build_data.py # regenerates attack-data.json from enterprise-attack.json
└── build_sigma_index.py # regenerates sigma-index.json from the SigmaHQ repo
```
所有用户状态(威胁档案、遥测、规则清单、检测积压工作、主题、导览标记)都保存在 `localStorage` 中——不会向浏览器外发送任何数据。
## 更新数据
该站点附带一个从官方 ATT&CK STIX bundle 生成的精简快照。要刷新它:
```
curl -LO https://raw.githubusercontent.com/mitre-attack/attack-stix-data/master/enterprise-attack/enterprise-attack.json
python3 scripts/build_data.py enterprise-attack.json
```
该脚本会同时更新 `data/attack-data.json` 和 `public/data/attack-data.json`。
该脚本提取活跃(非撤销、非弃用)的战术、技术、组织、软件、活动和缓解措施,以及它们之间的 `uses`、`attributed-to`、`mitigates` 和 `detects` 关系。从 ATT&CK v18+ 检测模型中,它还会提取检测策略、分析(描述、平台、通道级日志源引用、可变/调整元素)以及标准化的日志源目录。
SigmaHQ 建议索引的刷新方式相同,通过检出自 [SigmaHQ/sigma](https://github.com/SigmaHQ/sigma) 仓库的代码或 tarball:
```
curl -sL -o sigma.tar.gz https://github.com/SigmaHQ/sigma/archive/refs/heads/master.tar.gz
mkdir sigma-master && tar xzf sigma.tar.gz -C sigma-master --strip-components=1
python3 scripts/build_sigma_index.py sigma-master
```
它会解析 `rules/` 下的每一条规则,保留标题、级别、状态和 `attack.tXXXX` 标签,并将倒排的 技术 → 规则 索引写入 `data/sigma-index.json` 和 `public/data/sigma-index.json`(规则排序方式为稳定版优先于实验版,关键级别优先于低级别)。
## 部署到 GitHub Pages
GitHub Pages 必须使用 **GitHub Actions**,而不是“从分支部署”。`.github/workflows/deploy.yml` 中的工作流会将 Vite 应用构建到 `dist/` 并部署该构建产物。
在仓库设置中,转到 **Settings → Pages → Build and deployment → Source** 并选择 **GitHub Actions**。推送到 `main` 分支后,站点将通过 `https://.github.io/attack-analysis-workbench/` 提供访问。
## 技术栈
- [D3.js v7](https://d3js.org/)(力导向模拟、缩放、拖拽)
- Vite
- 原生 JS / CSS —— 无框架
## 许可证与致谢
ATT&CK 数据 © The MITRE Corporation,根据 [ATT&CK Terms of Use](https://attack.mitre.org/resources/legal-and-branding/terms-of-use/) 授权使用。本项目不附属于 MITRE,也未得到其认可。
标签:Cloudflare, MITRE ATT&CK, Vite, 威胁情报, 安全运营中心, 开发者工具, 网络映射, 自定义脚本, 覆盖率分析, 逆向工具, 静态站点