shankar-bettadapura/apt-ttp-mapper
GitHub: shankar-bettadapura/apt-ttp-mapper
一款从威胁情报报告中自动提取并映射对手TTP到MITRE ATT&CK框架的Python工具。
Stars: 0 | Forks: 0
# APT TTP 映射器
一个 Python 工具,用于从威胁情报报告中提取并映射对手战术、技术和程序(TTPs)到 [MITRE ATT&CK 企业框架](https://attack.mitre.org/)。
作为威胁情报分析的实用补充而构建——自动化 TTP 提取过程,该过程通常由分析师在审查对手活动报告时手动执行。
## 功能
- 接受威胁报告作为输入(PDF 或纯文本)
- 运行两阶段提取引擎:
- **第一阶段** — 扫描显式的 ATT&CK 技术 ID(例如 T1566、T1059.001)→ 高置信度
- **第二阶段** — 扫描正文中的技术名称关键词(例如 "spearphishing"、"credential dumping")→ 中等置信度
- 将每个识别的 TTP 映射到完整的 ATT&CK 条目:技术 ID、名称、战术类别、描述和 ATT&CK URL
- 输出结构化的 CSV 和 Excel 报告,按置信度排序
## 示例输出
| Id | Name | Tactics | Confidence | Match Type |
|----|------|---------|------------|------------|
| T1078 | Valid Accounts | Defense Evasion, Initial Access | High | Explicit T-ID |
| T1059 | Command and Scripting Interpreter | Execution | High | Explicit T-ID |
| T1566 | Phishing | Initial Access | Medium | Keyword Match |
| T1190 | Exploit Public-Facing Application | Initial Access | Medium | Keyword Match |
## 安装
**要求:** Python 3.9+
```
# 克隆仓库
git clone https://github.com/shankar-bettadapura/apt-ttp-mapper.git
cd apt-ttp-mapper
# 创建并激活虚拟环境
python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
# 安装依赖项
pip install -r requirements.txt
```
## 用法
```
python mapper.py
```
**示例:**
```
# PDF 输入(推荐——大多数威胁报告以 PDF 格式分发)
python mapper.py sample_reports/cisa_advisory_aa26-097a.pdf
# 纯文本输入
python mapper.py sample_reports/report.txt
```
首次运行时,工具会自动下载 MITRE ATT&CK 企业数据集(约 10MB)并缓存到本地。后续运行使用缓存文件。
**输出文件** 保存到 `/output` 目录,文件名包含时间戳:
```
output/
└── cisa_advisory_aa26-097a_ttp_map_20260421_1432.csv
└── cisa_advisory_aa26-097a_ttp_map_20260421_1432.xlsx
```
## 项目结构
```
apt-ttp-mapper/
├── mapper.py # Main script
├── requirements.txt # Python dependencies
├── README.md
├── sample_reports/ # Drop input reports here
└── output/ # Extracted TTP reports land here
```
## 依赖
| 库 | 用途 |
|-----|------|
| requests | 下载 ATT&CK 数据集 |
| pandas | 结构化结果并导出为 CSV/Excel |
| pdfplumber | 从 PDF 报告提取文本 |
| openpyxl | Excel 文件生成后端 |
## 测试对象
- CISA Advisory AA26-097A — Iranian-Affiliated Cyber Actors Exploit PLCs Across US Critical Infrastructure
- CISA Advisory AA23-335A — IRGC-Affiliated Cyber Actors Exploit PLCs in Multiple Sectors
## 限制
该工具使用关键词和模式匹配,而非语义 NLP。已知限制:
- **关键词匹配产生误报** — 与技术名称重叠的常见词(例如 "access"、"persistence")可能在技术正文中产生低信号命中。所有中等置信度结果在使用前必须由分析师审核。
- **不支持的扫描 PDF** — 仅包含图像(无文本层)的页面会被静默跳过。OCR 支持是计划中的增强功能。
- **关键词长度下限为 5 个字符** — 短于 5 个字符的技术名称被排除在匹配之外,因此少量合法短技术名称无法通过关键词匹配。
- **ATT&CK 版本固定为最新主分支** — 缓存的数据集反映了下载时的版本。删除 `enterprise-attack.json` 可强制刷新以获取 ATT&CK 新版本。
## 计划增强
- 使用 `matplotlib` 输出战术频率条形图
- 通过 `jinja2` 模板输出 HTML 报告
- 批量处理报告文件夹并比较活动间 TTP 重叠的批处理模式
- IOC 提取(IP、哈希、域名)并进行 VirusTotal/OTX 丰富
- 通过 `pytesseract` 为扫描 PDF 提供 OCR 支持
## 背景
该工具作为针对美国关键基础设施的伊朗 APT 行动威胁情报工作的实用扩展而构建。已在 CISA Advisory AA26-097A 上测试 — [Iranian-Affiliated Cyber Actors Exploit Programmable Logic Controllers Across US Critical Infrastructure](https://www.cisa.gov/news-events/cybersecurity-advisories/aa26-097a)(CISA、FBI、NSA、EPA、DOJ 和美国网络司令部于 2026 年 4 月 7 日联合发布的公告),其中包含对 CyberAv3ngers 活动的显式 MITRE ATT&CK TTP 映射。
关于构建该工具及其在公告上运行结果的文章可在 [Substack](https://shankarbettadapura.substack.com) 上查阅。
## 作者
**Shankar Bettadapura**
网络安全与 GRC | 威胁情报 | AI 风险与治理
[LinkedIn](https://www.linkedin.com/in/shankar-bettadapura) · [Substack](https://shankarbettadapura.substack.com) · [GitHub](https://github.com/shankar-bettadapura)
标签:APT, Cloudflare, Excel导出, MITRE ATT&CK, Pass 1 显式匹配, Pass 2 关键词匹配, PDF解析, Python自动化, TTPs, 关键词抽取, 凭证注入, 初始访问, 命令与控制, 威胁情报, 威胁报告解析, 开发者工具, 情报分析, 战术映射, 技术映射, 攻击框架, 文本提取, 网络诊断, 置信度评分, 逆向工具