Doygun/TempCTI-KG-experiments
GitHub: Doygun/TempCTI-KG-experiments
该项目为论文 TempCTI-KG 的配套实验代码与数据集,通过对网络威胁情报知识图谱中事实的时间有效性和置信度衰减进行建模,解决 CTI 情报过期判定与时效性量化问题。
Stars: 0 | Forks: 0
# TempCTI-KG 实验
论文 *"TempCTI-KG: Temporal Validity and Confidence Decay Modeling for Cyber Threat Intelligence Knowledge Graphs"* 的代码。
## 概述
TempCTI-KG 对知识图谱中网络威胁情报事实的时间有效性进行建模。事实被表示为五元组,包含观察时间、有效期,以及一个根据在真实 CTI 生命周期数据上拟合的、特定于关系类型的生存模型(exponential 和 Weibull)随时间衰减的置信度值。
数据源:
- MITRE ATT&CK Enterprise(40 个版本,v1.0 - v19.1)
- abuse.ch URLhaus(完整数据库转储)
- abuse.ch ThreatFox
- abuse.ch MalwareBazaar
## 脚本
| 脚本 | 用途 |
|---|---|
| `00_download_attck.py` | 下载所有 ATT&CK Enterprise STIX 版本 |
| `01_parse_attck_lifetimes.py` | 提取跨 ATT&CK 版本的事实生命周期 |
| `02_fetch_abusech.py` | 获取 URLhaus / ThreatFox / MalwareBazaar 数据流 |
| `02b_rebuild_merged.py` | 合并数据源并进行全窗口覆盖过滤 |
| `02c_parse_urlhaus_full.py` | 解析完整的 URLhaus 数据库转储 |
| `03_survival_analysis.py` | 每种关系类型的 Kaplan-Meier + exponential/Weibull 拟合 |
| `04_validity_prediction.py` | 任务 1:时间有效性预测(AUC, Brier, bootstrap CIs) |
| `05_downstream_fp.py` | 任务 3:下游过期检索模拟 |
| `05_run_all.py` | 运行完整的 pipeline |
| `06_ablation.py` | Ablation study |
| `07_versioning_scalability.py` | Bi-temporal 版本控制和可扩展性基准测试 |
| `08_replay_eval.py` | 任务 4:真实数据流回放评估(URLhaus) |
| `09_case_study_kg.py` | Amadey 案例研究知识图谱图表 |
| `10_per_source_auc.py` | 分数据源 AUC 细分 |
## 环境要求
```
pip install -r requirements.txt
```
需要 Python 3.11+,以及 `numpy`, `pandas`, `scipy`, `scikit-learn`, `lifelines`, `matplotlib`, `networkx`, `requests`, `stix2`, `mitreattack-python`。
## 复现结果
```
python scripts/00_download_attck.py
python scripts/01_parse_attck_lifetimes.py
python scripts/02_fetch_abusech.py
python scripts/02c_parse_urlhaus_full.py
python scripts/02b_rebuild_merged.py
python scripts/05_run_all.py
```
结果(JSON/CSV)将写入 `results/`,图表将写入 `results/figures/`。
注意:abuse.ch 数据流是实时的;重新获取将产生比论文中使用的更新版本的快照。用于已发表结果的处理过的生命周期表包含在 `data/` 目录下。
## 引用
如果您使用了本代码,请引用该论文(引用信息将在论文被接受后添加)。
## 联系方式
Doygun Demirol —
标签:BSD, 威胁情报, 开发者工具, 数据挖掘, 生存分析, 逆向工具