Atri2-code/Threat-Campaign-Tracker-Threat-Intelligence-
GitHub: Atri2-code/Threat-Campaign-Tracker-Threat-Intelligence-
基于并查集算法将分散的威胁指标自动聚类为攻击活动,实现跨数据源的 IOC 传递性关联分析与优先级报告生成。
Stars: 0 | Forks: 0
# threat-campaign-tracker (威胁情报)
围绕核心分析师工作流构建:从多个来源获取 artifacts,寻找它们之间的关联(共享的 IP、域名、哈希值),并呈现出攻击活动的全貌,而非孤立的指标。
## 快速开始
```
git clone https://github.com/YOUR_USERNAME/threat-campaign-tracker.git
cd threat-campaign-tracker
python src/track.py --input data/artifacts/artifacts.json --output reports/
```
无外部依赖。纯 Python 标准库。
## 示例输出
```
threat-campaign-tracker
────────────────────────────────────────
Artifacts loaded : 7
Campaigns found : 3
🔴 CAMP-001 [CRITICAL ] 3 artifacts | 2 shared IOCs | tags: credential-harvest, dropper, paypal-lure
🟠 CAMP-002 [HIGH ] 3 artifacts | 2 shared IOCs | tags: credential-harvest, microsoft-lure, ransomware
🔵 CAMP-003 [LOW ] 1 artifact | 0 shared IOCs | tags: amazon-lure, credential-harvest
Report saved → reports/campaign_report.md
```
## 关联分析的工作原理
Artifacts 使用 **union-find**(并查集)算法进行聚类——与基于图的威胁情报平台所使用的方法相同:
1. 构建倒排索引:每个 IOC 值 → 包含该值的 artifact ID 列表
2. 合并任何共享域名、IP 或文件哈希的两个 artifacts
3. 查找连通分量 → 每个分量即为一个攻击活动
4. 计算共享的 IOC(在同一攻击活动的 2 个或以上 artifacts 中出现)
5. 根据 tag 和 artifact 数量评估严重性级别
这能正确处理**传递性关联**:如果 Artifact A 与 B 共享一个 IP,且 B 与 C 共享一个域名,那么这三者都会被归入同一攻击活动中,即使 A 和 C 之间没有直接共享任何内容。
## Artifact 输入格式
```
[
{
"id": "ART-001",
"type": "email",
"source": "inbox_sweep",
"timestamp": "2025-04-01T08:12:00Z",
"iocs": {
"domains": ["paypa1-verify.xyz"],
"urls": ["http://paypa1-verify.xyz/login"],
"ips": ["185.220.101.45"],
"hashes": [],
"emails": ["security@paypa1-verify.xyz"]
},
"tags": ["credential-harvest", "paypal-lure"]
}
]
```
数据源可以混合使用:电子邮件扫描、proxy 日志、sandbox 报告、威胁情报源。
## 严重性评分
| 条件 | 严重性 |
|-----------|----------|
| 存在 `ransomware` 或 `dropper` tag | 严重 |
| 3 个或以上相关联的 artifacts | 高 |
| 2 个相关联的 artifacts | 中 |
| 单个 artifact,无共享 IOC | 低 |
## 项目结构
```
threat-campaign-tracker/
├── src/
│ ├── track.py # CLI entry point
│ ├── correlator.py # Union-find IOC correlation + campaign clustering
│ └── reporter.py # Markdown report generator
├── data/
│ └── artifacts/
│ └── artifacts.json # Sample artifact dataset (7 artifacts, 3 campaigns)
├── reports/ # Generated campaign reports (gitignored)
├── tests/
│ └── test_correlator.py # 8 unit tests
└── README.md
```
## 运行测试
```
python tests/test_correlator.py
```
## 展现的技能
| 安全领域能力 | 实现方式 |
|---|---|
| 威胁攻击活动追踪 | 跨电子邮件、URL、文件 artifacts 的 IOC 关联 |
| IOC 分析 | 域名、IP、哈希、电子邮件的提取与索引 |
| 基于图的聚类 | 用于传递性关联的 Union-find 算法 |
| 逆向工程攻击 | 按攻击活动重建 Artifact 时间线 |
| Python 自动化 | 批量 artifact 处理,零外部依赖 |
| 威胁报告 | 攻击活动严重性评分 + 建议措施 |
## 路线图
- [ ] 用于威胁共享的 MISP 事件导出
- [ ] 每个 IOC 的 VirusTotal API 丰富化
- [ ] STIX/TAXII 输出格式
- [ ] 按攻击活动进行 ATT&CK TTP 标记
- [ ] 时间窗口衰减(淘汰过时的 IOC)
## 许可证
MIT
标签:FTP漏洞扫描, GitHub, IOC关联, IP关联, masscan, nuclei, Python, TIP, 严重性评分, 优先级报告, 关联分析, 图算法, 域名关联, 威胁情报, 威胁情报平台, 威胁追踪, 安全编排, 并查集算法, 开发者工具, 指标关联, 搜索语句(dork), 攻击活动分析, 文件哈希, 文档结构分析, 无后门, 无第三方依赖, 时间线重建, 杀伤链, 纯Python, 网络安全, 自动化报告, 逆向工具, 隐私保护