Adrianna-Szmaglinska/threat-intel-ai
GitHub: Adrianna-Szmaglinska/threat-intel-ai
结合多源情报查询、风险量化评分与本地 LLM 分析,为安全团队提供自动化 IOC 研判与威胁报告生成的综合平台。
Stars: 0 | Forks: 0
# 威胁情报 AI 平台
一个 AI 驱动的威胁情报富化平台,结合了入侵指标 (IOC) 分析、多源情报富化、风险评分以及 AI 生成的威胁评估,以提供全面的安全情报。
## 🎯 功能
- **IOC 富化**:查询多个威胁情报源(VirusTotal、AbuseIPDB)
- **风险评分**:自动化的风险计算和分类
- **AI 威胁评估**:利用 LLM(Llama 3.2)进行智能威胁分析
- **MITRE ATT&CK 映射**:识别潜在的攻击技术
- **高管报告**:生成可下载的威胁报告
- **交互式可视化**:使用 Plotly 对威胁指标进行可视化分析
- **Web 界面**:用户友好的 Streamlit 仪表板
## 📋 要求
- Python 3.8+
- API 密钥:
- VirusTotal API 密钥
- AbuseIPDB API 密钥
- Ollama(用于 Llama 3.2 的本地 LLM 推理)
## 🚀 快速开始
### 1. 克隆仓库
```
git clone
cd threat-intel-ai
```
### 2. 创建虚拟环境
```
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
### 3. 安装依赖项
```
pip install -r requirements.txt
```
### 4. 配置环境变量
在项目根目录下创建一个 `.env` 文件:
```
VT_API_KEY=your_virustotal_api_key
ABUSEIPDB_API_KEY=your_abuseipdb_api_key
```
从以下地址获取您的 API 密钥:
- **VirusTotal**:https://www.virustotal.com/gui/home/upload
- **AbuseIPDB**:https://www.abuseipdb.com/register
### 5. 设置 Ollama
安装 Ollama 并拉取 Llama 3.2 模型:
```
ollama pull llama3.2
```
启动 Ollama 服务:
```
ollama serve
```
### 6. 运行应用
```
streamlit run app.py
```
应用将在 `http://localhost:8501` 打开
## 📁 项目结构
```
threat-intel-ai/
├── app.py # Main Streamlit application
├── agent.py # LLM-based threat analysis agent
├── tools.py # External API integration tools
├── mitre_mapper.py # MITRE ATT&CK mapping utilities
├── risk_scoring.py # Risk calculation and classification
├── utils/
│ ├── helpers.py # Utility functions (IP validation, etc.)
│ └── __pycache__/
├── requirements.txt # Python dependencies
├── .env # Environment variables (not in repo)
├── LICENSE # MIT License
└── README.md # This file
```
## 🔧 核心组件
### app.py
主 Streamlit 应用程序,提供以下 Web 界面:
- IOC 输入和分析
- 风险概览指标
- 威胁情报摘要
- 威胁指标可视化
- 原始 API 响应检查
- 报告生成和导出
### agent.py
使用 LangChain 和 Ollama 进行 LLM 驱动的威胁分析:
- 分析富化的 IOC 数据
- 生成威胁评估
- 提供操作建议
- 识别可能的 ATT&CK 技术
### tools.py
外部威胁情报 API 集成:
- **VirusTotal**:文件和 URL 信誉数据
- **AbuseIPDB**:IP 信誉和滥用报告
### risk_scoring.py
风险量化引擎:
- 根据多个信号计算综合风险评分
- 对风险等级进行分类(低、中、高)
- 公式:`(malicious × 10) + (suspicious × 5) + (abuse_score × 0.5)`
### utils/helpers.py
实用工具函数:
- IP 地址验证
- 数据格式化和规范化
## 📊 风险分类
| 分数范围 | 风险等级 | 操作 |
|-------------|-----------|--------|
| 0-39 | 低 | 监控 |
| 40-74 | 中 | 调查 |
| 75-100 | 高 | 阻止/告警 |
## 🔄 分析工作流
1. **输入**:用户输入 IP 地址
2. **验证**:验证 IP 格式
3. **富化**:
- 执行 VirusTotal 查询
- 执行 AbuseIPDB 查询
4. **风险评分**:计算综合风险评分
5. **AI 分析**:LLM 使用富化后的数据生成威胁评估
6. **展示**:
- 显示风险指标
- 可视化威胁指标
- 映射 MITRE ATT&CK 技术
- 生成完整报告
7. **导出**:用户下载威胁报告
## 🛠️ 依赖项
| 包 | 用途 |
|---------|---------|
| streamlit | Web 框架 |
| requests | 用于 API 的 HTTP 客户端 |
| python-dotenv | 环境变量管理 |
| langchain | LLM 框架 |
| langchain-core | LangChain 核心实用工具 |
| langchain-community | 社区集成 |
| langchain-ollama | Ollama LLM 集成 |
| pandas | 数据操作 |
| plotly | 交互式可视化 |
## 📝 使用示例
```
1. Start the Streamlit app: streamlit run app.py
2. Enter an IP address (e.g., 8.8.8.8)
3. Click "Analyze IOC"
4. Review:
- Risk score and classification
- VirusTotal reputation data
- AbuseIPDB abuse reports
- AI-generated threat assessment
- MITRE ATT&CK technique mapping
5. Download threat report in text format
```
## ⚙️ 配置
### API 速率限制
请注意 API 的速率限制:
- **VirusTotal**:在 https://www.virustotal.com/gui/my-apikey 查看您的计划限制
- **AbuseIPDB**:在 https://www.abuseipdb.com/account/api 查看您的计划限制
### Ollama 模型
要使用不同的 LLM 模型,请编辑 `agent.py`:
```
llm = ChatOllama(
model="your_model_name" # Change this
)
```
可用模型:https://ollama.ai/library
## 🔐 安全注意事项
- **切勿将包含 API 密钥的 `.env` 文件提交到版本控制系统**
- 对所有敏感凭据使用环境变量
- 在生产环境中实施 API 速率限制
- 验证所有用户输入(IP 地址等)
- 考虑为 Web 界面实施身份验证
- 审计所有 IOC 查询以符合合规要求
## 📄 许可证
该项目在 MIT 许可证下授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 🆘 故障排除
### 与 Ollama 的连接问题
- 确保正在运行 Ollama 服务:`ollama serve`
- 检查 Ollama 是否可在 `http://localhost:11434` 访问
- 验证模型是否已下载:`ollama list`
### API 密钥错误
- 验证 `.env` 文件是否位于项目根目录下
- 检查 API 密钥是否正确且未过期
- 确保 API 密钥具有适当的权限
### 导入错误
- 验证是否已安装所有依赖项:`pip install -r requirements.txt`
- 确认已激活虚拟环境
## 📚 资源
- [Streamlit 文档](https://docs.streamlit.io/)
- [LangChain 文档](https://python.langchain.com/)
- [VirusTotal API](https://developers.virustotal.com/reference/)
- [AbuseIPDB API](https://docs.abuseipdb.com/)
- [Ollama 文档](https://ollama.ai/)
- [MITRE ATT&CK 框架](https://attack.mitre.org/)
## 👤 作者
作为一个 AI 驱动的威胁情报解决方案而创建。
**最后更新**:2026-06-04
标签:AI风险缓解, DLL 劫持, Kubernetes, Python, Streamlit, 大语言模型, 威胁情报, 开发者工具, 无后门, 网络安全, 访问控制, 逆向工具, 隐私保护