isarmadfarooq/APT29-CTI-STIX21-Pipeline
GitHub: isarmadfarooq/APT29-CTI-STIX21-Pipeline
基于 GPT-4o 的自动化威胁情报流水线,将 PDF 格式的 APT 报告转化为符合 STIX 2.1 标准的结构化知识图谱。
Stars: 0 | Forks: 0
# 🛡️ APT29 CTI Pipeline — 基于 LLM 的威胁情报与 STIX 2.1 生成





**学生:** Sarmad Farooq | **学号:** 25i-7722 | **活动:** 4 | **指导教师:** Dr. Zafar | **学院:** FAST-NUCES
## 📌 项目概述
本项目实现了一个完全自动化的 **网络威胁情报 (CTI) 提取与结构化流水线**,并在 Google Colab 中构建。它通过一个多阶段的流水线处理 APT29 *"Cozy Bear"* CTI 报告 (PHANTOM BEAR 行动):
- 提取原始 PDF 威胁情报报告
- 使用 **pdfplumber** 提取并清理全文
- 将文本拆分为对 LLM 安全的块,并发送给 **GPT-4o** 进行实体提取
- 使用 `stix2` Python 库将提取的实体映射为 **STIX 2.1 SDOs 和 SROs**
- 组装经过验证的 **STIX 2.1 Bundle** 并导出为 JSON
- 使用 OASIS STIX Visualizer 可视化威胁知识图谱
该流水线生成了一个包含 **66 个对象的 STIX 2.1 知识图谱**,涵盖了 APT29 在 2023–2024 年针对欧洲外交使团的 PHANTOM BEAR 行动的完整威胁概况。
## 📊 输出统计
| 指标 | 值 |
|--------|-------|
| 🧩 STIX 对象总数 | **66** |
| 🔗 关系 SROs | **34** |
| 🎯 MITRE ATT&CK TTPs | **10** |
| 🚨 IOC 指标 | **9** |
| 🦠 恶意软件家族 | **3** |
| 🔓 漏洞 (CVEs) | **3** |
| 🏗️ 基础设施对象 | **2** |
| 📓 Notebook 单元格数 | **27** |
## 🔁 流水线架构
```
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌──────────────┐
│ PDF Upload │───▶│ Text Extract │───▶│ Clean+Chunk │───▶│ GPT-4o NER │
│ (Colab GUI) │ │ (pdfplumber) │ │ (12k chars)│ │ (Structured) │
└─────────────┘ └──────────────┘ └─────────────┘ └──────┬───────┘
│
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌──────▼───────┐
│ Graph Viz │◀───│ Validate │◀───│ STIX Bundle │◀───│ STIX Mapping │
│(OASIS Tool) │ │ (Compliance) │ │ (Export) │ │ SDOs + SROs │
└─────────────┘ └──────────────┘ └─────────────┘ └──────────────┘
```
## 📁 仓库结构
```
APT29-CTI-STIX21-Pipeline/
│
├── 📓 APT29_CTI_STIX21_Pipeline.ipynb # Main Google Colab notebook (27 cells)
├── 📦 APT29_STIX21_Bundle.json # Exported STIX 2.1 bundle (66 objects)
├── 📄 APT29_CTI_Report.pdf # Source CTI report — TLP:WHITE
├── 🖼️ Activity4_Presentation.pptx # 18-slide pipeline walkthrough
├── 🌐 APT29_CTI_Portfolio.html # Interactive GitHub portfolio page
└── 📝 README.md # This file
```
## 🧠 威胁行为者:APT29 / Cozy Bear
| 属性 | 值 |
|-----------|-------|
| **主要名称** | APT29 / Cozy Bear |
| **别名** | Midnight Blizzard · NOBELIUM · The Dukes · Dark Halo · Iron Hemlock |
| **支持国家** | 俄罗斯联邦 |
| **支持机构** | SVR (对外情报局) / FSB |
| **活跃时间** | ~2008 |
| **动机** | 间谍活动 · 情报收集 · 政治影响 |
| **复杂程度** | 专家级 |
| **主要目标** | 政府 · 外交 · 国防 · 医疗 · 科技 |
| **置信度** | 高 (85%) |
| **报告 ID** | CTI-2024-APT29-0042 |
## 🗂️ STIX 2.1 对象细分
| STIX 类型 | 数量 | 描述 |
|-----------|-------|-------------|
| `threat-actor` | 1 | APT29 / Cozy Bear |
| `campaign` | 1 | PHANTOM BEAR 行动 |
| `malware` | 3 | WINELOADER · TEARDROP · SUNBURST |
| `attack-pattern` | 10 | MITRE ATT&CK 技术 |
| `indicator` | 9 | IP · 域名 · 哈希 · URL |
| `infrastructure` | 2 | C2 + 钓鱼基础设施 |
| `vulnerability` | 3 | CVE-2023-23397 · CVE-2020-10148 · CVE-2019-19781 |
| `course-of-action` | 1 | 防御性缓解措施 |
| `relationship` | 34 | 连接所有对象的 SROs |
| `report` | 1 | 包装报告的 SDO |
| `identity` | 1 | 威胁情报部门 |
| **总计** | **66** | |
## 🦠 分析的恶意软件家族
### WINELOADER
- **类型:** 后门 / 释放器
- **投递方式:** 通过鱼叉式钓鱼邮件发送的 ZIP 压缩包
- **技术:** 进程注入至 `sqlwriter.exe`
- **C2 协议:** HTTPS 端口 443,使用 RC4 + Base64 加密
- **持久化:** `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`
- **MD5:** `a3f5c2b1d4e6789012345678abcdef01`
- **SHA-256:** `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`
### TEARDROP
- **类型:** 仅内存运行释放器
- **技术:** 读取伪造的 `favicon.jpg` 以提取内嵌的负载
- **负载:** 定制 Cobalt Strike 信标 (可塑 C2)
- **检测:** 具有挑战性 — 无磁盘写入,无取证痕迹
- **SHA-256:** `7acf71afa895df5358b0ede2d71128634bfbbc0e2d9deccff5c5eaa25e6f5510`
### SUNBURST (历史背景)
- **CVE:** CVE-2020-10148 (CVSS 10.0)
- **基础设施重叠**,与检测到的 PHANTOM BEAR 行动有关
## 📅 攻击活动时间线:PHANTOM BEAR 行动
```
Oct 2023 ──▶ Initial spear-phishing emails sent to European embassies
(wine-tasting event invitations as social engineering lure)
Nov 2023 ──▶ WINELOADER dropper deployed on ambassador workstations
Process hollowing into sqlwriter.exe; Registry Run persistence
Dec 2023 ──▶ Lateral movement observed
Credential harvesting via Mimikatz / LSASS memory dump
Jan 2024 ──▶ TEARDROP second-stage delivered
Custom Cobalt Strike beacon loaded; data exfiltration begins
Feb 2024 ──▶ Campaign detected by defenders
C2 infrastructure rotated to new IP ranges
```
## 🚨 妥协指标 (IOCs)
### 网络指标
| 类型 | 值 | 上下文 |
|------|-------|---------|
| IP | `185.220.101.45` | WINELOADER C2 — AS59796 Serverius |
| IP | `91.108.4.200` | TEARDROP C2 — AS20473 Vultr |
| IP | `194.165.16.78` | 钓鱼基础设施 |
| 域名 | `update.microsoftonline-cdn.com` | 伪造的 Microsoft C2 域名 |
| 域名 | `cdn-telemetry.azure-api.net` | 仿冒域名 — TEARDROP 负载 URL |
| 域名 | `oauth2.live-signin.com` | 凭证钓鱼网站 |
| URL | `https://update.microsoftonline-cdn.com/api/v2/push` | C2 端点 |
### 文件指标
| 类型 | 哈希 | 文件 |
|------|------|------|
| SHA-256 | `e3b0c44298fc1c149afbf4c8996fb924...` | `wineloader.dll` |
| SHA-256 | `7acf71afa895df5358b0ede2d7112863...` | `teardrop.exe` |
| SHA-256 | `aabbcc1234567890aabbcc1234567890...` | `invitation.zip` |
| MD5 | `a3f5c2b1d4e6789012345678abcdef01` | `wineloader.dll` |
| MD5 | `5f4dcc3b5aa765d61d8327deb882cf99` | `favicon.jpg` |
## 🎯 MITRE ATT&CK TTP 覆盖范围
| ATT&CK ID | 技术 | 战术 |
|-----------|-----------|--------|
| T1566.001 | 鱼叉式钓鱼附件 | 初始访问 |
| T1055.012 | 进程注入 | 防御规避 |
| T1547.001 | 注册表运行键 / 启动文件夹 | 持久化 |
| T1071.001 | Web 协议 (HTTPS C2) | 命令与控制 |
| T1573.001 | 对称加密 (RC4) | 命令与控制 |
| T1003.001 | LSASS 内存凭证转储 | 凭证访问 |
| T1027 | 混淆文件 (Base64) | 防御规避 |
| T1041 | 通过 C2 通道渗出 | 渗出 |
| T1078 | 有效账户 (窃取的凭证) | 横向移动 |
| T1195.002 | 软件供应链妥协 | 初始访问 |
## 🤖 LLM 提示词工程
该流水线针对 GPT-4o 采用了 **两层提示词设计**:
```
SYSTEM PROMPT:
You are an expert Cyber Threat Intelligence (CTI) analyst.
Extract structured entities from the threat intelligence text.
Entity types to extract:
- threat_actors: name, aliases, description, motivation
- malware: name, type, description, capabilities
- indicators: type [ip/domain/hash/url], value, context
- attack_patterns: name, mitre_id, description, phase
- vulnerabilities: cve_id, description, cvss, product
- infrastructure: name, type, description
- relationships: source, target, relationship_type
Return ONLY a valid JSON object. No preamble, no markdown.
```
**12,000 个字符**的文本块按顺序处理,并在 STIX 映射之前将结果**合并和去重**。
## 🔧 技术栈
| 组件 | 工具 / 库 |
|-----------|---------------|
| 环境 | Google Colab |
| 语言 | Python 3.10 |
| PDF 提取 | `pdfplumber` |
| LLM API | OpenAI GPT-4o |
| STIX 2.1 | `stix2` Python 库 |
| 数据处理 | `pandas`, `json`, `re` |
| 可视化 | OASIS STIX Visualizer |
| 演示文稿 | PowerPoint (18 张幻灯片) |
| 作品集 | HTML / CSS / JS |
## 🚀 安装与使用
### 前置条件
```
pip install pdfplumber openai stix2 requests ipywidgets pandas
```
### 在 Google Colab 中运行 (推荐)
1. 在 **Google Colab** 中打开 `APT29_CTI_STIX21_Pipeline.ipynb`
2. 将您的 `OPENAI_API_KEY` 添加到 **Colab Secrets** (侧边栏的 🔑 图标)
3. 运行所有单元格:**Runtime → Run All**
4. 当文件小部件出现时,上传 `APT29_CTI_Report.pdf`
5. 在最后一个单元格执行完成后,下载 `APT29_STIX21_Bundle.json`
### 可视化知识图谱
将 `APT29_STIX21_Bundle.json` 加载到 **OASIS STIX Visualizer** 中:
[https://oasis-open.github.io/cti-stix-visualization/](https://oasis-open.github.io/cti-stix-visualization/)
## ✅ STIX 2.1 验证
该 Bundle 已通过 STIX 2.1 合规性检查验证:
- ✅ 所有对象均包含必填字段 (`type`, `id`, `spec_version`, `created`, `modified`)
- ✅ 所有 `id` 字段遵循 `type--UUID4` 格式
- ✅ 所有 `relationship_type` 值均使用有效的 STIX 动词 (`uses`, `attributed-to`, `indicates`, `targets`, `mitigates`, `exploits`, `delivers`, `drops`)
- ✅ 所有时间戳均为 ISO 8601 UTC 格式
- ✅ Bundle 将所有 65 个对象包装在单个 `report` SDO 下
## 🛡️ 防御建议
基于提取的威胁情报:
1. **阻止** 在边界防火墙和 DNS sinkhole 处已知的 C2 域名和 IP 段
2. **立即修补** CVE-2023-23397 — Microsoft Outlook 零点击漏洞 (CVSS 9.8)
3. **为** 所有远程访问和电子邮件服务启用 MFA
4. **部署** 具有内存扫描功能的 EDR 以检测进程注入
5. **监控** `sqlwriter.exe` 和 `svchost.exe` 的异常行为
6. **实施** 网络分段以限制横向移动
7. **针对** 鱼叉式钓鱼识别培训用户 (品酒诱饵模式)
8. **排查** 注册表项:`HKCU\Software\Microsoft\Windows\CurrentVersion\Run`
## 👤 作者
| 字段 | 详情 |
|-------|--------|
| **姓名** | Sarmad Farooq |
| **学号 | 25i-7722 |
| **活动** | 活动 4 — CTI 流水线 |
| **指导教师** | Dr. Zafar |
| **学院** | FAST-NUCES, Islamabad |
| **课程** | 网络安全实验室 |
## 📋 报告元数据
| 字段 | 值 |
|-------|-------|
| 报告 ID | CTI-2024-APT29-0042 |
| 日期 | 2024 年 3 月 |
| 作者 | 威胁情报部门 |
| 分类 | TLP:WHITE — 不受限制的分发 |
| 置信度 | 高 (85%) |
*基于 Python · GPT-4o · STIX 2.1 · Google Colab 构建*
**FAST-NUCES Islamabad — 网络安全实验室 — 活动 4**
标签:APT29, Cloudflare, CTI管道, DAST, DLL 劫持, Google Colab, GPT-4o, HTTP工具, IOC提取, IP 地址批量处理, LLM, MITRE ATT&CK, Python, STIX 2.1, TTP映射, Unmanaged PE, 大语言模型, 威胁情报, 安全数据分析, 开发者工具, 恶意软件分析, 无后门, 漏洞分析, 网络安全, 自动化信息提取, 路径探测, 隐私保护, 高级持续性威胁