BUVKAUSHIK/Threat_Feed_Aggregate

GitHub: BUVKAUSHIK/Threat_Feed_Aggregate

这是一个基于Flask的威胁情报聚合应用,通过集中展示来自AbuseIPDB和URLHaus的IOCs数据,帮助安全团队快速监控恶意IP和URL。

Stars: 1 | Forks: 0

# 威胁情报聚合器 ![状态](https://img.shields.io/badge/status-active-success) ![Python](https://img.shields.io/badge/python-3.x-blue) ![Flask](https://img.shields.io/badge/flask-2.x-green) ![许可证](https://img.shields.io/badge/license-MIT-blue) ## 目录 - [概述](#overview) - [架构图](#architecture-diagram) - [核心工作流程](#core-workflow) - [功能](#features) - [技术栈](#tech-stack) - [项目结构](#project-structure) - [入门指南](#getting-started) - [环境设置](#environment-setup) - [运行应用](#running-the-app) - [API 详情](#api-details) - [部署](#deployment) - [未来改进](#future-improvements) - [贡献](#contributing) - [许可证](#license) ## 概述 威胁情报对于安全团队至关重要,但数据分散在多个来源中。本项目将来自 **AbuseIPDB**(包含滥用评分的恶意 IP 地址)和 **URLHaus**(包含威胁分类的恶意 URL)的威胁情报源集中到一个易于阅读的仪表板中。 它为安全分析师提供了一个快速查看最危险 IP 和 URL 的视图,而无需访问多个平台。 ## 架构图 ``` +------------------+ +-------------------+ | AbuseIPDB API | | URLHaus Feed | | (Malicious IPs) | | (Malicious URLs) | +--------+---------+ +--------+----------+ | | | REST API with | Daily JSON dump | API Key auth | (HTTPS fetch) v v +------------------+ +-------------------+ | | | | | fetch_ips() | | fetch_urls() | | (app.py) | | (app.py) | | | | | +--------+---------+ +--------+----------+ | | +------------+-------------+ | v +---------------------------+ | Threat Feed Aggregator | | (Flask Server) | | port: 5000 | | | | / -> Dashboard | | /api/ip -> IP list | | /api/url -> URL list | +------------+------------+ | v +---------------------------+ | Jinja2 Templates | | (templates/index.html) | | HTML + CSS Dashboard UI | +---------------------------+ | v +---------------------------+ | User's Browser | | http://127.0.0.1:5000 | +---------------------------+ ``` ## 核心工作流程 ``` [User Request] | v Flask Server (port 5000) | +---> Fetch AbuseIPDB IPs | | | +---> POST /v3/checks/search | +---> Auth via API Key | +---> Extract top 20 IPs | +---> Fetch URLHaus URLs | | | +---> GET JSON dump | +---> Parse feed JSON | +---> Extract recent URLs | v Jinja2 Template Rendering | v [HTML Dashboard Displayed] ``` ## 功能 - **实时数据获取** — 使用您的 API 密钥,直接从 AbuseIPDB API 获取最新的恶意 IP。 - **URLHaus 情报源** — 从 URLHaus 拉取可靠的每日恶意 URL JSON 数据转储。 - **前 20 个黑名单 IP** — 显示最危险的 IP 地址,包含滥用评分、国家代码和 ISP 信息。 - **近期恶意 URL** — 显示近期检测到的恶意 URL,包含威胁类型分类和时间戳。 - **简洁的表格布局** — 简单的 HTML 前端,提供有组织的表格以便于数据扫描。 - **安全的 API 密钥存储** — 使用 `.env` 文件和 `dotenv` 将 API 密钥排除在源代码之外。 ## 技术栈 | 组件 | 技术 | | ---------- | ------------ | | 语言 | Python 3.x | | Web 框架 | Flask 2.x | | 模板引擎 | Jinja2 | | HTTP 客户端| `requests` 库| | 环境管理 | `python-dotenv` | | 前端 | HTML5 + CSS3 | | 部署 | 任意 WSGI 服务器 (Gunicorn) | ## 项目结构 ``` threat_feed_aggregate/ ├── app.py # Main Flask application ├── requirements.txt # Python dependencies ├── .env # Environment variables (API keys) ├── .gitignore └── templates/ └── index.html # Dashboard HTML template ``` ## 入门指南 ### 前置条件 - Python 3.8 或更高版本 - AbuseIPDB API 密钥(在 [abuseipdb.com](https://www.abuseipdb.com) 免费获取) - pip (Python 包管理器) ## 环境设置 1. **克隆仓库** ``` git clone https://github.com/BUVKAUSHIK/Threat_Feed_Aggregate.git cd Threat_Feed_Aggregate ``` 2. **创建并激活虚拟环境** ``` # Windows python -m venv venv venv\Scripts\activate # macOS/Linux python3 -m venv venv source venv/bin/activate ``` 3. **安装依赖** ``` pip install -r requirements.txt ``` 4. **配置环境变量** 在根目录创建一个 `.env` 文件: ``` ABUSE_API_KEY=your_actual_api_key_here ``` ## 运行应用 ``` python app.py ``` 运行后,打开浏览器并访问: **http://127.0.0.1:5000** ## API 详情 ### AbuseIPDB API - **端点:** `POST https://api.abuseipdb.com/api/v3/checks/search` - **认证:** 在请求头 `Key` 中放入您的 API 密钥 - **参数:** - `maxAgeInDays`:90 (默认,最近 90 天) - `limit`:20 (返回前 20 条结果) - `confidenceMinimum`:90 (仅返回高置信度评分) ### URLHaus 情报源 - **情报源 URL:** `https://urlhaus.abuse.ch/downloads/json/` - **方法:** GET 请求,无需认证 - **格式:** 包含 URL 条目、时间戳和威胁标签的 JSON 数据块 ## 部署 ### 本地测试 该应用设计用于本地开发。运行 `python app.py` 以启动 Flask 开发服务器。 ### 生产环境部署 1. **安装 Gunicorn:** ``` pip install gunicorn ``` 2. **使用 Gunicorn 运行:** ``` gunicorn -w 4 -b 0.0.0.0:5000 app:app ``` 3. **平台选项:** - **Heroku:** 使用标准的 Flask buildpack;添加包含 `web: gunicorn app:app` 内容的 `Procfile` 文件。 - **Railway/Render:** 连接 GitHub 仓库,并将 `ABUSE_API_KEY` 设置为环境变量。 - **AWS EC2:** 在 Nginx 后使用 Gunicorn 作为 WSGI 服务器进行部署。 ## 未来改进 - [ ] 将威胁数据导出为 CSV/JSON 格式 - [ ] 按国家或威胁类型筛选 IOC - [ ] 添加分页和搜索功能 - [ ] 集成额外的威胁情报源(AlienVault OTX, VirusTotal) - [ ] 通过邮件或 Slack webhook 添加实时警报 - [ ] 带有图表的仪表板分析(滥用评分分布、威胁类型细分) - [ ] 使用 Docker 容器化以便于部署 - [ ] 对 API 调用进行速率限制和缓存 ## 许可证 本项目根据 [MIT 许可证](LICENSE) 授权。

BUVKAUSHIK 用 ❤️ 构建

标签:AbuseIPDB, AMSI绕过, API集成, Flask, IOC可视化, Python, URLHaus, 二进制发布, 仪表板, 可观测性, 多模态安全, 威胁情报, 威胁检测, 实时数据, 开发者工具, 开源工具, 恶意IP, 恶意URL, 数据聚合, 无后门, 网络安全, 逆向工具, 隐私保护