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, 关键词抽取, 凭证注入, 初始访问, 命令与控制, 威胁情报, 威胁报告解析, 开发者工具, 情报分析, 战术映射, 技术映射, 攻击框架, 文本提取, 网络诊断, 置信度评分, 逆向工具