cybersecbalaji/mitre_attack_map

GitHub: cybersecbalaji/mitre_attack_map

基于浏览器的 ATT&CK 覆盖热力图构建工具,可将 Sigma 规则和检测列表自动映射到 MITRE ATT&CK Enterprise 与 ATLAS 矩阵并进行可视化分析。

Stars: 0 | Forks: 0

# ATT&CK 覆盖热力图构建器 基于浏览器的工具,可将 Sigma 规则和检测列表中的 MITRE ATT&CK Enterprise(以及 MITRE ATLAS)覆盖情况进行可视化——无需后端、无需注册、无需手动标记 T-code。 ## 在线应用 **[https://mitre-attack-map.vercel.app](https://mitre-attack-map.vercel.app)** ## 快速开始 ``` git clone https://github.com/cybersecbalaji/mitre_attack_map cd attack-coverage-heatmap npm install cp .env.local.example .env.local # optional — see Persistence below npm run dev ``` 打开 [http://localhost:3000](http://localhost:3000)。 ## 功能 ### 检测引入 在左侧面板上传您的检测规则——支持以下三种格式: | 格式 | 示例 | |---|---| | Sigma YAML / ZIP | `tags: [attack.t1059.001]` — 主要映射方式 | | 纯文本 | 每行一条规则:`T1059.003 - PowerShell` 或 `Detect LSASS` | | 手动输入 | 包含所有 ATT&CK 技术的可搜索下拉菜单 | 没有明确 ATT&CK 标签的规则将回退到 T-code 正则表达式扫描,然后进行模糊关键词匹配。任何无法映射的规则都会显示在“已跳过”列表中——绝不会静默丢弃。 ### 覆盖热力图(默认视图) | 颜色 | 含义 | |---|---| | 绿色 | 已覆盖——至少有一条规则带有直接的 ATT&CK 标签 | | 琥珀色 | 部分覆盖——仅通过模糊/关键词匹配 | | 灰色 | 未覆盖 | ### 密度热力图(切换:覆盖率 → 密度) 备选矩阵视图,根据覆盖每种技术的**规则数量**为单元格着色。可暴露二元化已覆盖/未覆盖视图中隐藏的过度依赖和薄弱覆盖问题。 | 颜色 | 区间 | |---|---| | 深石板灰 | 0 条规则(无覆盖) | | 深青色 | 1 条规则 | | 青色 | 2-3 条规则 | | 浅青色 | 4-5 条规则 | | 琥珀色 | 6 条以上规则(过度依赖警告) | ### ATT&CK + ATLAS 矩阵切换 使用标题栏中的切换开关,在 **MITRE ATT&CK Enterprise** 和 **MITRE ATLAS**(AI/ML 对抗战术)之间切换。两个矩阵共享相同的引入和过滤管道。 ### 平台过滤 过滤矩阵,仅显示与您的环境相关的技术。使用的是 MITRE 规范的平台名称: `Windows` · `macOS` · `Linux` · `IaaS`(涵盖 AWS/Azure/GCP) · `SaaS` · `Office Suite` · `Identity Provider` · `PRE` · `Containers` · `Network Devices` · `ESXi` 当跨平台技术的平台列表与所选过滤器有重叠时,这些技术仍将保持可见。 ### 数据源过滤(仅 ATT&CK 模式) 根据检测每种技术所需的**日志和遥测源**对矩阵进行过滤——与官方 ATT&CK Navigator 提供的过滤器相同。下拉菜单是根据加载的 STIX 数据动态填充的(例如 Process Creation、Network Traffic、Active Directory)。 数据源过滤器与平台过滤器是“与(AND)”的关系。清除任一过滤器即可恢复完全可见性。 ### 技术详情面板 点击任何技术单元格以打开侧边面板,显示: - **完整描述**(来自 MITRE STIX) - **平台徽章**和战术 - **覆盖状态**徽章(已覆盖 / 部分覆盖 / 未覆盖) - **已映射规则**——涵盖此技术的具体规则 - **缓解措施**——带有描述的 MITRE M-code 控制(例如 M1038、M1042) - **ATT&CK 链接**——打开官方技术页面 ### Navigator 导出 生成有效的 [Navigator Layer v4.5](https://github.com/mitre-attack/attack-navigator/blob/master/layers/LAYERFORMATv4_5.md) JSON 文件。完全覆盖 → 分数 `100`,部分覆盖 → `50`,未覆盖则省略。规则名称会合并到每个技术的 `comment` 字段中。 ### 工作区快照 保存您的规则集和过滤器的即时快照。快照持久化至 **localStorage**(始终生效),并在配置后持久化至 **InstantDB**,从而实现跨设备访问和可共享的工作区链接。 活动规则会通过工作区 ID 作为键**自动保存**到 localStorage 中——它们可以在同一设备上经受浏览器刷新和注销/登录操作,而无需显式创建快照。 ### 可共享的工作区链接 点击 **Share** 以复制 `?ws=` URL。任何拥有此链接的人都可以查看(但不能修改)您的工作区。需要配置 InstantDB;否则工作区状态仅限本地使用。 ## 数据持久化 该应用仅使用 `localStorage` 即可完全脱机工作。要启用跨设备同步和共享链接功能: 1. 在 [InstantDB](https://instantdb.com/dash) 创建一个免费应用。 2. 在 `.env.local`(或 Vercel 环境变量)中设置 `NEXT_PUBLIC_INSTANTDB_APP_ID=`。 3. 重启开发服务器(或重新部署)。 如果没有 InstantDB,应用将在纯本地模式下运行——没有身份验证、没有跨设备同步、没有共享链接。 ## 技术栈 - **前端**:Next.js 14 (App Router) + TypeScript + Tailwind CSS + shadcn/ui - **ATT&CK 数据**:来自 `mitre-attack/attack-stix-data` GitHub 仓库的实时 STIX JSON(约 50 MB,在 localStorage 中缓存 24 小时) - **ATLAS 数据**:来自 `mitre-atlas/atlas-data` GitHub 仓库的实时 YAML - **持久化**:InstantDB(可选)+ localStorage 回退 - **身份验证**:InstantDB 邮箱 OTP(可选——当未设置 `NEXT_PUBLIC_INSTANTDB_APP_ID` 时跳过) - **部署**:适配 Vercel,无需后端服务器 ## 开发 ``` npm run dev # dev server on port 3000 npm run build # production build npm run test:unit # Jest unit tests npm run test:e2e # Playwright browser tests (all fixtures mocked) ``` ## 部署 1. 推送至 GitHub。 2. 在 [vercel.com/new](https://vercel.com/new) 导入仓库。 3. (可选)在 Vercel → Settings → Environment Variables 中添加 `NEXT_PUBLIC_INSTANTDB_APP_ID`。 4. 部署。 **共享工作区链接**:默认情况下,Vercel 会在 `*.vercel.app` URL 上启用 Deployment Protection,这会在共享链接前添加 Vercel SSO 验证墙。要禁用它:Vercel dashboard → Settings → Deployment Protection → 将 **Vercel Authentication** 设置为 **Disabled**。详情请参阅 [DEPLOYMENT.md](DEPLOYMENT.md)。 ## 许可证 Apache 2.0 — 详见 [LICENSE](LICENSE)。
标签:AI安全, AMSI绕过, ATLAS, ATT&CK矩阵, Chat Copilot, Cloudflare, CMS安全, EDR, JavaScript, MITRE ATT&CK, OSV, React, Sigma规则, Syscalls, Vercel, 前端工具, 威胁检测, 安全可视化, 安全度量, 安全运营, 密度分析, 密钥泄露防护, 开源, 扫描框架, 机器学习安全, 检测规则映射, 模糊匹配, 浏览器工具, 热力图, 目标导入, 端点检测, 网络安全, 脆弱性评估, 自动化攻击, 覆盖率可视化, 规则管理, 隐私保护