Dharshankumar988/PhantomGrid

GitHub: Dharshankumar988/PhantomGrid

一个聚合多源威胁情报的实时分析仪表板,通过统一界面和自建评分引擎,帮助安全团队快速评估IP、域名和URL的风险等级。

Stars: 0 | Forks: 0

# PhantomGrid 🛡️⚡ 一个基于 **FastAPI** 构建的未来感全栈网络安全仪表板,利用多源威胁情报分析 IP、域名和 URL。 ![Python](https://img.shields.io/badge/Python-3.11-blue) ![FastAPI](https://img.shields.io/badge/FastAPI-API-green) ![Vercel](https://img.shields.io/badge/Deploy-Vercel-black) ## ✨ 功能 - 🔎 分析 **IP 地址**、**域名** 或 **完整 URL** - 🧠 聚合来自以下来源的威胁情报: - AbuseIPDB - VirusTotal - AlienVault OTX - IP Geolocation API - 📊 统一评分引擎: - 风险评分 (0-100) - 置信度评分 (0-100) - 风险等级:LOW / MEDIUM / HIGH - 🏷️ 威胁类别提取(Spam, Botnet, Malware, Phishing) - 🗺️ 支持全屏模式的交互式威胁地图 - 💾 扫描历史记录存储于 Supabase - ⚡ 异步调用 + 内存缓存 ## 🧱 技术栈 - **Backend:** FastAPI, Uvicorn - **Frontend:** HTML, Tailwind CSS, JavaScript, Leaflet - **Database:** Supabase (PostgreSQL) - **Libraries:** httpx, python-dotenv, supabase-py, pydantic ## 📁 项目结构 ``` threat-dashboard/ ├── main.py ├── config.py ├── .env ├── .env.example ├── requirements.txt ├── vercel.json ├── README.md ├── /api │ └── routes.py ├── /services │ ├── abuseipdb.py │ ├── virustotal.py │ ├── otx.py │ └── geo.py ├── /utils │ ├── scorer.py │ ├── categorizer.py │ ├── confidence.py │ └── summary.py ├── /models │ └── schemas.py ├── /templates │ └── index.html ├── /static │ ├── script.js │ └── style.css └── /supabase └── scan_history.sql ``` ## 🚀 本地设置 ### 1) 克隆仓库 ``` git clone https://github.com/Dharshankumar988/PhantomGrid.git cd PhantomGrid/threat-dashboard ``` ### 2) 创建虚拟环境 ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 ``` ### 3) 安装依赖 ``` python -m pip install -r requirements.txt ``` ### 4) 配置环境变量 将 `.env.example` 复制为 `.env` 并填写实际值: ``` ABUSE_API_KEY=your_abuseipdb_api_key VT_API_KEY=your_virustotal_api_key OTX_API_KEY=your_otx_api_key SUPABASE_URL=https://your-project-ref.supabase.co SUPABASE_KEY=your_supabase_anon_key ``` ### 5) 创建 Supabase 表 在 Supabase SQL Editor 中运行 `supabase/scan_history.sql` 中的 SQL。 ### 6) 运行应用 ``` python -m uvicorn main:app --reload ``` 打开:`http://127.0.0.1:8000` ## ☁️ 部署到 Vercel 本项目已通过 `vercel.json` 配置好。 ### 1) 安装 Vercel CLI ``` npm i -g vercel ``` ### 2) 登录 ``` vercel login ``` ### 3) 从项目文件夹部署 ``` cd threat-dashboard vercel ``` ### 4) 在 Vercel 中添加环境变量 在 Vercel Dashboard -> Project -> Settings -> Environment Variables 中添加: - `ABUSE_API_KEY` - `VT_API_KEY` - `OTX_API_KEY` - `SUPABASE_URL` - `SUPABASE_KEY` ### 5) 生产部署 ``` vercel --prod ``` ## 🔐 在 Vercel 中应填写哪些 API Keys? 填写以下确切的密钥(名称必须匹配): 1. `ABUSE_API_KEY` -> 来自 AbuseIPDB 账户 API 页面 2. `VT_API_KEY` -> 来自 VirusTotal 个人资料/API 密钥页面 3. `OTX_API_KEY` -> 来自 AlienVault OTX 账户设置 4. `SUPABASE_URL` -> 来自 Supabase 项目 API 设置 5. `SUPABASE_KEY` -> Supabase **anon public key**(不是 service_role key) ## 🧪 API 用法 ### 分析端点 `POST /analyze` 请求: ``` { "target": "https://example.com/login" } ``` 响应格式: ``` { "target": "example.com", "risk_score": 0, "confidence_score": 0, "risk_level": "LOW | MEDIUM | HIGH", "threat_categories": [], "detection": { "malicious": 0, "total_engines": 0 }, "geolocation": { "country": "", "city": "", "isp": "", "latitude": 0, "longitude": 0 }, "summary": "" } ``` ## 🛠️ 故障排除 - 如果地图在展开/折叠后无法正确渲染,请运行另一次扫描或调整窗口大小。 - 如果历史记录未保存,请验证 Supabase 表是否存在以及环境变量设置是否正确。 - 如果本地安装失败,请确保您处于已激活的虚拟环境中。 ## 📜 许可证 MIT License ## 🙌 致谢 由 Dharshan 构建,具备 SOC 风格仪表板的设计愿景。
标签:AbuseIPDB, Ask搜索, AV绕过, FastAPI, HTTP/HTTPS抓包, IP信誉分析, Leaflet, PhantomGrid, Python, Supabase, Tailwind CSS, VirusTotal, 交互式地图, 仪表盘, 僵尸网络, 域名安全检测, 威胁情报, 威胁评分, 安全API聚合, 开发者工具, 态势感知, 恶意活动可视化, 数据可视化, 无后门, 测试用例, 网络安全, 逆向工具, 钓鱼检测, 防御性安全, 隐私保护, 风险分析