Edi-San24/threat-actor-profiler
GitHub: Edi-San24/threat-actor-profiler
基于MITRE ATT&CK框架的ML增强型OSINT工具,自动化完成APT组织画像、TTP相似性分析和国家级归因预测。
Stars: 0 | Forks: 0
# 威胁行为体画像聚合器
基于 MITRE ATT&CK 框架的 ML 增强型 OSINT 工具,用于自动化威胁情报分析。



## 概述
威胁行为体画像聚合器是一个自动化情报收集与分析系统,利用 MITRE ATT&CK 框架的公开数据对高级持续性威胁 (APT) 组织进行画像。该系统应用机器学习来量化行动相似性、映射武器库能力、分析行业定向模式,并根据观察到的 TTP 预测国家级归因——生成适用于威胁狩猎、检测工程和战略风险评估的结构化情报产品。
### 主要特性
- **自动化数据收集**:从 MITRE ATT&CK 的公开 CTI 存储库中提取 150 多个 APT 组织的结构化威胁情报
- **ML 增强分析**:利用余弦相似度和 K-Means 聚类识别行动关联和威胁行为体家族
- **武器库画像**:将 600 多个恶意软件家族和工具映射到特定的威胁行为体,揭示能力水平和基础设施共享情况
- **行业定向分析**:通过 MITRE 描述分析,识别每个威胁行为体在 10 个垂直行业中分别针对哪些行业
- **网络图可视化**:通过共享的恶意软件和工具映射威胁行为体之间的基础设施共享关系
- **国家级归因**:Random Forest 分类器根据观察到的 TTP 模式预测支持的国家
- **交互式仪表板**:基于 Streamlit 的 Web 应用程序,用于实时威胁行为体查询、比较和归因分析
- **生产级导出**:带有时间戳的 CSV 输出,包含元数据、摘要统计和数据字典
## 方法论
**[I] TTP 分析**
从 MITRE ATT&CK 中提取结构化威胁数据,构建二进制特征矩阵(组织 × 技术),计算余弦相似度以量化行动重叠,并应用 K-Means 和层次聚类来识别威胁行为体家族。
**[II] 武器库与基础设施分析**
从 MITRE 提取恶意软件家族和工具,将武器库组件映射到特定的威胁行为体,识别组织之间共享的基础设施,并使用恶意软件与工具的比例比较不同国家级项目之间的复杂性。
**[III] 数据导出框架**
将所有分析结果导出到组织良好的子目录(raw / processed / summaries)中,包含时间戳、元数据 JSON、摘要统计信息,以及记录每个输出文件的数据字典。
**[IV] 高级情报分析**
通过三个互补的分析能力扩展画像系统:行业和受害者定向分析扫描 MITRE 描述中 10 个垂直行业的特定关键词,并将结果与国家级归因进行交叉比对;网络图可视化构建了一个基础设施共享图,通过共享的恶意软件和工具连接威胁行为体;国家级归因分类器在 TTP 二进制特征空间上训练了一个 Random Forest 模型,生成跨四个国家级项目的置信度评分,并通过特征重要性分析识别最具诊断价值的技术。
## 安装说明
### 前置条件
- Python 3.8 或更高版本
- Jupyter Notebook
### 设置
```
# Clone 仓库
git clone https://github.com/Edi-San24/threat-actor-profiler.git
cd threat-actor-profiler
# 安装依赖
pip install -r requirements.txt
# 创建输出目录
mkdir outputs
```
### 依赖项
```
pandas==2.1.0
numpy==1.24.3
matplotlib==3.7.2
seaborn==0.12.2
scikit-learn==1.3.0
scipy==1.11.2
requests==2.31.0
jupyter==1.0.0
streamlit==1.29.0
networkx
```
## 使用说明
### Jupyter Notebook(完整分析)
```
jupyter notebook OSINT_Profiler.ipynb
```
### Streamlit 仪表板
```
streamlit run app.py
```
### Python 模块
```
from Threat_Profiler import ThreatActorProfiler
profiler = ThreatActorProfiler()
profiler.fetch_mitre_data()
profiler.extract_threat_groups()
# TTP 分析
profile = profiler.generate_profile("APT29")
profiler.find_similar_groups("APT29", top_n=10)
profiler.plot_threat_landscape(n_clusters=6)
# Arsenal 分析
arsenal = profiler.get_group_arsenal("APT29")
profiler.plot_arsenal_comparison(["APT29", "APT28", "Lazarus Group"])
# Sector 定向
profiler.plot_sector_distribution()
profiler.nation_state_sector_analysis()
# Network Graph
profiler.plot_malware_network(min_shared=2, top_n=40)
# Attribution
results = profiler.predict_threat_actor(['T1566.001', 'T1059.001', 'T1003.001'])
```
## 主要发现
**国家级行动模式**
- **俄罗斯**:偏好 PowerShell、注册表持久化和“靠山吃山”(Living-off-the-Land)技术
- **中国**:优先进行凭据窃取和横向移动,其针对的行业范围最广,横跨 9 个垂直行业
- **朝鲜**:尽管受到资源限制,仍严重依赖自定义恶意软件——Lazarus Group 武器库中有 85% 为恶意软件
- **伊朗**:集中针对能源行业,这与有记录的区域地缘政治目标一致
**武器库复杂性**
- APT29 拥有最广泛的记录工具包(49 项:34 个自定义恶意软件 + 15 个工具)
- Lazarus Group 展示了 85% 的自定义恶意软件构成,尽管受到制裁限制
- menuPass 在网络中拥有最高的基础设施连接度,具有 69 个共享工具关系
- Mimikatz(52 个组织)、Cobalt Strike(29 个组织)和 PsExec(39 个组织)是最广泛共享的攻击工具
**行业定向**
- 政府(91 个组织)和技术(78 个组织)是全球最受针对的行业
- 朝鲜独特地集中针对金融行业,反映了其逃避制裁的目标
- 伊朗在针对能源行业方面居首,与有记录的海湾基础设施攻击活动一致
**聚类**
- 识别出 6 个行动聚类——聚类 1(33 个组织,80+ 项技术)代表精英国家级行动
- 聚类 2(116 个组织,占数据集的 68%)反映了具有特定行动任务的专业化行为体
- 尽管属于不同的国家项目,朝鲜和中国在聚类 1 中共享行动空间,这与有记录的归因误判案例一致
**归因模型**
- 国家级分类器实现了 50% 的准确率——在 36 个标记样本下,是随机概率(25%)的两倍
- 伊朗展示了最高的精确率(1.0);由于与中国行为体存在 TTP 重叠,朝鲜最难被分类
- 用于归因的最具诊断价值的技术是低频次、特定项目的 TTP,而非常用的技术
## 项目结构
```
threat-actor-profiler/
├── Threat_Profiler.py # Core analysis module
├── OSINT_Profiler.ipynb # Full analysis notebook
├── app.py # Streamlit dashboard
├── requirements.txt
├── README.md
├── pages/
│ ├── 1_Threat_Lookup.py
│ ├── 2_Comparative_Analysis.py
│ └── 3_Attribution_Tool.py
└── outputs/
├── raw/
├── processed/
└── summaries/
```
## 数据来源
- **MITRE ATT&CK Framework**: https://attack.mitre.org/
- **MITRE CTI Repository**: https://github.com/mitre/cti
所有数据均根据其使用条款从 MITRE 的开源 CTI 存储库获取。
## 许可证
MIT 许可证——详情请参见 LICENSE 文件。
## 作者
## **Edi-San24**
## 致谢
- **MITRE Corporation**,负责维护 ATT&CK 框架和公共 CTI 存储库
- **Northeastern University**,为体验式学习机会提供支持
- **开源社区**,提供了促成此项目的 Python 库
## 免责声明
本工具专为教育和防御性网络安全目的而设计。它分析公开可用的威胁情报,以支持安全运营、威胁狩猎和风险评估。作者不对本工具的任何滥用行为负责。
*基于 Python、scikit-learn 构建,以及对威胁情报的热情。*
标签:Apex, APT分析, Cloudflare, DAST, ESC4, HTTP/HTTPS抓包, K-Means聚类, Kubernetes, MITRE ATT&CK, NoSQL, OSINT, Python, Streamlit, TTP分析, 图谱分析, 威胁情报, 威胁画像, 开发者工具, 归因分析, 态势感知, 恶意软件分析, 无后门, 机器学习, 特权检测, 网络安全, 访问控制, 逆向工具, 随机森林, 隐私保护