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://neo4j.com/)
[](https://github.com/pydantic/pydantic-ai)
[](https://github.com/getgraphiti/graphiti)
[](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, 后端开发, 大语言模型, 威胁参与者, 威胁情报, 威胁情报平台, 威胁检测, 安全信息与事件管理, 开发者工具, 恶意软件分析, 搜索引擎爬取, 攻击模式, 数字签名, 无后门, 时间知识图谱, 检索增强生成, 漏洞管理, 网络安全, 网络安全工具, 自动化数据摄取, 访问控制, 逆向工具, 隐私保护