pablonoliveira/ioc_analyzer
GitHub: pablonoliveira/ioc_analyzer
面向蓝队的 IoC 与 CVE 一体化分析平台,集成多源威胁情报查询、日志自动解析与可视化仪表盘,帮助安全团队高效完成威胁研判与漏洞跟踪。
Stars: 1 | Forks: 0
# IOC Analyzer - Blue Team 平台
这是一个为 **Blue Team**、**Threat Intelligence**、**DFIR** 和 **Resposta a Incidentes** 团队提供的用于分析和关联 **Indicadores de Comprometimento (IoCs)** 与 **Vulnerabilidades (CVEs)** 的完整平台。
## 概述
IOC Analyzer 通过基于 Flask 构建的 Web 界面,集中实现了 IoCs 和 CVEs 的查询、分类、存储和可视化,并为 dashboard、日志上传、IoCs 分析和漏洞搜索提供了专用面板。
该应用程序允许通过多个外部来源(如 AbuseIPDB、VirusTotal、NVD、CIRCL 和 CISA KEV)对数据进行富化,同时维护本地的 JSON 数据库以实现分析的持久化。
## 生产环境网站
该应用程序的已发布实例可在 [iocanalyzer-production.up.railway.app](https://iocanalyzer-production.up.railway.app) 访问。
### 主要 Endpoints
- Dashboard: [https://iocanalyzer-production.up.railway.app/](https://iocanalyzer-production.up.railway.app/)
- 日志上传: [https://iocanalyzer-production.up.railway.app/upload](https://iocanalyzer-production.up.railway.app/upload)[file:83]
- IOC Panel: [https://iocanalyzer-production.up.railway.app/ioc](https://iocanalyzer-production.up.railway.app/ioc)[file:83]
- CVE Panel: [https://iocanalyzer-production.up.railway.app/cve](https://iocanalyzer-production.up.railway.app/cve)[file:83]
## 功能
### 交互式 Dashboard
- IoCs 和 CVEs 的整合可视化。
- 实时统计。
- 使用 Chart.js 的交互式图表。
- 按类型和严重程度划分的 IoCs 分布。
- 关键威胁计数器。
### IoCs 管理
- 快速查询 IP、Domains、URLs 和 hashes。
- 使用本地 JSON 存储的 IoCs 基本 CRUD 操作。
- 按严重程度(`Critical`、`High`、`Medium`、`Low`)进行分类。
- 在 IoCs 面板中按类型和严重程度进行筛选。
- 查询外部来源,尤其是 AbuseIPDB 和 VirusTotal。
- 在可用时,可选显示查询哈希的 VirusTotal **signature info**。
- 针对 IP 的 AbuseIPDB 报告历史记录高级查询(受 API 配额限制)。
### CVEs 管理
- 在多个来源(NVD、CIRCL 和 CISA KEV)中搜索 CVEs。
- 按特定的 CVE ID 搜索。
- 自动收集过去 24 小时内的最新 CVEs。
- 当安装了 `deep-translato` 时,自动翻译为 PT-BR。
- 基于 CISA KEV 目录识别被主动利用的 CVEs。
- 本地存储和 CVEs 面板中的分页显示。
### 日志上传与解析
- 拖放上传。
- 后端支持 `.log`、`.txt`、`.csv`、`.xlsx` 和 `.json` 文件。
- 从日志中自动提取 IoCs。
- 在处理期间根据 IOC 类型和 API 可用性进行自动富化。
- 随后通过面板/应用程序的工作流保存到本地数据库。
### 界面与导航
- 在 Dashboard、Upload、IOC Panel 和 CVE Panel 之间保持一致的导航。
- 适配桌面端和移动端的响应式界面。
- 主表中的分页功能。
- 专为快速分析而设计的操作导向型布局。
## 新增功能与已应用的修复
### 版本 3.1.1
- IoCs 和 CVEs 的严重程度统一使用英文:`Low`、`Medium`、`High` 和 `Critical`。
- 在 IoCs 面板和 CVEs 面板中支持直接选择页码的分页功能。
- 对徽章、间距和页脚进行了视觉调整。
- 内部代码重构,未更改应用程序的公共 APIs。
### 项目中已反映的相关修复
- 在应用程序启动时使用 `load_dotenv()` 提前读取 `.env` 变量。
- 自动翻译功能已增加保护,防止 `deep-translato` 导入错误和翻译失败。
- 对空或损坏的 CVEs 数据库的处理。
- IoCs 面板中基于 query string 的筛选。
- 扩展了后端对上传文件扩展名的支持。
- 调整了 CVEs 和 IoCs 的排序与持久化。
## 项目结构
```
IOC_ANALYZER/
├── .venv314/
├── data/
│ ├── iocdatabase.json
│ └── cvedatabase.json
├── docs/
├── ioc/
│ ├── abuseipdb_client.py
│ ├── alienvault_client.py
│ ├── cisa_kev_client.py
│ ├── circl_cve_client.py
│ ├── nvd_cve_client.py
│ ├── url_checker.py
│ └── virustotal_client.py
├── parsers/
├── templates/
│ ├── dashboard.html
│ ├── upload.html
│ ├── ioc_panel.html
│ └── cve_panel.html
├── uploads/
├── utils/
├── .env
├── .gitignore
├── app.py
├── LICENSE
├── README.md
└── requirements.txt
```
## 安装
### 1. 克隆代码库
```
git clone https://github.com/pablonoliveira/ioc_analyzer.git
cd ioc_analyzer
```
### 2. 创建虚拟环境
```
python -m venv .venv
```
#### Windows
```
.\.venv\Scripts\activate
```
#### Linux/macOS
```
source .venv/bin/activate
```
### 3. 安装依赖项
```
pip install -r requirements.txt
```
## 配置
在项目根目录下创建一个 `.env` 文件:
```
ABUSEIPDB_API_KEY=sua_chave_aqui
VIRUSTOTAL_API_KEY=sua_chave_aqui
FLASK_DEBUG=False
FLASK_HOST=0.0.0.0
FLASK_PORT=5000
```
### 注意事项
- 外部 APIs 是可选的;如果没有它们,部分数据富化功能将受到限制。
- 自动翻译依赖于 `deep-translator==1.11.4`。
- 对于生产环境,请使用 `FLASK_DEBUG=False`。
## 本地运行
```
python app.py
```
预期输出:
```
============================================================
🛡️ IOC Analyzer - Blue Team Platform
============================================================
✅Servidor iniciado
📊Dashboard: http://localhost:5000
📤Upload: http://localhost:5000/upload
🔍IOC Panel: http://localhost:5000/ioc
🛡️CVE Panel: http://localhost:5000/cve
============================================================
```
## 访问
### 本地环境
- Dashboard: [http://localhost:5000](http://localhost:5000)
- Upload: [http://localhost:5000/upload](http://localhost:5000/upload)
- IOC Panel: [http://localhost:5000/ioc](http://localhost:5000/ioc)
- CVE Panel: [http://localhost:5000/cve](http://localhost:5000/cve)
### 生产环境
- Base URL: [https://iocanalyzer-production.up.railway.app](https://iocanalyzer-production.up.railway.app)
- 该应用程序已通过 Railway 发布,可供外部网络访问。
## 主要依赖项
- Flask
- python-dotenv
- pandas
- openpyxl
- requests
- waitress
- abuseipdb-wrapper==0.2.0
- virustotal-python==1.0.0
- deep-translator==1.11.4
## 支持的 APIs
| API | 描述 | 状态 |
|---|---|---|
| NVD | National Vulnerability Database | 已集成 |
| CIRCL | CVE Search | 已集成 |
| CISA KEV | Known Exploited Vulnerabilities | 已集成 |
| AbuseIPDB | IP 信誉 | 需要 API Key |
| VirusTotal | 哈希、IP、域和 URL 分析 | 需要 API KeY |
## 基本使用
### 1. Dashboard
访问 dashboard 以查看总数、按严重程度划分的分布以及 IoCs 和 CVEs 的综合视图。
### 2. 上传日志
1. 访问 `/upload`。
2. 上传受支持的文件以进行分析。
3. 等待提取 IoCs。
4. 查看界面中显示的已富化结果。
### 3. 管理 IoCs
1. 访问 `/ioc`。
2. 手动查询 IOC 或筛选本地数据库中的记录。
3. 保存、删除并查看由集成返回的分类。
### 4. 管理 CVEs
1. 访问 `/cve`。
2. 搜索特定的 CVE 或请求获取过去 24 小时内的 CVEs。
3. 保存结果并跟踪严重程度、CVSS 分数和主动利用指标。
## 安全
### 重要提示
- 请勿在没有附加安全控制的情况下在生产环境中公开该应用程序。
- 请勿在已发布的环境中保持 `debug=True`。
- 保护运行环境中的 API 密钥。
- 建议在适用时使用身份验证、反向代理和 HTTPS。
### 生产环境建议
- 使用 WSGI 服务器运行,例如 Gunicorn。
- 禁用 debug mode。
- 增加身份验证和访问控制。
- 实施 audit logs 和边界保护。
## 路线图
### v4.0 - 身份验证与安全
- 登录和密码系统。
- JWT 身份验证。
- 权限级别(`Admin`、`Analyst`、`Viewer`)。
- Audit logs。
### v4.1 - 高级集成
- 与 MISP 集成。
- 与 TheHive 集成。
- 支持 STIX/TAXII。
- 导出到 SIEM。
## 更新日志
### v2.0 - 2025/10/20
- 首个稳定版本发布。
### v2.1 - 2025/10/25
**新增功能**
- 所有页面中一致的导航。
- 可从任何页面访问的日志上传按钮。
- 现代化的界面。
- 自动搜索过去 24 小时内的 CVEs。
- 带有交互式 Chart.js 图表的 Dashboard。
**修复**
- 修正了 404 路由。
- 页面间的通信现已正常工作。
- 已更新 Endpoints。
### v2.2 - 2025/10/27
**修复**
- IoCs 和 CVEs 之间的关联。
- 搜索与 IoCs 相关的 CVEs。
- 搜索与 CVEs 相关的 IoCs。
- 关联 Dashboard。
### v2.3 - 2025/10/28
**修复**
- 加强了对关键字段的类型验证。
- 自动翻译功能已增加保护,防止类型错误和空值。
- 重复或无效的 CVEs 将不再保存到数据库中。
- 防止空或损坏的 JSON 文件。
- 添加了 debug logs 以方便诊断。
### v3.0 - 2025/11/20
**修复**
- 修复了 AbuseIPDB 历史记录的显示。
- 处理了后端中的列表和变量。
- 标准化了日期格式。
### v3.1.1 - 2025/12/31
- 改进了 IoCs 和 CVEs 严重程度的显示。
- 增加了支持直接选择页码的分页功能。
- 常规视觉调整。
- 内部重构,对公共 APIs 无影响。
### 部署更新
- 增加了在 Railway 上的生产环境公共 URL:[https://iocanalyzer-production.up.railway.app](https://iocanalyzer-production.up.railway.app)。
- 修订了文档以反映 Web 生产环境的访问和最低发布良好实践。
## 许可证
本项目采用 **GNU General Public License v3.0** 授权。
简而言之:
- 允许商业用途。
- 允许修改。
- 允许分发。
- 允许私人使用。
- 衍生作品必须强制使用 Copyleft。
- 在适用时必须提供源代码。
## 作者
**Pablo Nunes de Oliveira**
- GitHub: [pablonoliveira](https://github.com/pablonoliveira)
- LinkedIn: [Pablo Oliveira] (https://www.linkedin.com/in/pablonoliveirapro/?locale=en).
- Email: pabloliveir@gmail.com.
## 致谢
- Flask.
- Chart.js.
- NVD.
- CISA.
- CIRCL.
- VirusTotal
- AbuseIPDB
## 支持
如需支持,请在 GitHub 上开启一个 issue 或通过作者的渠道联系。
如果这个项目对您有帮助,请考虑给代码库点个 Star。
标签:Chart.js, CISA项目, CVE查询, EDR, Flask, GPT, IoC分析, IP 地址批量处理, Log分析, Python, 后端开发, 响应自动化, 威胁情报, 安全大屏, 安全编排与自动化, 密码管理, 开发者工具, 情报收集, 插件系统, 数字取证与事件响应, 无后门, 无线安全, 漏洞研究, 漏洞管理, 网络安全, 脆弱性评估, 逆向工具, 隐私保护