folaadelaja/Threat-Intelligence
GitHub: folaadelaja/Threat-Intelligence
一个聚合多源威胁情报的可视化仪表盘平台,实现 IOC 跨源查询、威胁行为者追踪和实时告警展示。
Stars: 0 | Forks: 0
# 🛡️ SecIntel-Hub — 威胁情报仪表盘





## ✨ 功能特性
| Feature | Description |
|---|---|
| **仪表盘** | 实时威胁概览 — 严重程度分布、IOC 分类统计、活动动态 |
| **威胁行为者** | 可展开的档案,包含 TTPs、攻击目标及 MITRE ATT&CK 技术 |
| **IOC 浏览器** | 可过滤的指标表格,支持复制、地理位置和置信度评分 |
| **IOC 查询** | 实时跨源指标查询 |
| **威胁警报** | 活跃的安全通报,包含 MITRE 技术、受影响行业及 TLP 标记 |
| **情报源** | 情报源管理,包含 IOC 计数和同步状态 |
## 🏗️ 架构
```
graph TB
subgraph Client["🖥️ Browser"]
UI["React + Vite + Tailwind\n(Cyber Dashboard UI)"]
end
subgraph Docker["🐳 Docker Compose Network"]
direction TB
subgraph Frontend["frontend container"]
NGINX["Nginx\n:80 / :3000"]
end
subgraph Backend["backend container"]
API["FastAPI\n:8000"]
subgraph Routers
R1["/api/threats"]
R2["/api/iocs"]
R3["/api/feeds"]
R4["/api/stats"]
end
end
subgraph Data["Data Layer"]
PG[("PostgreSQL\n:5432")]
RD[("Redis Cache\n:6379")]
end
end
subgraph External["🌐 External Intel Sources"]
VT["VirusTotal API"]
OTX["AlienVault OTX"]
ABDB["AbuseIPDB"]
SHD["Shodan"]
MISP["MISP Instance"]
CISA["CISA KEV Catalog"]
end
UI -->|"HTTP /api/*"| NGINX
NGINX -->|"proxy_pass"| API
API --- Routers
API --> PG
API --> RD
API -->|"httpx async"| VT
API -->|"httpx async"| OTX
API -->|"httpx async"| ABDB
API -->|"httpx async"| SHD
API -->|"httpx async"| MISP
API -->|"httpx async"| CISA
```
## 🚀 快速开始
### 前置条件
- [Docker Desktop](https://www.docker.com/products/docker-desktop/) (或 Docker + Docker Compose)
- Git
### 1. 克隆仓库
```
git clone https://github.com/YOUR_ORG/secintel-hub.git
cd secintel-hub
git checkout feature/threat-intel-dashboard
```
### 2. 配置环境
```
cp .env.example .env
```
打开 `.env` 并填入你的 API 密钥 (见下方 [API 密钥设置](#-api-key-setup))。
### 3. 使用 Docker Compose 启动
**生产环境构建** (经 Nginx 优化的前端):
```
docker compose up --build
```
**开发模式** (通过 Vite 实现 React 热重载):
```
docker compose --profile dev up --build
```
| Service | URL |
|---|---|
| Frontend (prod) | http://localhost:3000 |
| Frontend (dev) | http://localhost:5173 |
| Backend API | http://localhost:8000 |
| API Docs (Swagger) | http://localhost:8000/api/docs |
| API Docs (Redoc) | http://localhost:8000/api/redoc |
## 🔑 API 密钥设置
所有凭证均通过环境变量注入。**切勿将 `.env` 提交到版本控制** — 它已列入 `.gitignore`。
| Variable | Source | Notes |
|---|---|---|
| `VIRUSTOTAL_API_KEY` | [virustotal.com/gui/my-apikey](https://www.virustotal.com/gui/my-apikey) | 免费层: 500 次/天 |
| `ALIENVAULT_OTX_KEY` | [otx.alienvault.com/api](https://otx.alienvault.com/api) | 免费社区账户 |
| `ABUSEIPDB_API_KEY` | [abuseipdb.com/api](https://www.abuseipdb.com/api) | 提供免费层 |
| `SHODAN_API_KEY` | [account.shodan.io](https://account.shodan.io) | 免费会员密钥 |
| `MISP_URL` | 自托管 | 你的 MISP 实例基础 URL |
| `MISP_API_KEY` | 自托管 | 来自 MISP UI 的自动化密钥 |
## 📁 项目结构
```
secintel-hub/
├── .github/
│ └── workflows/
│ └── deploy.yml # CI/CD pipeline (GitHub Actions)
│
├── backend/
│ ├── app/
│ │ ├── core/
│ │ │ └── config.py # Pydantic settings (reads .env)
│ │ ├── models/
│ │ │ └── schemas.py # Pydantic data models
│ │ ├── routers/
│ │ │ ├── threats.py # Threat actor & alert endpoints
│ │ │ ├── iocs.py # IOC CRUD & lookup endpoints
│ │ │ ├── feeds.py # Feed management endpoints
│ │ │ └── stats.py # Dashboard statistics endpoints
│ │ ├── services/
│ │ │ └── threat_intel.py # Intel aggregation service layer
│ │ └── main.py # FastAPI app entry point
│ ├── Dockerfile
│ └── requirements.txt
│
├── frontend/
│ ├── src/
│ │ ├── components/ # Shared UI components
│ │ ├── pages/ # Route-level page components
│ │ ├── utils/
│ │ │ └── api.ts # Axios API client
│ │ ├── App.tsx # Router & layout
│ │ ├── main.tsx # React entry point
│ │ └── index.css # Global styles (Tailwind + cyber theme)
│ ├── Dockerfile
│ ├── nginx.conf
│ └── package.json
│
├── docker-compose.yml # Orchestration (backend, frontend, postgres, redis)
├── .env.example # Template — copy to .env
├── .gitignore
├── CLAUDE.md # AI development guidance
└── README.md
```
## 🔌 API 参考
| Method | Endpoint | Description |
|---|---|---|
| `GET` | `/api/health` | 健康检查 |
| `GET` | `/api/stats/dashboard` | 聚合的仪表盘统计数据 |
| `GET` | `/api/threats/actors` | 列出威胁行为者 (按 `severity` 过滤) |
| `GET` | `/api/threats/actors/{id}` | 获取特定行为者档案 |
| `GET` | `/api/threats/alerts` | 活跃威胁警报 |
| `GET` | `/api/iocs/` | 列出 IOCs (按 `type`, `severity` 过滤) |
| `GET` | `/api/iocs/lookup?value=...` | 跨源 IOC 查询 |
| `GET` | `/api/feeds/` | 列出已配置的情报源 |
完整交互式文档: `http://localhost:8000/api/docs`
## 🚢 部署
CI/CD 流水线 (`.github/workflows/deploy.yml`) 会在每次合并到 `main` 分支时构建 Docker 镜像并推送到 GitHub Container Registry。
要启用云端部署,请在工作流中取消注释你提供商的部分,并添加必要的仓库 secrets:
### DigitalOcean App Platform
```
Secrets: DIGITALOCEAN_ACCESS_TOKEN, DO_APP_ID
```
### AWS ECS
```
Secrets: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
```
## 🛠️ 开发
```
# 运行 backend 测试
cd backend && pytest tests/ -v
# 运行 frontend 类型检查
cd frontend && npx tsc --noEmit
# 格式化 backend
pip install ruff && ruff format backend/app/
# Lint frontend
cd frontend && npm run lint
```
## 📄 许可证
MIT — 详情见 [LICENSE](LICENSE)。
标签:AbuseIPDB, Ask搜索, AV绕过, CISA项目, Cloudflare, Docker, FastAPI, HTTP/HTTPS抓包, IOC 管理, IP 地址批量处理, MITRE ATT&CK, PostgreSQL, Python, React, Redis, SecOps, Syscalls, TTP 分析, VirusTotal, 云安全架构, 全栈安全, 后端开发, 域名收集, 威胁情报, 威胁行为者, 安全仪表盘, 安全可视化, 安全运营, 安全防御评估, 密码管理, 开发者工具, 态势感知, 扫描框架, 指标查询, 搜索引擎查询, 无后门, 测试用例, 网络安全, 请求拦截, 逆向工具, 隐私保护