BUVKAUSHIK/Threat_Feed_Aggregate
GitHub: BUVKAUSHIK/Threat_Feed_Aggregate
这是一个基于Flask的威胁情报聚合应用,通过集中展示来自AbuseIPDB和URLHaus的IOCs数据,帮助安全团队快速监控恶意IP和URL。
Stars: 1 | Forks: 0
# 威胁情报聚合器




## 目录
- [概述](#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, 数据聚合, 无后门, 网络安全, 逆向工具, 隐私保护