Kanikaram-Kaushik/CTI

GitHub: Kanikaram-Kaushik/CTI

基于RAG架构的网络威胁情报聊天机器人,整合MITRE ATT&CK知识库与大语言模型推理,提供可靠且有据可查的威胁技术问答能力。

Stars: 0 | Forks: 0

# CTI RAG 聊天机器人工作流 本仓库包含一个简单的**检索增强生成 (RAG)** 网络威胁情报助手,使用了 MITRE ATT&CK 数据。 ## 设置 1. **创建 Python 虚拟环境**(如果尚未创建): python -m venv .venv 2. **激活环境**: .\.venv\Scripts\Activate.ps1 # PowerShell # 或 .venv\Scripts\activate.bat (cmd) 3. **安装依赖项**: python -m pip install --upgrade pip python -m pip install -r requirements.txt 需求文件中包含了用于 Flask、LangChain、FAISS、Groq 集成以及用于测试的 `pytest` 的包。 ## 索引数据 `injest.py` 脚本会下载 MITRE ATT&CK STIX bundle(如果不存在),解析相关对象,对文本进行分块,并构建一个 FAISS 向量索引。 在启动服务器之前(或每当更新 STIX 数据时)运行一次此脚本: ``` python cti_rag_chatbot\injest.py ``` 这将创建后端所需的 `cti_rag_chatbot/faiss_index/index.faiss` 文件。 ## 运行服务器 启动后端服务: ``` python cti_rag_chatbot\backend.py ``` Flask 应用监听 `http://localhost:5000` 并提供以下接口: - `GET /` 提供静态 UI - `POST /api/chat` 接收 JSON {"question": "..."}。它从 ATT&CK 索引中检索相关段落,并根据这些文档生成有理有据的回答。该端点包含一个幻觉防护机制——如果无法从上下文中证明响应的合理性,它会回复一条礼貌的失败消息。返回的 JSON 包含 `answer`、`sources` 以及(在生成时)用于合成的完整 `context`。 - `POST /api/reset` 清除聊天历史记录。 ## 测试 一个简单的测试套件涵盖了问候语、空输入处理和检索行为。 要运行测试: ``` python -m pytest cti_rag_chatbot\test_backend.py -q ``` 如果 FAISS 索引缺失,测试将自动重新生成它。 ## 注意事项与提示 - 后端会验证 FAISS 索引是否存在,如果未找到则会引发明确的错误。 - 路径是相对于脚本文件计算的,因此您可以从任何工作目录启动。 - 在启动后端之前设置 `GROQ_API_KEY`。您可以选择设置 `GROQ_MODEL` 来覆盖默认的 Groq 模型。 ### **MITRE ATT&CK 领域与测试** - **Sah** (QA 与网络安全专家) - MITRE ATT&CK 上下文验证 - 网络安全测试用例设计 - 查询范围强制测试 - 威胁情报准确性验证 - 测试套件维护与扩展 每位团队成员的贡献对项目的成功同等重要。有关模型选择、功能优先级和架构的决策都是协作完成的。 通过这些步骤,从依赖项安装和数据摄取到 API 操作和测试的完整工作流得以重建并被记录在案。
标签:AI, Chatbot, Cloudflare, DLL 劫持, FAISS, Flask, LangChain, LLM, MITRE ATT&CK, NLP, Python, RAG, STIX, Unmanaged PE, 人工智能, 全文检索, 后端开发, 向量数据库, 大语言模型, 威胁情报, 安全知识库, 安全规则引擎, 幻觉缓解, 开发者工具, 无后门, 检索增强生成, 用户模式Hook绕过, 网络安全, 自动化代码审查, 轻量级, 逆向工具, 隐私保护