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, 后端开发, 响应自动化, 威胁情报, 安全大屏, 安全编排与自动化, 密码管理, 开发者工具, 情报收集, 插件系统, 数字取证与事件响应, 无后门, 无线安全, 漏洞研究, 漏洞管理, 网络安全, 脆弱性评估, 逆向工具, 隐私保护