YEsh-DEV/Cyber-Threat-Intelligence-

GitHub: YEsh-DEV/Cyber-Threat-Intelligence-

基于 GraphRAG 架构的 CTI 知识图谱构建框架,从非结构化威胁情报报告中低幻觉地提取结构化实体与关系并写入 Neo4j。

Stars: 0 | Forks: 0

# 🛡️ 高级网络威胁情报 (CTI) 抽取框架 ### *基于 GraphRAG 增强的非结构化 CTI 叙述知识图谱构建* [![Python](https://img.shields.io/badge/Python-3.12-blue?style=for-the-badge&logo=python)](#) [![Neo4j](https://img.shields.io/badge/Neo4j-AuraDB-018bff?style=for-the-badge&logo=neo4j)](#) [![Ollama](https://img.shields.io/badge/Ollama-Local_LLM-white?style=for-the-badge&logo=ollama)](#) [![Groq](https://img.shields.io/badge/Groq-LPU-f55036?style=for-the-badge)](#) [![Gemini](https://img.shields.io/badge/Google-Gemini-1A73E8?style=for-the-badge&logo=google)](#)
## 📖 概述 从海量、非结构化的网络威胁情报 (CTI) 报告中提取结构化情报是出了名的困难。虽然大型语言模型 (LLM) 擅长文本提取,但在处理密集的网络安全术语时,它们会出现**严重的幻觉**,经常凭空捏造恶意软件活动或错误地归因威胁行为者。 这个项目解决了这个问题。通过实施由 MITRE ATT&CK 框架支持的 **GraphRAG(图检索增强生成)**架构,本项目严格引导 LLM 从非结构化文本中提取高度准确、可验证的关系,并将它们直接映射到 **Neo4j 知识图谱**中。 ### ✨ 本框架的优势 - 🎯 **零幻觉提示:** 使用严格区分的“背景上下文”与“事件叙述”,防止 LLM 将检索到的背景知识注入其提取结果中。 - 🚀 **极速的本地与云端提取:** 支持 Groq (Llama 3)、Google Gemini、Mistral 等高速 API 提取,同时支持使用 Ollama (Gemma/Qwen) 进行完全本地、物理隔离的提取。 - 🕸️ **自动化知识图谱构建:** 自动将非结构化文本转化为 Neo4j 数据库中的 `Entity` 和 `Relationship` 节点,用于高级威胁狩猎。 - 📊 **自动化的 LLM-as-a-Judge 评估:** 内置 RAGAS 风格的评估流水线,自动对提取结果的*忠实度 (Faithfulness)*、*相关性 (Relevance)*、*覆盖率 (Coverage)* 和*幻觉率 (Hallucination Rates)* 进行评分。 ## 🏗️ 架构与所用技术 本项目基于多阶段流水线运行: ``` graph TD A[Unstructured CTI XML] -->|XML Parser| B(Parsed Events Cache) B --> C{Context Retriever} C -->|No Context| D(LLM Only) C -->|Vector Similarity| E(Vanilla RAG / ChromaDB) C -->|Knowledge Graph| F(GraphRAG / NetworkX) D --> G[LLM Extraction Engine] E --> G F --> G G -->|Groq / Gemini / Ollama| H(Structured JSON) H --> I{Evaluation Pipeline} I -->|Local Ollama Judge| J[Performance Matrix] H --> K[(Neo4j AuraDB)] ``` ### 🛠️ 技术栈 - **语言:** Python 3.12 - **向量数据库:** ChromaDB(用于初始语义搜索) - **内存图:** NetworkX(用于动态 1 跳 GraphRAG 上下文生成) - **目标图数据库:** Neo4j (Cypher 查询语言) - **LLM API:** Groq、Google Gemini、Mistral AI - **本地推理:** Ollama (`gemma_e2b`, `qwen2.5-coder:7b`) - **评估:** 自定义 RAGAS(检索增强生成评估)实现 ## 🚀 快速开始 ### 1. 前置条件 - Python 3.12+ - Neo4j AuraDB 实例(或本地 Neo4j Desktop) - 本地安装 [Ollama](https://ollama.com/)(如果使用本地模型) - Groq、Gemini 或 Mistral 的 API 密钥(如果使用云端模型) ### 2. 安装说明 克隆仓库并安装依赖: ``` git clone https://github.com/YEsh-DEV/Cyber-Threat-Intelligence-.git cd Cyber-Threat-Intelligence- python -m venv .venv # 激活环境 (Windows) .venv\Scripts\activate # 安装 requirements pip install -r requirements.txt ``` ### 3. 环境变量 在根目录下创建 `.env` 文件并配置你的密钥: ``` # API Keys MISTRAL_API_KEY="your_mistral_key" GEMINI_API_KEY="your_gemini_key" GROQ_API_KEY="your_groq_key" # Neo4j Database NEO4J_URI="neo4j+ssc://.databases.neo4j.io" NEO4J_USERNAME="neo4j" NEO4J_PASSWORD="your_neo4j_password" # 本地 Ollama OLLAMA_BASE_URL="http://localhost:11434" ``` ### 4. 运行流水线 在运行提取之前,请确保拉取了必要的本地模型: ``` ollama run gemma_e2b ollama run qwen2.5-coder:7b ``` 运行自动化演示脚本。这将通过 3 种方法(仅 LLM、基础 RAG、GraphRAG)提取 10 个事件,对它们进行评估,并将最佳结果上传至 Neo4j。 ``` $env:PYTHONUTF8="1" python run_demo.py ``` ## 📈 实验结果 (Groq 提取) 该流水线比较了三种方法,以展示具有上下文感知能力的 Graph 检索的强大功能。以下结果展示了使用 **Llama 3 (通过 Groq)** 的评估矩阵。
| 提取方法 | 提取的实体数 | 提取的关系数 | 幻觉率 | 忠实度 | |:---:|:---:|:---:|:---:|:---:| | 🧠 **仅 LLM** | 105 | 32 | **0.100** | **0.890** | | 📚 **基础 RAG** | 144 | 59 | 0.634 | 0.366 | | 🕸️ **GraphRAG** | **125** | **159** | *0.567* | *0.413* |
## 📂 仓库结构 ``` 📦 Cyber-Threat-Intelligence- ┣ 📂 data_parsers/ # XML and STIX dataset parsers ┣ 📂 preprocessing/ # Event caching and filtering ┣ 📂 retrievers/ # ChromaDB Vector Store & NetworkX GraphRAG logic ┣ 📂 models/ # API wrappers for Groq, Gemini, Mistral, Ollama ┣ 📂 pipeline/ # Core extraction orchestration ┣ 📂 evaluation/ # Automated LLM-as-a-judge scoring system ┣ 📂 graph/ # Neo4j Cypher loaders ┣ 📂 deliverables/ # Final presentation matrices and reports ┣ 📜 run_demo.py # Main demonstration script ┗ 📜 config.py # Global variables and LLM configurations ``` ## 输出: Screenshot 2026-06-11 214320 Screenshot 2026-06-11 215750 Screenshot 2026-06-11 220101 Screenshot 2026-06-11 183210
专为高级网络威胁情报研究而构建
标签:AI风险缓解, DLL 劫持, GraphRAG, Neo4j, Python, 大语言模型, 威胁情报, 开发者工具, 无后门, 特权检测, 网络安全, 逆向工具, 隐私保护