OSINT 威胁情报仪表板:一个3D地球仪和实时信息流,展示来自 AbuseIPDB 和 OpenPhish 等公开来源的恶意基础设施。
https://github.com/user-attachments/assets/e4f6a4fa-6ff4-4ad1-8e5c-5b50ce6ad722
DarkGrid 在全球范围内可视化可疑的互联网基础设施:
重点是基础设施的态势感知,而非个人。
backend/ – FastAPI + SQLite OSINT API
/api/indicators/latest – 信息流的最新指标/api/map – 地球仪按国家分桶frontend/ – Next.js 16 应用 (DarkGrid UI)
src/app/page.tsx – 主仪表板布局src/components/ThreatGlobeViewer.tsx – 3D 地球仪src/hooks/useThreatDataPolling.ts – 轮询威胁 APIdocker-compose.yml – 本地堆栈 (后端 + 前端)在此目录下创建 .env 文件(与 docker-compose.yml 同一文件夹):
copy .env.example .env
编辑 .env 并设置:
ABUSEIPDB_API_KEY – 从 https://www.abuseipdb.com/ 获取免费密钥。启动堆栈:
docker-compose up -d
或在前台运行以查看日志:
docker-compose up
打开 UI 和 API:
http://localhost:3000http://localhost:8000http://localhost:8000/health代码更改后重新构建:
docker-compose up -d --build
数据库: SQLite,在首次后端启动时自动创建。
backend_data 卷的 /app/data/threat_intel.db。backend/data/threat_intel.db。收集器(启动时运行,之后每15分钟运行一次):
AbuseIPDB(需要 ABUSEIPDB_API_KEY):
type=ip, source=abuseipdb 指标,包含 geo.country。OpenPhish(无需密钥):
type=url, source=openphish 指标(无地理位置)。地球仪/信息流为空时的故障排除:
.env,确保 ABUSEIPDB_API_KEY 已设置且有效。要求:
cd backend
python -m venv .venv
.venv\Scripts\activate # 在 Windows 上
pip install -r requirements.txt
python main.py # 运行在 http://localhost:8000
确保根目录的 .env 中包含 ABUSEIPDB_API_KEY 以进行数据摄取。
cd frontend
npm install
创建 frontend/.env.local(仅用于本地开发):
NEXT_PUBLIC_THREAT_API_URL=http://localhost:8000
然后运行:
npm run dev
打开 http://localhost:3000。
本项目正在开发中,代表了 DarkGrid 威胁情报仪表板的粗糙MVP。随着后端、收集器和 UI 的完善,预计会有重大更改。
计划中的未来阶段包括:
docker-compose up -d。