berinabraham-sec/threat-actor-profiler
GitHub: berinabraham-sec/threat-actor-profiler
这是一个生产级威胁情报平台,通过对已知威胁行为者进行画像并将战术映射到MITRE ATT&CK框架,为企业安全团队提供数据驱动的归因分析和自动化检测策略生成能力。
Stars: 0 | Forks: 0
# 威胁行为者画像与归因引擎
一个生产级威胁情报平台,能够对已知的威胁行为者组织进行画像,将其战术和技术映射到 MITRE ATT&CK 框架,计算归因置信度得分,并为安全运营团队生成可操作的检测策略。
## 概述
威胁行为者画像与归因引擎是一个为企业安全运营中心和威胁情报团队设计的企业级情报平台。它从多个来源聚合情报,构建全面的行为者画像,并为安全调查提供数据驱动的归因分析。
### 为什么这很重要
安全运营团队在威胁行为者识别和归因方面面临重大挑战:
- 告警疲劳:安全分析师每天会收到数千条告警,难以确定优先级并对攻击进行归因
- 情报孤岛:威胁情报通常分散在不同的来源和格式中
- 归因复杂性:识别攻击背后的威胁行为者需要关联多个指标和 TTPs
- 检测缺口:组织难以创建针对特定威胁行为者的检测规则
该引擎通过提供以下功能来解决这些挑战:
1. 全面的行为者画像:包含 8 个以上主要威胁行为者组织的详细画像,及其 TTPs、IOCs 和历史攻击活动
2. 数据驱动的归因:基于入侵分析钻石模型 的加权评分模型
3. 可操作的检测策略:自动生成 Sigma 规则、YARA 规则、SIEM 查询和 IOC 列表
4. 高管报告:生成专业的 HTML 和 JSON 报告,用于与利益相关者沟通
### 核心原则
该引擎建立在入侵分析钻石模型 的基础之上,该模型从四个维度分析入侵:
| 维度 | 描述 |
|-----------|-------------|
| 对手 | 攻击背后的威胁行为者或组织 |
| 基础设施 | 对手使用的系统、工具和网络 |
| 能力 | 攻击中使用的 TTPs、恶意软件和漏洞利用 |
| 受害者 | 受到攻击的目标组织或行业 |
### MITRE ATT&CK 集成
该引擎将行为者的 TTPs 映射到 MITRE ATT&CK 框架,提供:
- 技术映射:将行为者活动映射到特定的 MITRE ATT&CK 技术
- 战术覆盖:识别行为者采用的战术
- 检测指导:基于技术映射生成检测规则
## 架构
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ THREAT ACTOR PROFILING ENGINE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 1. KNOWLEDGE BASE │ │
│ │ ┌──────────────────────────────────────────────────────────────┐ │ │
│ │ │ Actor Profiles │ TTP Mappings │ IOC Database │ Campaigns │ │ │
│ │ └──────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 2. ATTRIBUTION ENGINE │ │
│ │ ┌──────────────────────────────────────────────────────────────┐ │ │
│ │ │ TTP Overlap │ Indicator Correlation │ Temporal Analysis │ │ │
│ │ │ Geographic Alignment │ Target Alignment │ Campaign Overlap │ │ │
│ │ └──────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 3. DETECTION STRATEGY GENERATOR │ │
│ │ ┌──────────────────────────────────────────────────────────────┐ │ │
│ │ │ Sigma Rules │ YARA Rules │ SIEM Queries │ IOC Lists │ │ │
│ │ └──────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 4. REPORT GENERATOR │ │
│ │ ┌──────────────────────────────────────────────────────────────┐ │ │
│ │ │ Console Reports │ HTML Dashboards │ JSON Exports │ │ │
│ │ └──────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
```
## 包含的威胁行为者组织
知识库包含 8 个以上主要威胁行为者组织的画像:
| 行为者组织 | 国家 | 动机 | 首次出现 | 主要行业 |
|-------------|---------|------------|------------|-----------------|
| APT28 | 俄罗斯 | 间谍活动、政治影响 | 2007 | 政府、国防、能源 |
| APT29 | 俄罗斯 | 间谍活动、情报收集 | 2008 | 政府、非政府组织、制药 |
| Lazarus | 朝鲜 | 经济利益、间谍活动 | 2009 | 金融、媒体、政府 |
| MuddyWater | 伊朗 | 间谍活动、政治影响 | 2015 | 政府、电信、石油和天然气 |
| Sandworm | 俄罗斯 | 间谍活动、破坏性攻击 | 2009 | 能源、政府、媒体 |
| APT41 | 中国 | 间谍活动、经济利益 | 2012 | 游戏、科技、航空航天 |
| FIN7 | 俄罗斯 | 经济利益、勒索软件 | 2012 | 金融、酒店、零售 |
| Hafnium | 中国 | 间谍活动、情报收集 | 2020 | 政府、非政府组织、科技 |
### 行为者画像详情
每个行为者画像包括:
- 别名:已知别名和替代名称
- 国家:来源国或主要活动地点
- 动机:主要动机(间谍活动、经济利益等)
- 首次/最后发现:活动时间线
- 目标行业:受针对的行业和部门
- 常见 TTPs:使用的 MITRE ATT&CK 技术
- 常见恶意软件:与该行为者相关的恶意软件家族
- IOCs:失陷指标(IPs、域名、哈希值)
- 攻击活动:带有日期的历史攻击活动
- 工具:使用的工具和框架
- 已报告的攻击:归因于该行为者的已知攻击
## 功能
### 1. 行为者画像
- 全面的画像:关于 8 个以上威胁行为者组织的详细信息
- TTP 映射:映射到 MITRE ATT&CK 的技术和战术
- IOC 管理:失陷指标的存储和关联
- 攻击活动追踪:历史攻击活动数据和时间线
- 行业目标:针对的行业和部门信息
### 2. 归因引擎
- 加权评分:基于钻石模型的多维度评分
- TTP 重合度:分析与已知行为者的技术重合度
- 指标关联:将观察到的 IOCs 与行为者画像进行关联
- 时间分析:分析活动的时间点和模式
- 地理一致性:与已知行为者起源的地理一致性
- 目标一致性:与已知目标行业的一致性
- 攻击活动重合度:与历史攻击活动的重合度
### 3. 检测策略生成
- Sigma 规则:Sigma 格式的基于日志的检测规则
- YARA 规则:YARA 格式的基于文件的检测规则
- SIEM 查询:用于 Splunk、ELK 和其他 SIEM 的检测查询
- IOC 列表:全面的失陷指标列表
- MITRE 映射:映射到 MITRE ATT&CK 技术
- 控制措施建议:建议用于检测的安全控制措施
### 4. 报告
- 控制台报告:用于 SOC 工作流的运营情报
- HTML 仪表板:用于利益相关者沟通的高管仪表板
- JSON 导出:用于 SIEM 集成的机器可读数据
- CSV 导出:用于进一步分析的数据导出
## 安装说明
### 前置条件
- Python 3.6 或更高版本
- 无外部依赖项(仅使用标准库)
### 步骤
```
git clone https://github.com/berinabraham-sec/threat-actor-profiler.git
cd threat-actor-profiler
python threat_actor_profiler.py
```
## 用法
### 交互式菜单
```
============================================================
THREAT ACTOR PROFILING & ATTRIBUTION ENGINE
============================================================
1. Run Demonstration
2. View Actor Profile
3. View All Actors
4. Search by Country
5. Search by Technique
6. Generate Reports
7. Exit
Select option (1-7):
```
### 选项 1:运行演示
执行完整的演示,处理所有威胁行为者组织:
```
================================================================================
THREAT ACTOR PROFILING & ATTRIBUTION ENGINE
================================================================================
This demonstration processes all known threat actor groups and generates comprehensive profiles with attribution analysis.
Available Threat Actor Groups:
- APT28
- APT29
- APT41
- FIN7
- Hafnium
- Lazarus
- MuddyWater
- Sandworm
================================================================================
================================================================================
PROCESSING: APT28
================================================================================
================================================================================
THREAT ACTOR PROFILE: APT28
================================================================================
Generated: 2026-06-28 10:00:00
--------------------------------------------------------------------------------
BASIC INFORMATION:
Aliases: Fancy Bear, STRONTIUM, Sednit, Sofacy
Country: Russia
Motivation: Espionage, Political Influence, Disruption
First Seen: 2007
Last Seen: 2026
Active: True
TARGET SECTORS:
- Government
- Defense
- Energy
- Media
- Think Tanks
- Aerospace
- Pharmaceutical
COMMON MALWARE:
- X-Agent
- X-Tunnel
- Chinchilling
- Zebrocy
- Sednit
- FancyBear Dropper
- JHUHUGIT
COMMON TTPs:
- T1078: Valid Accounts
- T1003: Credential Dumping
- T1021: Remote Services
- T1059: Command and Scripting Interpreter
- T1046: Network Service Discovery
- T1071: Application Layer Protocol
- T1133: External Remote Services
KNOWN CAMPAIGNS:
- Sofacy Campaign (2014 - 2016)
- BlackEnergy (2015 - 2016)
- Cloud Atlas (2017 - 2018)
- GhostLocker (2020 - 2022)
ATTRIBUTION ANALYSIS:
Top Candidate: APT28
Confidence: HIGH
Summary: Top candidate: APT28 (Score: 0.92, Confidence: HIGH)
Second candidate: APT29 (Score: 0.65, Confidence: MEDIUM)
Attribution is strong. Recommend aligning detection strategies with the top candidate.
DETECTION STRATEGY:
Sigma Rules: 4
YARA Rules: 4
SIEM Queries: 4
IOCs: 10+
HTML report saved: reports/threat_actor_APT28_20260628_100000.html
JSON report saved: reports/threat_actor_APT28_20260628_100000.json
```
### 选项 2:查看行为者画像
查看特定威胁行为者的详细画像:
```
Available Actors:
- APT28
- APT29
- APT41
- FIN7
- Hafnium
- Lazarus
- MuddyWater
- Sandworm
Enter actor name: APT28
[Full profile displayed]
```
### 选项 3:查看所有行为者
查看所有威胁行为者组织的摘要:
```
============================================================
THREAT ACTOR GROUPS
============================================================
Format: Actor Name - Country - First Seen - Active
--------------------------------------------------
APT28 - Russia - 2007 - Active: Yes
APT29 - Russia - 2008 - Active: Yes
APT41 - China - 2012 - Active: Yes
FIN7 - Russia - 2012 - Active: Yes
Hafnium - China - 2020 - Active: Yes
Lazarus - North Korea - 2009 - Active: Yes
MuddyWater - Iran - 2015 - Active: Yes
Sandworm - Russia - 2009 - Active: Yes
```
### 选项 4:按国家搜索
按来源国搜索威胁行为者:
```
Enter country: Russia
Actors from Russia:
- APT28
- APT29
- FIN7
- Sandworm
```
### 选项 5:按技术搜索
搜索使用特定 MITRE ATT&CK 技术的威胁行为者:
```
Enter MITRE ATT&CK technique ID (e.g., T1078): T1078
Actors using T1078:
- APT28
- APT29
- APT41
- FIN7
- Hafnium
- Lazarus
- MuddyWater
- Sandworm
```
### 选项 6:生成报告
为所有威胁行为者组织生成 HTML 和 JSON 报告:
```
Generating reports for all actors...
Saved: reports/threat_actor_APT28_20260628_100000.html
Saved: reports/threat_actor_APT29_20260628_100000.html
Saved: reports/threat_actor_APT41_20260628_100000.html
Saved: reports/threat_actor_FIN7_20260628_100000.html
Saved: reports/threat_actor_Hafnium_20260628_100000.html
Saved: reports/threat_actor_Lazarus_20260628_100000.html
Saved: reports/threat_actor_MuddyWater_20260628_100000.html
Saved: reports/threat_actor_Sandworm_20260628_100000.html
All reports generated.
```
## 归因评分方法
归因引擎使用基于入侵分析钻石模型 的加权评分模型:
```
Total Score = (TTP_Match x 0.35) + (Indicator_Match x 0.20) +
(Temporal_Alignment x 0.15) + (Geographic_Alignment x 0.10) +
(Target_Alignment x 0.10) + (Campaign_Overlap x 0.10)
```
### 评分维度
| 维度 | 权重 | 描述 |
|-----------|--------|-------------|
| TTP 匹配 | 35% | MITRE ATT&CK 技术的重合度 |
| 指标匹配 | 20% | IOCs(IPs、域名、哈希值)的关联度 |
| 时间一致性 | 15% | 观察到的活动时间点一致性 |
| 地理一致性 | 10% | 地理来源的一致性 |
| 目标一致性 | 10% | 目标行业的一致性 |
| 攻击活动重合度 | 10% | 与历史攻击活动的重合度 |
### 置信度级别
| 级别 | 得分范围 | 含义 |
|-------|-------------|---------|
| 高 | >= 0.75 | 高置信度的强归因 |
| 中 | 0.50 - 0.74 | 具有一定置信度的中等归因 |
| 低 | 0.25 - 0.49 | 置信度有限的弱归因 |
| 不可能 | < 0.25 | 归因可能性极低 |
## 检测策略输出
### Sigma 规则示例
```
title: Potential APT28 Activity Detected - T1078
id: abc12345
status: experimental
description: Detects suspicious activity matching APT28 TTPs using technique T1078
author: Threat Actor Profiling Engine
date: 2026-06-28
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine:
- '*apt28*'
- '*powershell*'
- '*-enc*'
- '*Invoke-Expression*'
condition: selection
falsepositives:
- Legitimate administrative activity
level: high
```
### YARA 规则示例
```
rule APT28_X_Agent:
meta:
author: Threat Actor Profiling Engine
date: 2026-06-28
description: Detects X-Agent malware associated with APT28
reference: https://attack.mitre.org/groups/APT28
severity: high
strings:
$a = "X-Agent" nocase
$b = "apt28" nocase
$c = "powershell -enc" nocase
condition: 1 of them
```
### SIEM 查询示例
```
index=* sourcetype=*
(process_name=*cmd.exe OR process_name=*powershell.exe)
(command_line=*-enc* OR command_line=*Invoke-Expression*)
| stats count by process_name, command_line, user
| where count > 5
| table process_name, user, command_line, count
| sort -count
```
### IOC 列表示例
```
IP_RANGES: 5.188.0.0/16, 94.140.0.0/16
DOMAINS: *.fancybear.com, *.sofacy.org
HASHES: 5f4dcc3b5aa765d61d8327deb882cf99
URLS: http://update.microsoft.com/fake
EMAILS: security@fancybear.com
```
## 项目结构
```
threat-actor-profiler/
├── threat_actor_profiler.py # Main application
├── README.md # Documentation
├── .gitignore # Git ignore file
├── threat_intelligence.db # SQLite database
├── logs/ # Application logs
│ └── threat_actor_profiler_YYYYMMDD.log
├── data/ # Data directory
│ └── threat_intelligence.json # Actor data export
└── reports/ # Generated reports
├── threat_actor_APT28_*.html
├── threat_actor_APT28_*.json
├── threat_actor_APT29_*.html
├── threat_actor_APT29_*.json
└── ...
```
## 数据库架构
### Actors 表
```
CREATE TABLE actors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
actor_name TEXT NOT NULL UNIQUE,
country TEXT,
motivation TEXT,
first_seen TEXT,
last_seen TEXT,
active BOOLEAN DEFAULT 1,
profile_json TEXT,
created_at TEXT,
updated_at TEXT
)
```
### TTPs 表
```
CREATE TABLE ttps (
id INTEGER PRIMARY KEY AUTOINCREMENT,
technique_id TEXT NOT NULL,
technique_name TEXT,
tactic TEXT,
description TEXT,
created_at TEXT
)
```
### Actor-TTP 映射表
```
CREATE TABLE actor_ttps (
id INTEGER PRIMARY KEY AUTOINCREMENT,
actor_name TEXT NOT NULL,
technique_id TEXT NOT NULL,
confidence REAL,
first_observed TEXT,
last_observed TEXT,
FOREIGN KEY (actor_name) REFERENCES actors(actor_name),
FOREIGN KEY (technique_id) REFERENCES ttps(technique_id)
)
```
### Indicators 表
```
CREATE TABLE indicators (
id INTEGER PRIMARY KEY AUTOINCREMENT,
indicator_value TEXT NOT NULL,
indicator_type TEXT,
actor_name TEXT,
confidence REAL,
first_seen TEXT,
last_seen TEXT,
source TEXT,
FOREIGN KEY (actor_name) REFERENCES actors(actor_name)
)
```
### Campaigns 表
```
CREATE TABLE campaigns (
id INTEGER PRIMARY KEY AUTOINCREMENT,
campaign_name TEXT NOT NULL,
actor_name TEXT,
start_date TEXT,
end_date TEXT,
description TEXT,
objectives TEXT,
FOREIGN KEY (actor_name) REFERENCES actors(actor_name)
)
```
## MITRE ATT&CK 框架集成
该引擎将行为者的 TTPs 映射到 MITRE ATT&CK 框架:
| 技术 ID | 名称 | 战术 |
|--------------|------|--------|
| T1078 | 有效账户 | 初始访问 |
| T1003 | 凭证转储 | 凭证访问 |
| T1021 | 远程服务 | 横向移动 |
| T1059 | 命令和脚本解释器 | 执行 |
| T1566 | 钓鱼 | 初始访问 |
| T1548 | 滥用提权控制机制 | 权限提升 |
| T1190 | 利用面向公众的应用 | 初始访问 |
| T1486 | 数据加密以造成影响 | 影响 |
| T1490 | 抑制系统恢复 | 影响 |
| T1562 | 削弱防御 | 防御规避 |
## 示例输出
### 控制台报告
```
================================================================================
THREAT ACTOR PROFILE: APT28
================================================================================
Generated: 2026-06-28 10:00:00
--------------------------------------------------------------------------------
BASIC INFORMATION:
Aliases: Fancy Bear, STRONTIUM, Sednit, Sofacy
Country: Russia
Motivation: Espionage, Political Influence, Disruption
First Seen: 2007
Last Seen: 2026
Active: True
TARGET SECTORS:
- Government
- Defense
- Energy
- Media
- Think Tanks
- Aerospace
- Pharmaceutical
COMMON MALWARE:
- X-Agent
- X-Tunnel
- Chinchilling
- Zebrocy
COMMON TTPs:
- T1078: Valid Accounts
- T1003: Credential Dumping
- T1021: Remote Services
- T1059: Command and Scripting Interpreter
KNOWN CAMPAIGNS:
- Sofacy Campaign (2014 - 2016)
- BlackEnergy (2015 - 2016)
- Cloud Atlas (2017 - 2018)
- GhostLocker (2020 - 2022)
ATTRIBUTION ANALYSIS:
Top Candidate: APT28
Confidence: HIGH
================================================================================
```
## 未来增强计划
| 增强功能 | 描述 | 目标 |
|-------------|-------------|--------|
| 实时情报 | 与实时威胁情报源集成 | 2026 年第三季度 |
| 基于机器学习的归因 | 利用机器学习改进归因分析 | 2026 年第四季度 |
| 图谱可视化 | 行为者之间关系的可视化映射 | 2026 年第三季度 |
| 自动化狩猎 | 基于行为者画像的主动威胁狩猎 | 2026 年第四季度 |
| 云集成 | 与云威胁情报集成 | 2026 年第三季度 |
| 社区情报源 | 与开源情报社区集成 | 2026 年第四季度 |
## 贡献
欢迎贡献。请提交 pull request 或开启 issue 进行讨论。
## 作者
berinabraham-sec
GitHub: https://github.com/berinabraham-sec
## 许可证
MIT 许可证
## 参考
- MITRE ATT&CK 框架:https://attack.mitre.org/
- CISA 已知被利用漏洞目录
- NIST 国家漏洞数据库
- FIRST EPSS 评分系统
## 快速参考卡
### 关键命令
| 命令 | 描述 |
|---------|-------------|
| python threat_actor_profiler.py | 启动应用程序 |
| 选项 1 | 运行完整演示 |
| 选项 2 | 查看行为者画像 |
| 选项 3 | 查看所有行为者 |
| 选项 4 | 按国家搜索 |
| 选项 5 | 按技术搜索 |
| 选项 6 | 生成所有报告 |
| 选项 7 | 退出 |
### 行为者组织
| 行为者 | 国家 | 主要动机 |
|-------|---------|-------------------|
| APT28 | 俄罗斯 | 间谍活动 |
| APT29 | 俄罗斯 | 间谍活动 |
| Lazarus | 朝鲜 | 经济利益 |
| MuddyWater | 伊朗 | 间谍活动 |
| Sandworm | 俄罗斯 | 破坏性攻击 |
| APT41 | 中国 | 间谍活动、经济利益 |
| FIN7 | 俄罗斯 | 经济利益 |
| Hafnium | 中国 | 间谍活动 |
### 归因权重
| 维度 | 权重 |
|-----------|--------|
| TTP 匹配 | 35% |
| 指标匹配 | 20% |
| 时间一致性 | 15% |
| 地理一致性 | 10% |
| 目标一致性 | 10% |
| 攻击活动重合度 | 10% |
文档结束
标签:Cloudflare, MITRE ATT&CK, 威胁情报, 安全运营, 开发者工具, 扫描框架, 攻击者画像, 检测策略, 溯源分析, 逆向工具