folaadelaja/Threat-Intelligence

GitHub: folaadelaja/Threat-Intelligence

一个聚合多源威胁情报的可视化仪表盘平台,实现 IOC 跨源查询、威胁行为者追踪和实时告警展示。

Stars: 0 | Forks: 0

# 🛡️ SecIntel-Hub — 威胁情报仪表盘 ![Build](https://img.shields.io/github/actions/workflow/status/YOUR_ORG/secintel-hub/deploy.yml?branch=main&label=CI%2FCD&style=flat-square) ![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square) ![Python](https://img.shields.io/badge/python-3.12-3776AB?style=flat-square&logo=python) ![React](https://img.shields.io/badge/react-18-61DAFB?style=flat-square&logo=react) ![Docker](https://img.shields.io/badge/docker-compose-2496ED?style=flat-square&logo=docker) ## ✨ 功能特性 | 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, 云安全架构, 全栈安全, 后端开发, 域名收集, 威胁情报, 威胁行为者, 安全仪表盘, 安全可视化, 安全运营, 安全防御评估, 密码管理, 开发者工具, 态势感知, 扫描框架, 指标查询, 搜索引擎查询, 无后门, 测试用例, 网络安全, 请求拦截, 逆向工具, 隐私保护