MystCryptBust344/Agentic-Threat-Intelligence

GitHub: MystCryptBust344/Agentic-Threat-Intelligence

面向 Agentic 威胁情报的时序知识图谱摄取管道,结合不确定性量化与双层存储实现 CTI 数据的自动抽取、置信度筛选和持久化。

Stars: 0 | Forks: 0

# 第一阶段 — 时序知识图谱 (TKG) 摄取管道 实现行动计划(第 1–4 周)中定义的 **Agentic 威胁情报** 系统的核心数据层。 ## 架构 ``` Stream Source (TIRE samples / CTI reports) ↓ TripletExtractor → (subject, relation, object, c_NLP) ↓ DualLayerTKG.ingest_triplet() ├── Threshold filter → ACCEPTED / FLAGGED / REJECTED ├── Bounded metrics: │ effective_confidence = c_NLP × exp(−λ × Δt) ∈ [0,1] │ threat_reliability = (ec + source_reputation) / 2 ∈ [0,1] └── InMemoryGraphStore (NetworkX/PyG) ↓ auto-flush every 30s PersistentGraphStore ├── Neo4jGraphStore (live DB — Cypher-native) └── JSONLGraphStore (fallback — append-only log) ``` ## 文件说明 | 文件 | 用途 | |---|---| | `tkg_store.py` | 双层 TKG:InMemoryGraphStore + Neo4j/JSONL 后端 | | `train_relation_extractor.py` | 在 TIRE 上微调 BERT 进行关系分类 | | `triplet_extractor.py` | 基于 UQ 阈值的运行时抽取 | | `ingestion_pipeline.py` | 带有 Rich 遥测数据的流式模拟驱动程序 | | `test_phase1.py` | 完整测试套件:存储、模型、端到端 | ## 快速开始 (VS Code) ### 第 0 步 — 运行测试(数据库 + 抽取器层,无需下载模型) ``` cd phase1 python -X utf8 test_phase1.py --test-db --test-model ``` ### 第 1 步 — 运行端到端摄取模拟(50 个 TIRE 样本) ``` python -X utf8 ingestion_pipeline.py --samples 50 ``` ### 第 2 步 — 结合 MITRE ATT&CK 预填充运行(推荐用于完整的 TKG) ``` python -X utf8 ingestion_pipeline.py --samples 100 --seed-mitre ``` ### 第 3 步 — 导出用于第二阶段 TGN 训练的 PyG 图 ``` python -X utf8 ingestion_pipeline.py --samples 200 --export-pyg ``` 输出:`phase1_output/tkg_pyg_snapshot.pt` ### 第 4 步 — 训练关系抽取器(推荐使用 GPU) ``` # 快速验证(200 个样本,1 个 epoch) python -X utf8 train_relation_extractor.py --quick-check # 完整训练(7947 个样本,5 个 epochs,在 CPU 上约需数小时) python -X utf8 train_relation_extractor.py --epochs 5 ``` ## 置信度阈值策略 | c_NLP 范围 | 权重 | 状态 | 操作 | |---|---|---|---| | ≥ 0.90 | 1.0 | ACCEPTED | 立即摄取 | | 0.70–0.90 | c | ACCEPTED | 部分权重 | | 0.50–0.70 | 0.3 | FLAGGED | 路由至审核队列 | | < 0.50 | — | REJECTED | 记录日志,排除在 TKG 之外 | ## 有界公式(根据可行性研究) ``` effective_confidence = c_NLP × exp(−λ × Δt) λ = 0.01 threat_reliability = (effective_confidence + reputation) / 2.0 ``` 所有值严格属于 [0, 1] 区间。 ## 输出文件 (phase1_output/) | 文件 | 描述 | |---|---| | `tkg_mutations.jsonl` | 记录所有节点/边写入的追加型结构化日志 | | `tkg_node_index.json` | 快速的节点 ID → 记录查找表 | | `tkg_pyg_snapshot.pt` | 用于第二阶段 TGN 的 PyG Data 对象 (如果使用 --export-pyg) | | `models/relation_extractor.pt` | 已训练的模型检查点 | | `models/label_map.json` | 关系索引 ↔ 标签映射 |
标签:时序数据库, 特权检测, 逆向工具