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, 威胁情报, 安全运营中心, 开发者工具, 网络映射, 自定义脚本, 覆盖率分析, 逆向工具, 静态站点