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 ``` ## 架构图 ### 应用程序 ![High level architecture](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9674467356165836.png) ### 基础设施 ![CI/CD pipeline](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/90d370cc4d165837.png) ## 可能的改进 - 用于 API 访问的 OAuth 认证 - 用于 IoC 可视化的 Grafana 仪表板 - 更多威胁源集成 - 计划性的 AbuseIPDB 丰富化任务
标签:AV绕过, Docker, Emerging Threats, FastAPI, FeodoTracker, GitHub Actions, Homelab, IOC 收集, Proxmox, Python, REST API, SQLite, URLhaus, 威胁情报源, 威胁情报聚合, 安全规则引擎, 安全防御评估, 开源安全工具, 指标 compromised, 无后门, 网络安全, 自动笔记, 自托管, 请求拦截, 逆向工具, 逆向工程平台, 隐私保护