DaSa7/deadband
GitHub: DaSa7/deadband
将CVE数据与MITRE ATT&CK for ICS技术进行关联,识别威胁组织并分析安全平台检测能力的ICS/OT威胁情报映射工具。
Stars: 0 | Forks: 0
# // deadband
### ICS/OT 对手映射工具
Deadband 接收供应商或协议名称,从 NVD 和 CISA 提取所有相关 CVE,将其映射到 [MITRE ATT&CK for ICS](https://attack.mitre.org/matrices/ics/) 技术,找出使用这些技术的威胁行为者,然后告诉您哪些是您的安全平台无法检测到的——全部在一 个命令中完成,全部在一个可以直接交给别人的 PDF 中。

## 功能说明
```
CVEs (NVD + CISA) → ATT&CK for ICS techniques → Threat group attribution → Detection gap analysis → PDF report
```
一个命令输入,一份报告输出。或者启动 Web UI,从浏览器进行操作。
## Web UI
Deadband 有一个基于 Flask 的 Web UI,带有实时流水线流式传输——您可以实时观看分析运行,并直接从浏览器下载 PDF 报告。
```
python app.py
```
然后打开 `http://127.0.0.1:5000`。
功能特性:
- 从 `detection_coverage.json` 填充的平台下拉菜单
- 流水线运行时通过 Server-Sent Events 推送的实时日志输出
- 结果摘要卡片——收集的 CVE、发现的技术、覆盖率%、盲点
- 覆盖率条形图和带有威胁行为者归属的热门盲点列表
- 一键式 PDF 下载
## 支持的平台
| 类别 | 平台 |
|----------|-----------|
| OT/ICS | Claroty、Dragos、Nozomi |
| SIEM | Splunk、QRadar、Microsoft Sentinel |
| EDR | CrowdStrike Falcon、Microsoft Defender |
| 开源 | Zeek、Snort |
检测覆盖率在 `data/detection_coverage.json` 中定义——添加新平台只需编辑 JSON 文件。
## 安装
```
python app.py
```
您需要一个免费的 NVD API 密钥——在 [nvd.nist.gov/developers/request-an-api-key]( 获取一个。大约需要 2 分钟。
在项目根目录创建 `.env` 文件:
```
NVD_API_KEY=your-key-here
```
WeasyPrint 在 Debian/Kali 上需要一些系统依赖:
```
sudo apt install libpango-1.0-0 libpangoft2-1.0-0 libpangocairo-1.0-0 -y
```
## 使用方法
### CLI
```
# Generate a threat intelligence report
python main.py --vendor "Siemens" --platform claroty
# Try a different vendor and platform
python main.py --vendor "Schneider" --platform dragos
python main.py --vendor "Modbus" --platform splunk
# Custom output path
python main.py --vendor "Rockwell" --platform sentinel --output reports/rockwell_sentinel.pdf
# See all available platforms
python main.py --list-platforms
```
报告默认保存到 `reports/` 目录,命名为 `deadband_{vendor}_{platform}.pdf`。
### Web UI
```
python app.py
# → http://127.0.0.1:5000
```
## 输出示例
针对 Siemens + Claroty 运行:
```
// deadband — ICS/OT Threat Intelligence Mapper
Vendor : Siemens
Platform : claroty
Output : reports/deadband_siemens_claroty.pdf
=== Deadband Collector: 'Siemens' ===
[NVD] Total results reported by API: 259
[NVD] Done. 259 CVEs collected.
[CISA] Found 1 entries matching 'Siemens'.
[Mapper] Indexed 83 techniques, 14 groups.
[Mapper] Done. 260/260 CVEs matched at least one technique.
[GapAnalyzer] Threat profile contains 83 unique techniques.
[GapAnalyzer] Done. 48/83 techniques covered (57.8%). 35 blind spot(s) identified.
✓ Report ready: reports/deadband_siemens_claroty.pdf
83 techniques | 48 covered | 35 blind spots | 57.8% coverage
```
PDF 报告包含:
- 包含覆盖率和顶级威胁行为者的执行摘要
- 盲点表格——您的平台无法检测到的技术,按行为者参与情况标记
- 按 CVSS 分数排序的热门 CVE
- 完整的已覆盖技术列表
## 项目结构
```
deadband/
├── data/
│ ├── attack_ics.json # ATT&CK for ICS bundle (auto-downloaded)
│ └── detection_coverage.json # Platform detection coverage config
├── src/
│ ├── collector.py # NVD + CISA data ingestion
│ ├── mapper.py # CVE → ATT&CK ICS technique + group mapping
│ ├── gap_analyzer.py # Detection gap analysis
│ └── reporter.py # HTML + PDF report generation
├── templates/
│ └── index.html # Web UI
├── reports/ # Generated reports go here
├── assets/ # Screenshots and static files
├── app.py # Flask web UI entry point
├── main.py # CLI entry point
└── requirements.txt
```
## 映射原理
技术匹配基于关键词——从 CVE 描述中提取的关键词与 ATT&CK for ICS 技术名称和描述进行比对。每次匹配都会根据关键词重叠情况获得分数,技术按分数排序。这不是完美的(宽泛的关键词会提高匹配率),但它能为您提供一份扎实的工作威胁画像,然后您可以手动完善。
威胁组织归属直接来自 ATT&CK for ICS STIX 数据包——与 MITRE 发布的关系相同。所以当 Deadband 说 Sandworm 使用 T0807 时,那是来自 MITRE 的数据,而不是猜测。
检测覆盖率数据来源于公开的供应商文档、ATT&CK 评估和能力披露。它存储在一个 JSON 文件中,您可以编辑它以反映您实际部署的环境。
## 数据源
| 来源 | 提供内容 |
|--------|-----------------|
| [NVD API 2.0](https://nvd.nist.gov/developers/vulnerabilities) | CVE 详情、CVSS 分数 |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | 正在被利用的漏洞 |
| [MITRE ATT&CK for ICS](https://attack.mitre.org/matrices/ics/) | 技术、战术、威胁组织 |
## 局限性
- 关键词匹配有意做得简单——它是一个起点,而不是事实真相
- 检测覆盖率数据反映公开的供应商披露,而不是您特定的部署环境
- CVE 到技术的映射对描述性 CVE 效果最好;稀疏的描述会产生较弱的匹配
- ATT&CK for ICS 有 83 个技术——比企业版矩阵更小,因此匹配范围更广
## 操作系统兼容性
| 操作系统 | 状态 | 备注 |
|----|--------|-------|
| Linux | ✅ 完全支持 | 已在 Kali 和 Ubuntu 上测试 |
| macOS | ✅ 完全支持 | 需要 `brew install pango` |
| Windows | ⚠️ 仅支持 WSL2 | 由于 WeasyPrint 依赖,不支持原生 Windows |
## 技术栈
Python · Flask · NVD API · CISA KEV · MITRE ATT&CK for ICS STIX · Jinja2 · WeasyPrint
*由 [DaSa7](https://github.com/DaSa7) 构建——实验室系列的一部分。*
标签:ATT&CK for ICS, CISA, Claroty, Cloudflare, CrowdStrike, CVE分析, Dragos, EDR, Flask, GPT, ICS安全, Microsoft Defender, Microsoft Sentinel, MITRE ATT&CK, Nozomi, NVD API, OT安全, PDF报告生成, Python, QRadar, Rootkit, Zeek, 威胁情报, 威胁映射, 威胁行为者归因, 安全运营, 工业控制系统安全, 开发者工具, 扫描框架, 无后门, 检测盲区分析, 检测覆盖, 漏洞管理, 脆弱性评估, 逆向工具