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, 大语言模型, 威胁情报, 开发者工具, 无后门, 网络安全, 访问控制, 逆向工具, 隐私保护