Sharath-Prabhakar/ip-threat-radar
GitHub: Sharath-Prabhakar/ip-threat-radar
一个基于 FastAPI 的威胁情报仪表盘,将多个情报源的 IP 和域名信誉数据聚合为综合风险评分并提供可视化与报告导出。
Stars: 0 | Forks: 0
# IP Threat Radar
一个基于 FastAPI 的威胁情报仪表盘,将来自多个提供商的 IP 和域名信誉数据汇总为一个综合风险评分,并提供 MITRE ATT&CK 映射和 PDF 报告导出功能。
## 功能
- 自动检测 IP 与域名
- 跨所有提供商并行执行威胁情报查询
- 综合风险评分和判定结果(Clean / Low / Medium / High / Critical)
- MITRE ATT&CK 技术映射
- 检测分布和威胁时间轴图表(Plotly)
- 相关指标表格
- 实时威胁地图
- 一键导出完整 PDF 报告
- 响应式 SOC 风格的 Web 界面
- 交互式 OpenAPI 文档
## 情报来源
| 提供商 | IP | 域名 |
|---|---|---|
| AbuseIPDB | 是 | 否 |
| VirusTotal | 是 | 是 |
| AlienVault OTX | 是 | 是 |
| GreyNoise | 是 | 否 |
| urlscan.io | 是 | 是 |
## 技术栈
- Python
- FastAPI
- HTTPX
- Plotly.js
- html2canvas + jsPDF
- HTML、CSS 和 JavaScript
## 项目结构
```
ip-threat-radar/
├── backend/
│ ├── main.py # FastAPI app, exposes /api/v1/scan
│ └── services.py # Threat intel provider integrations
├── frontend/
│ ├── dashboard.html
│ ├── dashboard.js
│ └── style.css
├── venv/
├── .env
├── .env.example
├── .gitignore
├── requirements.txt
├── LICENSE
└── README.md
```
## 本地安装
克隆仓库:
```
git clone https://github.com//ip-threat-radar.git
cd ip-threat-radar
```
创建并激活虚拟环境:
```
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
```
安装依赖:
```
pip install -r requirements.txt
```
创建环境文件:
```
cp .env.example .env
```
将你的 API 密钥添加到 `.env` 中:
```
ABUSEIPDB_API_KEY=
VIRUSTOTAL_API_KEY=
OTX_API_KEY=
GREYNOISE_API_KEY=
URLSCAN_API_KEY=
```
在此处获取各个提供商的密钥:
| 来源 | 获取密钥 |
|---|---|
| AbuseIPDB | https://www.abuseipdb.com/register (Account → API) |
| VirusTotal | https://www.virustotal.com/gui/join-us (密钥位于个人资料页) |
| AlienVault OTX | https://otx.alienvault.com (密钥位于 OTX dashboard) |
| GreyNoise | https://viz.greynoise.io (注册可免费获取 Community API 密钥) |
| urlscan.io | https://urlscan.io/user/signup (密钥位于个人资料页) |
启动后端:
```
cd backend
uvicorn main:app --reload
```
打开:
```
http://127.0.0.1:8000/docs
```
然后在浏览器中打开 `frontend/dashboard.html`(或使用任何静态服务器为其提供服务)。
## API 端点
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | `/` | 健康检查 |
| GET | `/api/v1/scan?target=` | 跨所有提供商运行全面扫描 |
| GET | `/docs` | Swagger API 文档 |
示例请求:
```
curl "http://127.0.0.1:8000/api/v1/scan?target=8.8.8.8"
```
## 安全
- API 密钥通过 `.env` 从环境变量加载,绝不硬编码。
- 私有的 `.env` 文件通过 `.gitignore` 排除在 Git 之外。
- CORS 完全开放(`allow_origins=["*"]`)以方便本地开发——在公开发布前请对其进行限制。
## 免责声明
本项目仅供防御性安全研究和授权的威胁情报分析使用。第三方 API 的使用受各提供商的条款和速率限制约束。
## 作者
**Sharath Prabhakar**
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
标签:AV绕过, FastAPI, Python, 多模态安全, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数据可视化, 无后门, 逆向工具