Ishaks03/threat_intel_platform

GitHub: Ishaks03/threat_intel_platform

这是一个基于 Flask 构建的威胁情报管理平台,能够聚合多源情报数据并与内部日志进行关联分析,同时利用 AI 生成威胁简报以辅助安全运营。

Stars: 0 | Forks: 0

# 威胁情报平台 一个基于 Flask 构建的综合性**威胁情报关联与 IOC 验证平台**。该平台聚合威胁情报源,验证入侵指标(IOC),将其与日志进行关联,并生成 AI 驱动的威胁简报。 ![Python](https://img.shields.io/badge/Python-3.8+-blue.svg) ![Flask](https://img.shields.io/badge/Flask-2.0+-green.svg) ![License](https://img.shields.io/badge/License-MIT-yellow.svg) ## 功能 ### 🔍 IOC 管理 - **多源 IOC 接入**,来自流行的威胁情报源(URLhaus, ThreatFox, Feodo Tracker, MalwareBazaar) - **支持的 IOC 类型**:IP 地址、域名、URL、文件哈希(MD5/SHA1/SHA256)、电子邮件地址 - **手动 IOC 提交**及验证 - **误报跟踪**与管理 - 通过 VirusTotal 和 AbuseIPDB API 进行 **IOC 丰富化** ### 🔗 日志关联 - 将 IOC 与各种日志源进行**自动关联**: - 防火墙日志 - DNS 查询日志 - 代理/Web 日志 - 认证日志 - 文件哈希日志 - 具有可配置关联规则的**实时威胁检测** ### 📊 威胁评分 - **智能评分算法**,考虑以下因素: - IOC 置信度级别 - 威胁类型严重性(C2、勒索软件、网络钓鱼等) - 情报源可靠性评级 - IOC 时效性 - 已知恶意软件家族归属 - 可疑指标(端口、顶级域名) - **威胁级别**:CRITICAL(严重)、HIGH(高)、MEDIUM(中)、LOW(低)、INFORMATIONAL(信息性) ### 🤖 AI 驱动简报 - 使用 Google Gemini AI 生成**每日威胁简报** - 包含上下文和建议的 **IOC 调查报告** - 供安全团队使用的**执行摘要** ### 📈 仪表板与报告 - 带有实时统计数据的**交互式 Web 仪表板** - **威胁分布可视化** - **导出功能**:CSV、TXT 格式 - 关联报告生成 ### ⏰ 自动化调度 - **定时情报源更新**(可配置间隔) - **自动关联运行** - 每日简报生成 ## 架构 ``` threat_intel_platform/ ├── app.py # Flask application entry point ├── scheduler.py # APScheduler job definitions ├── requirements.txt # Python dependencies ├── core/ │ ├── feed_manager.py # Threat feed ingestion │ ├── ioc_parser.py # IOC parsing and normalization │ ├── ioc_validator.py # IOC validation and FP detection │ ├── log_correlator.py # Log correlation engine │ ├── threat_scorer.py # Threat scoring algorithm │ ├── enrichment_engine.py # VT/AbuseIPDB enrichment │ ├── ai_briefing_generator.py # Gemini AI briefings │ └── report_builder.py # Report generation ├── database/ │ ├── db_manager.py # SQLite database operations │ └── schema.sql # Database schema ├── data/ │ ├── demo/ # Demo IOC dataset │ └── logs/ # Simulated log files ├── static/ │ ├── script.js # Frontend JavaScript │ └── style.css # Styling └── templates/ └── index.html # Dashboard template ``` ## 安装说明 ### 前置条件 - Python 3.8 或更高版本 - pip 包管理器 ### 设置 1. **克隆仓库** git clone https://github.com/Ishaks03/threat_intel_platform.git cd threat_intel_platform 2. **创建虚拟环境** python -m venv venv source venv/bin/activate # Windows 上: venv\Scripts\activate 3. **安装依赖** pip install -r requirements.txt 4. **配置环境变量**(可选,用于完整功能) 在项目根目录下创建 `.env` 文件: # Google Gemini API 用于 AI 简报 GEMINI_API_KEY=your_gemini_api_key # VirusTotal API 用于 IOC 丰富化 VIRUSTOTAL_API_KEY=your_virustotal_api_key # AbuseIPDB API 用于 IP 信誉 ABUSEIPDB_API_KEY=your_abuseipdb_api_key # Flask 配置 FLASK_DEBUG=false 5. **运行应用程序** python app.py 6. **访问仪表板** 打开浏览器并导航至:`http://localhost:5000` ## API 端点 ### 仪表板 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/api/dashboard` | 获取仪表板统计数据 | | GET | `/api/health` | 健康检查 | | GET | `/api/config` | 平台配置状态 | ### IOC 管理 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/api/iocs` | 获取带过滤器的分页 IOC | | GET | `/api/iocs/` | 根据 ID 获取特定 IOC | | POST | `/api/iocs/search` | 根据值搜索 IOC | | POST | `/api/iocs/manual` | 添加手动 IOC | | POST | `/api/iocs//fp` | 将 IOC 标记为误报 | ### 威胁情报源 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/api/feeds/status` | 获取情报源状态 | | POST | `/api/feeds/refresh` | 刷新威胁情报源 | ### 关联 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/api/correlations` | 获取关联结果 | | POST | `/api/correlate` | 运行手动关联 | | POST | `/api/correlations//reviewed` | 将关联标记为已审核 | ### 丰富化 | 方法 | 端点 | 描述 | |--------|----------|-------------| | POST | `/api/enrich` | 使用外部数据丰富 IOC | | GET | `/api/enrich/status` | 获取丰富化统计数据 | ### AI 简报 | 方法 | 端点 | 描述 | |--------|----------|-------------| | POST | `/api/briefing/daily` | 生成每日威胁简报 | | POST | `/api/briefing/ioc` | 生成 IOC 调查报告 | ### 导出与报告 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/api/export/csv` | 导出 IOC 为 CSV | | GET | `/api/export/txt` | 导出 IOC 值为文本 | | GET | `/api/reports` | 列出所有报告 | | GET | `/api/reports/` | 获取特定报告 | ### 演示 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/api/demo/load` | 加载演示数据集 | | GET | `/api/demo/reset` | 重置并重新加载演示数据 | ## 数据库架构 该平台使用 SQLite,包含以下表: - **iocs**:存储所有入侵指标 - **correlations**:IOC 与日志条目之间的匹配 - **feed_status**:跟踪威胁情报源健康状况 - **reports**:生成的关联和简报报告 ## 使用示例 ### 加载演示数据 ``` curl http://localhost:5000/api/demo/load ``` ### 搜索 IOC ``` curl -X POST http://localhost:5000/api/iocs/search \ -H "Content-Type: application/json" \ -d '{"value": "192.168.1.100"}' ``` ### 添加手动 IOC ``` curl -X POST http://localhost:5000/api/iocs/manual \ -H "Content-Type: application/json" \ -d '{ "ioc_value": "malicious-domain.xyz", "ioc_type": "domain", "threat_type": "phishing", "severity": "High" }' ``` ### 运行关联 ``` curl -X POST http://localhost:5000/api/correlate ``` ### 生成每日简报 ``` curl -X POST http://localhost:5000/api/briefing/daily ``` ## 威胁评分算法 该平台使用复杂的评分算法(0-100 分制): | 因素 | 分数 | |--------|--------| | 基础置信度 | 0-50 | | C2/勒索软件威胁 | +25 | | 网络钓鱼/恶意软件威胁 | +20 | | 高可靠性情报源 | +5 | | 检测到可疑端口 | +10 | | 非常近期的 IOC (<24h) | +10 | | 已知危险恶意软件家族 | +10-20 | | 低置信度扣分 | -5 | **威胁级别映射:** - **CRITICAL**:90-100 - **HIGH**:70-89 - **MEDIUM**:50-69 - **LOW**:30-49 - **INFORMATIONAL**:0-29 ## 许可证 本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - [URLhaus](https://urlhaus.abuse.ch/) - 恶意 URL 数据库 - [ThreatFox](https://threatfox.abuse.ch/) - IOC 共享平台 - [Feodo Tracker](https://feodotracker.abuse.ch/) - 僵尸网络 C2 跟踪 - [MalwareBazaar](https://bazaar.abuse.ch/) - 恶意软件样本共享 - [VirusTotal](https://www.virustotal.com/) - 文件和 URL 分析 - [AbuseIPDB](https://www.abuseipdb.com/) - IP 信誉数据库 - [Google Gemini](https://ai.google.dev/) - AI 驱动简报 **为网络安全社区用 ❤️ 构建**
标签:AbuseIPDB, AI 赋能安全, Ask搜索, CISA项目, CSV导出, Feodo Tracker, Flask, HTTP/HTTPS抓包, IOC, IOC 管理, IOC 验证, IP 地址批量处理, MalwareBazaar, masscan, Python, ThreatFox, URLhaus, VirusTotal, 互联网扫描, 可视化仪表盘, 多模态安全, 威胁情报, 威胁情报分析, 威胁情报平台, 威胁简报, 威胁评分, 安全报告, 安全运营, 开发者工具, 开源安全工具, 态势感知, 扫描框架, 数据可视化, 数据聚合, 无后门, 日志关联, 网络威胁检测, 网络安全, 网络调试, 自动化, 虚假阳性管理, 逆向工具, 逆向工程平台, 隐私保护