Ahlyx/security-enrichment-api

GitHub: Ahlyx/security-enrichment-api

一个基于 FastAPI 的威胁情报聚合服务,将 8 个主流安全平台的数据统一为标准化 JSON 响应,支持 IP、域名、URL 和文件哈希的多维度查询。

Stars: 0 | Forks: 0

# 安全情报富化 API 一个威胁情报聚合 API,将来自多个来源的 IP、域名、URL 和文件哈希数据富化为单一的标准化 JSON 响应。 ## 功能特性 - 聚合 8 个来源的威胁情报:AbuseIPDB、VirusTotal、IPinfo、AlienVault OTX、Google Safe Browsing、URLScan.io、MalwareBazaar 和 CIRCL HashLookup - 向所有来源发起并行请求以实现快速响应 - SQLite 缓存,基于来源成功率实现分层 TTL - 针对每个 IP 地址的 Rate limiting - 输入验证 —— 拒绝私有 IP,Bogon 检测,哈希类型自动检测 - 优雅降级 —— 如果某个来源失败,返回部分结果 - 前端仪表板,支持选项卡式搜索、实时颜色编码结果和查询历史 ## 技术栈 - **Python 3.12** / **FastAPI** - **httpx** 用于异步 HTTP 请求 - **asyncio.gather** 用于并行 API 调用 - **Pydantic** / **pydantic-settings** 用于响应 Schema 验证和配置 - **slowapi** 用于 Rate limiting - **SQLite** 用于缓存 - **dnspython** 用于 DNS 解析 ## 端点 | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/api/v1/ip/{address}` | IP 信誉、地理位置和威胁情报 | | GET | `/api/v1/domain/{name}` | 域名 WHOIS、DNS 记录、SSL/TLS 和信誉 | | GET | `/api/v1/url?url=...` | 跨 Safe Browsing、URLScan 和 VirusTotal 的 URL 安全检查 | | GET | `/api/v1/hash/{hash}` | 文件哈希查询 —— MD5、SHA1 或 SHA256 | | GET | `/health` | 健康检查 | | GET | `/docs` | 交互式 API 文档 | ## 响应示例 ``` { "query": "185.220.101.1", "query_type": "ip", "timestamp": "2026-03-07T09:14:15.013806Z", "sources": [ { "source": "abuseipdb", "success": true }, { "source": "ipinfo", "success": true }, { "source": "virustotal", "success": true }, { "source": "alienvault_otx", "success": false, "error": "Request timed out" } ], "ip": "185.220.101.1", "geolocation": { "country": "DE", "region": "State of Berlin", "city": "Berlin" }, "abuse": { "abuse_score": 100, "total_reports": 167, "isp": "Artikel10 e.V.", "is_tor": true }, "virustotal": { "malicious_votes": 15, "harmless_votes": 47, "suspicious_votes": 3 }, "is_bogon": false, "is_tor": true } ``` ## 设置 ### 前置条件 - Python 3.12+ - 以下服务的 API 密钥:AbuseIPDB、VirusTotal、IPinfo、AlienVault OTX、Google Safe Browsing、URLScan.io、MalwareBazaar - CIRCL HashLookup 无需 API 密钥 ### 安装 ``` git clone https://github.com/Ahlyx/security-enrichment-api.git cd security-enrichment-api python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 配置 ``` cp .env.example .env ``` 编辑 `.env` 并添加您的 API 密钥: ``` ABUSEIPDB_API_KEY=your_key_here VIRUSTOTAL_API_KEY=your_key_here IPINFO_API_KEY=your_key_here OTX_API_KEY=your_key_here GOOGLE_SAFE_BROWSING_API_KEY=your_key_here URLSCAN_API_KEY=your_key_here MALWAREBAZAAR_API_KEY=your_key_here ``` ### 运行 ``` uvicorn app.main:app --reload ``` 访问 `http://127.0.0.1:8000` 查看前端仪表板,或访问 `http://127.0.0.1:8000/docs` 查看交互式 API 文档。 ## 架构 ``` Request → Validate input → Check cache → Parallel API calls → Normalize → Cache result → Return ``` 每个外部服务都隔离在 `app/services/` 下各自的模块中。聚合器使用 `asyncio.gather()` 同时发起所有请求,并将结果合并为由 `app/models/` 中的 Pydantic 模型定义的统一响应 Schema。 ## 缓存 - 完全成功(所有来源) → 缓存 1 小时 - 部分成功 → 缓存 15 分钟 - 所有来源失败 → 不缓存
标签:API密钥检测, API聚合, AV绕过, DAST, DNS枚举, FastAPI, IP信誉查询, IP 地址批量处理, Python, SOC工具, SQLite缓存, URL扫描, Web安全, 域名安全, 威胁情报, 安全编排自动化响应, 开发者工具, 异步编程, 恶意软件分析, 数据富化, 文件哈希查询, 无后门, 沙箱检测, 漏洞发现, 网络安全工具, 蓝队分析, 计算机取证, 输入验证, 运行时操纵, 限流