Suraj-G-Rao/RL-Based-Cyber-Threat-Detection

GitHub: Suraj-G-Rao/RL-Based-Cyber-Threat-Detection

一个基于 Neo4j 知识图谱与 Groq LLM 的自然语言网络安全威胁情报聊天机器人。

Stars: 25 | Forks: 1

# 🔍 网络威胁情报聊天机器人 一个强大的 AI 驱动聊天机器人,利用 Neo4j 的网络威胁知识图谱(CKG)和 Groq API,通过自然语言查询提供智能网络安全威胁情报。 ## 🚀 功能 - **自然语言到 Cypher 查询**:将普通英文问题转换为优化的 Neo4j Cypher 查询 - **实时威胁情报**:查询全面的网络安全数据库,包括 CVE、CWE、CVSS 分数等 - **交互式网络界面**:基于用户友好的 Streamlit 界面 - **快速响应**:由 Groq 的高性能 LLM 提供支持,实现快速查询生成 ## 📋 先决条件 - Python 3.8 - Neo4j Desktop(版本 1.6.1 或更高) - Groq API 密钥 ## 🛠️ 安装与设置 ### 步骤 1:设置 Neo4j Desktop 1. 从 [https://neo4j.com/download/](https://neo4j.com/download/) 下载并安装 Neo4j Desktop 2. 创建一个新项目(例如:"Graph DBMS") 3. 设置版本 4.4.9 的新 DBMS 4. 启动数据库服务器 ![Neo4j Desktop 设置](https://via.placeholder.com/800x400/1E293B/FFFFFF?text=Neo4j+Desktop+Setup+Screenshot) ### 步骤 2:导入数据库转储 1. 在你的 Neo4j Desktop 项目中,点击数据库 2. 导航到 "Files" 部分 3. 导入提供的 `neo4j.dump` 文件 4. 等待导入完成 5. 确保数据库状态显示为 "Active" ![Neo4j 导入](https://via.placeholder.com/800x400/1E293B/FFFFFF?text=Neo4j+Database+Import) ### 步骤 3:创建 Python 虚拟环境 ``` # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # 在 Windows 上: venv\Scripts\activate # 在 macOS/Linux 上: source venv/bin/activate ``` ### 步骤 4:安装依赖项 ``` pip install -r requirements.txt ``` 💡 **提示**:在安装依赖项之前,请确保已进入虚拟环境。 ### 步骤 5:配置环境变量 1. 复制 `.env` 文件并用你的凭据更新它: ``` GROQ_API_KEY="your_actual_groq_api_key" GOOGLE_API_KEY="your_google_api_key" NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=your_neo4j_password ``` ### 步骤 6:运行应用程序 ``` streamlit run final.py ``` ## 🎯 用法 1. 打开浏览器并导航到 `http://localhost:8501` 2. 在提供的字段中输入你的 Groq API 密钥 3. 用自然语言输入你的网络安全查询(例如:"获取 ID 为 39 的 CVE 描述") 4. 点击 "Generate Cypher Query & Fetch Data" 5. 查看生成的 Cypher 查询和结果 ![Streamlit 应用程序](https://via.placeholder.com/800x600/1E293B/FFFFFF?text=Streamlit+Cyber+Threat+Chatbot+Interface) ## 🔗 数据库架构 网络知识图谱(CKG)包含以下节点类型: - **CVE**:通用漏洞披露 - **CWE**:通用弱点枚举 - **CVSS_2/3**:通用漏洞评分系统 - **CPE**:通用平台枚举 - **Reference_Data**:外部引用和来源 ## 💡 示例查询 - "列出所有高严重性威胁" - "获取 ID 为 39 的 CVE 描述" - "查找与缓冲区溢出相关的所有 CVE" - "显示 2023 年发布的漏洞" - "获取关键漏洞的 CVSS 分数" ## 🔧 配置 ### Neo4j 连接 - URI:`bolt://localhost:7687` - 默认用户名:`neo4j` - 密码:在 Neo4j 设置期间设置 ### Groq API - 从 [https://groq.com/](https://groq.com/) 获取你的 API 密钥 - 支持 Llama 3.1 8B Instant 模型以实现快速响应 ## 🐛 故障排除 ### 常见问题 1. **Neo4j 连接失败** - 确保 Neo4j Desktop 正在运行 - 检查数据库是否处于活动状态 - 验证连接凭据 2. **Groq API 错误** - 验证你的 API 密钥是否正确 - 检查你的 Groq 账户余额 3. **导入问题** - 确保 `neo4j.dump` 文件未损坏 - 检查可用磁盘空间 ## 📝 项目结构 ``` RL Based Cyber Threat Detection/ ├── final.py # Main Streamlit application ├── requirements.txt # Python dependencies ├── .env # Environment variables ├── neo4j.dump # Database backup file ├── README.md # This file └── GraphKer/ # Additional graph processing modules ``` ## 🙏 致谢 - Neo4j 提供图数据库技术 - Groq 提供高性能 LLM API - Streamlit 提供 Web 应用程序框架 **注意**:请将此 README 中的占位符图像替换为你实际拥有的截图。当前的图像 URL 是占位符,应使用实际的截图文件进行更新。
标签:AI聊天机器人, CKG, CVE, CVSS, Cyber Knowledge Graph, Cypher查询, DLL 劫持, Groq API, Kubernetes, LLM, Neo4j, Python, Rego, SEO, Streamlit, Sysdig, Unmanaged PE, Web界面, 交互式界面, 人工智能, 依赖安装, 大语言模型, 威胁情报, 实时威胁情报, 开发者工具, 快速响应, 技术文档, 数字签名, 无后门, 环境配置, 用户模式Hook绕过, 网络安全, 自然语言查询, 虚拟环境, 访问控制, 逆向工具, 隐私保护