SayamAlt/Cybersecurity-Threat-Intelligence-System-using-Neo4j-Graphiti-and-Pydantic-AI

GitHub: SayamAlt/Cybersecurity-Threat-Intelligence-System-using-Neo4j-Graphiti-and-Pydantic-AI

一个结合Neo4j知识图谱、Pydantic-AI代理和混合RAG架构的网络安全威胁情报系统,用于自动化获取CVE数据、监控安全新闻并提供AI驱动的威胁分析。

Stars: 0 | Forks: 0

# 🛡️ 网络安全威胁情报系统 ![网络安全威胁](https://www.miniorange.com/blog/assets/2025/types-of-cyber-threats.webp) ![网络攻击](https://www.skillcast.com/hubfs/cyberattack_1200x627.jpg) [![Neo4j](https://img.shields.io/badge/Database-Neo4j-008CC1?style=flat-square&logo=neo4j)](https://neo4j.com/) [![Pydantic-AI](https://img.shields.io/badge/Agent-Pydantic--AI-FF6F00?style=flat-square)](https://github.com/pydantic/pydantic-ai) [![Graphiti](https://img.shields.io/badge/Knowledge%20Graph-Graphiti-blue?style=flat-square)](https://github.com/getgraphiti/graphiti) [![Streamlit](https://img.shields.io/badge/UI-Streamlit-FF4B4B?style=flat-square&logo=streamlit)](https://streamlit.io/) 一个先进的**网络安全威胁情报代理**,采用混合 RAG(检索增强生成)和**时序知识图谱**架构构建。该系统可自动摄取、索引和推理关键漏洞(CVE)和全球安全新闻,从而提供可操作的情报。 ## 🚀 主要功能 * **时序知识图谱**:使用 `graphiti-core` 和 **Neo4j** 构建威胁参与者、漏洞和攻击活动的动态图谱。 * **AI 推理代理**:由 **Pydantic-AI** 和 GPT-4o-mini 提供支持,提供结构化、可靠且深度上下文相关的答案。 * **自动化数据摄取**: * **NVD CVE API**:获取最近 50 个严重漏洞。 * **安全 RSS 订阅源**:实时监控 KrebsOnSecurity 等顶级订阅源。 * **双接口**: * 💻 **功能丰富的 CLI**:一个美观的终端界面,用于快速查询。 * 🌐 **Streamlit 仪表板**:具有交互式图谱可视化的现代 Web UI。 * **Aura 实例管理**:内置 Neo4j Aura API 支持,可在应用程序启动时自动**恢复已暂停的数据库**。 * **交互式拓扑**:使用 `pyvis` 动态可视化威胁图谱,支持自适应浅色/深色模式。 ## 🏗️ 系统架构 ``` graph TD A[Data Sources: NVD API / RSS Feeds] --> B[Ingestion Engine] B --> C{Knowledge Graph} C --> D[(Neo4j Aura)] C --> E[FAISS Vector Store] F[User Query] --> G[Pydantic-AI Agent] G --> H[Hybrid Retriever] H --> D H --> E G --> I[Streamlit Web UI] G --> J[Rich CLI] K[Aura API Manager] --> D K -- "Auto-Resume" --> L[App Startup] ``` ## 🛠️ 前置条件 * **Python 3.11+** * **Neo4j Aura 账户**:Neo4j Aura 的免费或专业实例。 * **OpenAI API 密钥**:用于代理推理和嵌入。 * **Aura API 凭据**:(可选)用于自动化数据库管理。 ## 📦 安装 1. **克隆仓库**: git clone https://github.com/SayamAlt/Cybersecurity-Threat-Intelligence-System-using-Neo4j-Graphiti-and-Pydantic-AI.git cd Cybersecurity-Threat-Intelligence-System-using-Neo4j-Graphiti-and-Pydantic-AI 2. **安装依赖**: 我们推荐使用 `uv` 进行闪电般的包管理: uv sync # 或使用 pip pip install -r requirements.txt ## ⚙️ 配置 在根目录创建 `.env` 文件(或使用 Streamlit Secrets): ``` # Neo4j 连接 NEO4J_URI = "neo4j+s://your-instance-id.databases.neo4j.io" NEO4J_USER = "neo4j" NEO4J_PASSWORD = "your-password" NEO4J_DATABASE = "neo4j" # LLM 提供商 OPENAI_API_KEY = "sk-proj-..." # (可选) Neo4j Aura API - 用于自动恢复暂停的实例 AURA_CLIENT_ID = "your-client-id" AURA_CLIENT_SECRET = "your-client-secret" AURA_INSTANCE_ID = "your-instance-id" ``` ## 🖥️ 运行方式 ### 1. Web 应用程序(推荐) 启动交互式仪表板: ``` streamlit run app.py ``` ### 2. 命令行界面 直接在终端中运行代理: ``` python main.py ``` ## 🛡️ 自动化数据库管理 这个系统的独特之处在于其**云原生弹性**。由于 Neo4j Aura Free 实例在空闲后会暂停,系统包含一个管理层(`core/aura_api.py`),用于: 1. 通过 Aura API 在启动时**检测状态**。 2. 如果实例已暂停,**触发恢复**。 3. **轮询直到在线**后再允许 AI 代理连接。 这确保系统始终可以提供情报服务,无需人工干预。 ## 🗺️ 项目结构 * `app.py`:Streamlit Web 应用程序。 * `main.py`:CLI 应用程序入口点。 * `graphiti_rag_agent.py`:核心 AI 逻辑和工具定义。 * `core/`:Aura 管理和实体提取的内部逻辑。 * `ingestion/`:数据获取和图谱/RAG 索引脚本。 * `html_files/`:生成的图谱可视化文件。 ## 📄 许可证 本项目基于**Apache 许可证 2.0**授权。详见 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 欢迎贡献!如果您有新数据源的想法(例如 MITRE ATT&CK、Shodan 集成)或图谱架构的改进建议,请随时提交 Pull Request。 **为网络安全社区用心打造。**
标签:AI代理, AMSI绕过, Aura, CVE, DAST, DLL 劫持, DNS枚举, GPT, GPT-4o, Graphiti, Kubernetes, masscan, Neo4j, NVD, Petitpotam, Pydantic-AI, Python, pyvis, RAG, RSS订阅, Streamlit, 后端开发, 大语言模型, 威胁参与者, 威胁情报, 威胁情报平台, 威胁检测, 安全信息与事件管理, 开发者工具, 恶意软件分析, 搜索引擎爬取, 攻击模式, 数字签名, 无后门, 时间知识图谱, 检索增强生成, 漏洞管理, 网络安全, 网络安全工具, 自动化数据摄取, 访问控制, 逆向工具, 隐私保护