AyyyStew/ThreatAggregator
GitHub: AyyyStew/ThreatAggregator
一个基于 FastAPI 的轻量级自托管威胁情报聚合 API,自动采集多源 IoC 并提供查询接口,支持与 Windows 防火墙联动实现自动阻断。
Stars: 0 | Forks: 0
# 威胁聚合器
一个自托管的威胁情报 API,聚合来自 Emerging Threats、FeodoTracker 和 URLhaus 的入侵指标 —— 容器化、持续部署,并在裸金属 HomeLab 基础设施上运行。
**Docker Hub:** `docker pull ayyystew/threat-aggregator:latest`
## 基础设施概览
本项目拥有端到端的部署生命周期所有权:
- **自托管 GitHub Actions runner** 运行在 Proxmox VM 上,负责接收 push 事件、运行测试、构建镜像并部署 —— 不涉及 GitHub 管理的计算资源
- **Docker** 对应用进行容器化;每次构建成功后,镜像都会发布到 Docker Hub
- **Proxmox VM** 托管 runner 和运行中的容器,在本地硬件上独立管理
- **卷挂载 SQLite** 在容器重启期间持久化数据,无需外部数据库基础设施
推送到 main 分支 → 测试通过 → 镜像构建 → 推送到 Docker Hub → 通过 SSH 部署到 Proxmox → 容器使用新镜像重启。全自动化。
## CI/CD 流水线
```
GitHub push
→ Self-hosted runner (Proxmox VM) picks up job
├── pytest — unit tests must pass
├── docker build — image built from Dockerfile
├── docker push → Docker Hub (ayyystew/threat-aggregator)
└── SSH deploy → pull latest image, restart container on VM
```
Runner 在 Proxmox VM 上注册为 GitHub Actions 自托管 runner。密钥(Docker Hub 凭据、SSH 密钥)通过 GitHub Actions secrets 管理。
## 应用程序
FastAPI 服务,按计划获取 IoC feeds,将其标准化并存储在 SQLite 中,同时暴露 REST API 以支持按日期范围查询。
**技术栈:** Python 3.8+ · FastAPI · SQLite · Docker · Pytest · Proxmox
**数据源:** Emerging Threats · FeodoTracker · URLhaus
### API 端点
| Method | Route | Description |
|---|---|---|
| GET | `/` | 状态和系统信息 |
| GET | `/view?start_date=YYYY-MM-DD` | 按日期查询 IoC |
| GET | `/download` | 下载完整数据集 (JSON) |
### 数据模式
```
id: UUID4
ipv4: str | None
url: str | None
date: datetime
source: str
original_data: Json | None
abuseIPDBData: Json | None
```
## 部署
### 从 Docker Hub 运行(最快)
```
docker run -d --name threat-aggregator \
-p 80:80 \
-v /data/:/code/app/data \
ayyystew/threat-aggregator:latest
```
### 本地构建并运行
```
git clone https://github.com/AyyyStew/ThreatAggregator
cd ThreatAggregator
docker build -t threat-aggregator .
docker run -d -p 80:80 -v ${pwd}/data:/code/app/data threat-aggregator
```
### 自动化设置
```
.\setup.ps1 # initial setup
.\start_container.ps1 # start container
```
## Windows 防火墙集成
`automateAddingToWindowsFirewall.ps1` 脚本会查询 API 并自动将恶意 IP 作为阻止规则写入 Windows Defender 防火墙,这些规则归类在 `AutoBlockedIPs` 下以便于管理。可以通过 Task Scheduler 计划任务实现持续执行。
## 运行测试
```
pytest
```
## 架构图
### 应用程序

### 基础设施

## 可能的改进
- 用于 API 访问的 OAuth 认证
- 用于 IoC 可视化的 Grafana 仪表板
- 更多威胁源集成
- 计划性的 AbuseIPDB 丰富化任务
标签:AV绕过, Docker, Emerging Threats, FastAPI, FeodoTracker, GitHub Actions, Homelab, IOC 收集, Proxmox, Python, REST API, SQLite, URLhaus, 威胁情报源, 威胁情报聚合, 安全规则引擎, 安全防御评估, 开源安全工具, 指标 compromised, 无后门, 网络安全, 自动笔记, 自托管, 请求拦截, 逆向工具, 逆向工程平台, 隐私保护