revelingg/threat_bot
GitHub: revelingg/threat_bot
基于 RAG 和 MITRE ATT&CK 框架的威胁情报机器人,能够根据网络扫描信息自动生成攻击路径分析和缓解建议。
Stars: 0 | Forks: 0
# Threat Intelligence 机器人
## 概述
Threat Intelligence Bot 是一个基于 Python 的网络安全工具,它利用 RAG 系统分析网络扫描信息,并根据 MITRE ATT&CK 框架识别潜在的攻击者行为。
该系统将 MITRE 技术转换为向量嵌入并将其存储在 ChromaDB 中,允许 bot 在用户提交网络扫描或安全相关问题时进行搜索。Bot 检索最相关的技术,并使用 LLM [OpenAI](https://openai.com) 生成攻击路径分析和缓解建议,其输出类似于 SOC 分析师可能产出的内容。
## 系统工作原理
1. MITRE ATT&CK 技术经过过滤和清理,以去除不必要的元数据。
2. 每项技术都被转换为结构化文本,并使用 OpenAI API 转化为向量嵌入。
3. 嵌入随后被存储在 ChromaDB 中。
4. 当用户提交查询(例如:网络扫描的结果)时,系统会:
- [x] 为查询生成嵌入
- [X] 在向量数据库中搜索最相关的技术(前 5 项)
- [X] 将这些技术发送给 LLM
- [X] 生成分析和缓解建议
# 安装说明
1. 克隆仓库:git clone https://github.com/revelingg/threat_bot.git
2. 进入目录:cd threat_bot
3. 使用 pip **安装**所需的库
- **pip install openai chromadb python-dotenv python requests**
4. 在根目录下创建一个 .env 文件
- 在文件中输入:**OPENAI_API_KEY=your_key**
- 你的密钥应从 ChatGPT OpenAI 官网获取,网上也有相关教程
# 项目结构
threat_bot
- data
- filtered_mitre.json
- chroma_db
- scripts: prepembed.py, filterdata.py
- src: threatbot.py, retriever.py, embeddings.py
- readme.md
# 文件功能:
**prepembed.py**
处理过滤后的 MITRE 数据集并生成嵌入。
**filterdata.py**
将庞大的 MITRE 表过滤为较小的网络相关信息,约 655 条条目。
**embeddings.py**
处理与 OpenAI API 的通信以生成向量嵌入。
**retriever.py**
查询 ChromaDB 向量数据库,以获取与用户输入相关的技术。
**threatbot.py**
主应用程序,将所有组件整合在一起并生成威胁分析。
# 如何运行项目
1. 通过运行 **python -m scripts.prepembed.py** 来生成 MITRE 嵌入并加载数据集。
2. 使用以下命令运行 bot:**python -m src.threatbot**
3. 菜单将提供您可以输入的各种选项
- 选项 1 的一个示例是“检测到 192.168.1.10 上有开放 SSH,以及 192.168.1.12 上有 HTTP。”
- 选项 2 将接收一个文件路径进行解析
# 示例输出:
- 可能的 MITRE ATT&CK 技术
- 可能的攻击路径
- 建议的缓解步骤
- SOC 风格的网络暴露分析
# 许可证
本项目旨在用于教育和研究目的。
标签:ChatGPT, ChromaDB, Cloudflare, DLL 劫持, GitHub, MITRE ATT&CK, OpenAI API, Petitpotam, Promptflow, Python, RAG, Ruby, SOC分析, 向量嵌入, 向量数据库, 大语言模型, 威胁情报, 安全运营, 实时处理, 密码管理, 开发者工具, 扫描框架, 插件系统, 攻击路径分析, 无后门, 检索增强生成, 知识库, 缓解建议, 网络安全, 网络扫描分析, 自动化安全分析, 逆向工具, 隐私保护, 黑客技术