pypi-ahmad/Cybersecurity-Threat-Intelligence-GraphRAG

GitHub: pypi-ahmad/Cybersecurity-Threat-Intelligence-GraphRAG

基于 GraphRAG 和多模态 RAG 技术的网络安全威胁情报分析助手,支持从 MITRE ATT&CK 数据中进行图谱检索、混合检索和 Agentic 工作流编排。

Stars: 0 | Forks: 0

# 网络安全威胁情报 GraphRAG 面向生产环境、教程优先的威胁情报助手,基于 MITRE ATT&CK STIX 数据构建,集成了 GraphRAG、混合检索、多模态 RAG 和 Agentic 工作流。 本仓库的文档均基于本项目内已存在的**真实执行运行产物**。本 README 中未使用任何虚拟指标。 ## 我构建的内容 我实现并记录了六个可运行的 RAG 部分以及一份决策指南: 1. 第 1 部分:ChromaDB + GraphRAG(本地/全局/混合检索) 2. 第 2 部分:Pinecone + GraphRAG 3. 第 3 部分:基于 LangGraph 路由的 Agentic GraphRAG 4. 第 4 部分:混合 RAG(稠密 + 稀疏 BM25 + 图扩展) 5. 第 5 部分:带 OCR 的多模态 RAG(通过 Ollama 使用 `glm-ocr`) 6. 第 6 部分:视觉多模态 RAG(带降级路由的 `qwen3.5:4b`) 7. 第 7 部分(NB09):Unsloth/PEFT/TRL 决策指南(仅文档,不强制进行 fine-tuning) ## 模型技术栈 - Embeddings:`qwen3-embedding:4b` (Ollama) - 生成器:`granite4.1:8b` (Ollama) - LLM Judge:`granite4.1:8b` (Ollama) - OCR(多模态):`glm-ocr:latest` (Ollama) - 视觉(多模态):主用 `qwen3.5:4b`,降级使用 `qwen3.5:9b` ## 网络威胁图谱范围 pipeline 中使用的规范实体类型: - 威胁行为者 - 恶意软件 - 漏洞 - CVE - 攻击活动 - 工具 - 技术 - 组织 涵盖的能力: - MITRE ATT&CK 映射 - 威胁行为者关系图 - 攻击活动分析图 - CVE 关联图 ## 端到端架构 ``` flowchart TD A[MITRE ATT&CK STIX Ingestion] --> B[Chunking + Metadata] B --> C[Embeddings qwen3-embedding:4b] B --> D[Threat Knowledge Graph] C --> E1[Chroma Index] C --> E2[Pinecone Index] E1 --> F[GraphRAG Retrieval] E2 --> F D --> F F --> G[Section 3 Agentic LangGraph Orchestration] F --> H[Section 4 Hybrid Dense+Sparse Fusion] F --> I[Section 5 Multimodal OCR Fusion] F --> J[Section 6 Vision Multimodal Fusion] G --> K[Generation granite4.1:8b] H --> K I --> K J --> L[Vision Generation qwen3.5:4b] K --> M[LLM Judge granite4.1:8b] L --> M M --> N[Evaluation Artifacts + Figures] ``` ## 真实运行快照(事实来源) 源文件: - `evaluations/full_section_comparison.csv` - `evaluations/missing_techniques_comparison.csv` | 部分 | Precision@10 | Recall@10 | F1@10 | MRR | NDCG | Faithfulness | Judge Overall | 平均延迟 (s) | P95 延迟 (s) | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| | section1_chromadb_graphrag | 0.1000 | 0.8750 | 0.1780 | 0.3819 | 0.4712 | 0.1833 | 0.1950 | 31.731 | 36.644 | | section2_pinecone_graphrag | 0.1000 | 0.8750 | 0.1780 | 0.3819 | 0.4712 | 0.1833 | 0.1950 | 30.453 | 35.735 | | section3_agentic_langgraph_graphrag | 0.0500 | 0.4583 | 0.0896 | 0.1806 | 0.2425 | 0.3000 | 0.3325 | 44.405 | 71.091 | | section4_hybrid_dense_sparse_graphrag | 0.1000 | 0.9167 | 0.1793 | 0.7917 | 0.7953 | 0.2375 | 0.2367 | 31.019 | 34.705 | | section5_multimodal_graphrag_ocr | 0.1000 | 0.8750 | 0.1780 | 0.3819 | 0.4712 | 0.2292 | 0.1517 | 29.452 | 33.880 | | section6_multimodal_vision_qwen35 | 0.1000 | 0.8750 | 0.1780 | 0.3819 | 0.4712 | 0.1542 | 0.1525 | 125.072 | 138.382 | ### 关键观察 - 最佳检索排名质量(`MRR`、`NDCG`):**第 4 部分 稠密+稀疏混合 GraphRAG**。 - 基于判官的最佳质量和 Faithfulness:**第 3 部分 Agentic GraphRAG**。 - 按延迟计算最快的部分:**第 5 部分 多模态 OCR**。 - 延迟开销最大的部分:**第 6 部分 视觉多模态**。 - 在这个包含 12 个查询的 benchmark 中,各部分的 Exact Match 均为 `0.0`,因此在解读时应侧重于语义指标(ROUGE/BERTScore/Faithfulness/Judge),而不是仅仅关注 EM。 ## Agentic 路由(真实追踪) 来源:`outputs/section3_agentic_routing_trace.csv` - 数据行数:12 - 策略频率:`hybrid=10`,`global=2` - 尝试次数:`3 次尝试=11 个查询`,`1 次尝试=1 个查询` - 检索质量平均值:`0.8114` 这证实了 LangGraph 工作流中存在主动纠错分支(检索评分 + 重试循环)。 ## 多模态执行证据 - OCR 缓存文件:`outputs/multimodal/glm_ocr_cache.json` - 条目:`13` - 成功计数:`13` - CVE 关联表:`outputs/multimodal/multimodal_cve_linkage_table.csv` - 数据行数:`22` ## Notebook 序列 - `notebooks/NB01_data_exploration.executed.ipynb` - `notebooks/NB02_chunking_and_embeddings.executed.ipynb` - `notebooks/NB03_graph_construction.executed.ipynb` - `notebooks/NB04_vector_store_and_retrieval.executed.ipynb` - `notebooks/NB05_full_pipeline_evaluation.executed.ipynb` - `notebooks/NB06_hybrid_dense_sparse_rag.executed.ipynb` - `notebooks/NB07_multimodal_threat_intelligence_rag.executed.ipynb` - `notebooks/NB08_vision_multimodal_rag_qwen35.executed.ipynb` - `notebooks/NB09_unsloth_peft_trl_decision_guide.executed.ipynb` ## 最小化设置 ``` cd /home/ahmad/AI/Cybersecurity-Threat-Intelligence-GraphRAG uv python install 3.12.10 uv venv --python 3.12.10 .venv source .venv/bin/activate uv sync ``` 拉取所需的 Ollama 模型: ``` ollama pull qwen3-embedding:4b ollama pull granite4.1:8b ollama pull glm-ocr:latest ollama pull qwen3.5:4b ollama pull qwen3.5:9b ``` 环境配置: ``` cp .env.example .env # 为 section 2 设置 PINECONE_API_KEY ``` ## 运行命令 完整基准测试部分: ``` source .venv/bin/activate python scripts/run_full_pipeline.py ``` 缺失技术部分(混合 + 多模态): ``` source .venv/bin/activate python scripts/run_missing_techniques.py --mode full ``` Notebook 执行: ``` source .venv/bin/activate bash scripts/execute_notebooks.sh ``` ## 产物映射 - 评估 JSON/CSV:`evaluations/` - 跨部分图表:`outputs/*_comparison.png` - 特定部分的图表:`outputs/section*_key_metrics.png` - Agentic 路由诊断:`outputs/section3_agentic_routing_trace.csv` - 多模态资产 + OCR 缓存:`outputs/multimodal/` - 图谱产物:`graphs/cti_graph.gpickle`、`graphs/cti_graph.communities.json` ## 文档集 - 主手册:`docs/HANDBOOK.md` - 教程:`docs/tutorials/` - PDF 源文件:`docs/documentation.md` - PDF 导出:`docs/documentation.pdf` ## 官方参考资料 - MITRE ATT&CK 数据和工具:https://attack.mitre.org/resources/attack-data-and-tools/ - GraphRAG 论文:https://arxiv.org/abs/2404.16130 - Microsoft GraphRAG 仓库/文档:https://github.com/microsoft/graphrag - CRAG 论文:https://arxiv.org/abs/2401.15884 - LangGraph 文档:https://docs.langchain.com/oss/python/langgraph/quickstart - Ollama API:https://docs.ollama.com/api - Ollama `/api/embed`:https://docs.ollama.com/api/embed - Ollama `/api/generate`:https://docs.ollama.com/api/generate - Ollama `/api/chat`:https://docs.ollama.com/api/chat - `glm-ocr` 模型卡片:https://registry.ollama.com/library/glm-ocr - `qwen3.5` 模型卡片:https://registry.ollama.com/library/qwen3.5 - Pinecone Python SDK:https://github.com/pinecone-io/python-sdk - Chroma collections 文档:https://cookbook.chromadb.dev/core/collections - Ragas faithfulness 指标文档:https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/faithfulness - PEFT 文档:https://huggingface.co/docs/peft - TRL 文档:https://huggingface.co/docs/trl - Unsloth 文档:https://docs.unsloth.ai/
标签:AI风险缓解, Cloudflare, DLL 劫持, GraphRAG, LLM评估, MITRE ATT&CK, Ollama, 人工智能, 大语言模型, 威胁情报, 开发者工具, 检索增强生成, 用户模式Hook绕过, 逆向工具