viraj-ghelani/threat-intelligence-platform
GitHub: viraj-ghelani/threat-intelligence-platform
一款开源威胁情报平台,聚合多源 IOC 数据并进行富化、评分与 MITRE ATT&CK 映射,助力 SOC 团队高效开展威胁分析。
Stars: 0 | Forks: 0
**开源免费威胁情报平台,用于聚合、富化并评分来自多个来源的 IOC。**








Wiestell 是一个生产级的全栈威胁情报平台 (TIP),专为 SOC 分析师、威胁猎手和网络安全专业人员设计。它聚合来自 10 多个开源威胁源的入侵指标 (IOC),利用 WHOIS/DNS/GeoIP/Shodan 数据对其进行富化,使用加权算法计算综合威胁评分,将指标映射到 MITRE ATT&CK 框架,并通过由 Next.js 14 和 TypeScript 构建的战术深色主题 SOC 仪表板呈现所有内容。
## 功能特性
| 功能 | 状态 |
|---------|--------|
| 多源 IOC 接入 (10 个连接器) | 已实现 |
| 支持高级过滤的 IOC 搜索 | 已实现 |
| 综合威胁评分 (0-100) | 已实现 |
| IOC 富化 (WHOIS, DNS, GeoIP) | 已实现 |
| MITRE ATT&CK 热力图矩阵 | 已实现 |
| 带统计数据的实时仪表板 | 已实现 |
| Feed 健康监控 | 已实现 |
| IOC 关联关系分析 | 已实现 |
| 威胁猎杀工作区 | 已实现 |
| 报告生成 (每日简报 + 自定义) | 已实现 |
| STIX 2.1 / CSV / JSON 导出 | 已实现 |
| Celery 后台任务处理 | 已实现 |
| Docker 单命令部署 | 已实现 |
| 地理威胁分布 | 已实现 |
## 系统架构
```
FRONTEND (Next.js 14)
Dashboard | IOC Search | Feed Manager | Reports | ATT&CK Map
|
REST API
|
BACKEND (FastAPI)
Feed Ingestion | Enrichment Engine | Scoring | Correlation
| | | |
PostgreSQL Redis Cache Celery External
+ indexes + pub/sub Workers Threat Feeds
```
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| Frontend | Next.js 14, TypeScript, Tailwind CSS, Recharts, D3.js |
| Backend | FastAPI, Python 3.11, SQLAlchemy, Pydantic |
| Database | PostgreSQL 16 (含 JSONB 和 GIN 索引) |
| Cache | Redis 7 |
| Task Queue | Celery (使用 Redis 作为 broker) |
| Containerization | Docker + Docker Compose |
## 快速开始
```
# Clone the repository
git clone https://github.com/dev0558/wiestell-tip.git
cd wiestell-tip
# Copy environment file
cp .env.example .env
# Start all services
docker-compose up -d
# Seed feed sources
docker-compose exec backend python /app/../scripts/seed_feeds.py
# Load MITRE ATT&CK data
docker-compose exec backend python /app/../scripts/seed_mitre.py
# Generate sample data (optional, for demo)
docker-compose exec backend python /app/../scripts/generate_sample_data.py
```
访问应用:
- **仪表板**: http://localhost:3000
- **API 文档**: http://localhost:8000/docs
- **API ReDoc**: http://localhost:8000/redoc
## 环境变量
| 变量 | 描述 | 必填 |
|----------|-------------|----------|
| `DATABASE_URL` | PostgreSQL 连接字符串 | 是 |
| `REDIS_URL` | Redis 连接字符串 | 是 |
| `SECRET_KEY` | 应用密钥 | 是 |
| `OTX_API_KEY` | AlienVault OTX API 密钥 | 否 |
| `ABUSEIPDB_API_KEY` | AbuseIPDB API 密钥 | 否 |
| `VT_API_KEY` | VirusTotal API 密钥 | 否 |
| `SHODAN_API_KEY` | Shodan API 密钥 | 否 |
| `PHISHTANK_API_KEY` | PhishTank API 密钥 | 否 |
| `GEOIP_DB_PATH` | MaxMind GeoLite2 数据库路径 | 否 |
所有的 Feed API 密钥都是可选的。该平台支持 6 个无需 API 密钥的免费 Feed(URLhaus, ThreatFox, MalwareBazaar, Feodo Tracker, Blocklist.de, Emerging Threats)。
## API 文档
FastAPI 自动生成交互式 API 文档:
- **Swagger UI**: http://localhost:8000/docs
- **ReDoc**: http://localhost:8000/redoc
### 关键端点
```
GET /api/v1/iocs # List IOCs (paginated)
GET /api/v1/iocs/:id # IOC detail with enrichment
POST /api/v1/iocs/search # Advanced search
POST /api/v1/iocs/bulk # Bulk IOC lookup
POST /api/v1/iocs/export # Export (STIX/CSV/JSON)
GET /api/v1/feeds # List feeds
POST /api/v1/feeds/:id/sync # Trigger feed sync
GET /api/v1/dashboard/stats # Dashboard statistics
GET /api/v1/attack/matrix # ATT&CK matrix
GET /api/v1/attack/heatmap # ATT&CK heatmap
POST /api/v1/reports/generate # Generate report
GET /api/v1/reports/daily-brief # Daily threat brief
```
## 威胁源
| Feed | 类型 | 免费 | IOC 类型 |
|------|------|------|-----------|
| URLhaus | CSV | 是 (无需密钥) | URL, Domain |
| ThreatFox | API | 是 (无需密钥) | IP, Domain, URL, Hash |
| MalwareBazaar | API | 是 (无需密钥) | Hash |
| Feodo Tracker | CSV | 是 (无需密钥) | IP |
| Blocklist.de | CSV | 是 (无需密钥) | IP |
| Emerging Threats | CSV | 是 (无需密钥) | IP |
| AlienVault OTX | API | 是 (需 API 密钥) | IP, Domain, Hash, URL |
| AbuseIPDB | API | 是 (需 API 密钥) | IP |
| PhishTank | API | 是 (需 API 密钥) | URL |
| VirusTotal | API | 是 (需 API 密钥) | Hash, IP, Domain, URL |
## 评分算法
Wiestell 使用加权因子计算综合威胁评分 (0-100):
```
Score = Base Reputation (30%) + Source Diversity (20%) + Recency (15%)
+ Sighting Frequency (15%) + Enrichment Risk (10%) + Context (10%)
```
| 评分范围 | 类别 | 颜色 |
|-------------|----------|-------|
| 76-100 | 严重 | 红色 |
| 51-75 | 高危 | 橙色 |
| 26-50 | 中危 | 黄色 |
| 0-25 | 低危 | 绿色 |
## 开发
```
# Backend development
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# Frontend development
cd frontend
npm install
npm run dev
```
标签:AV绕过, Cloudflare, Docker, ESC4, FastAPI, HTTP/HTTPS抓包, IOC管理, masscan, MITRE ATT&CK, nuclei, OSINT, PostgreSQL, Python, Redis, STIX, TIP, TypeScript, 企业安全, 失陷指标, 威胁情报平台, 威胁评分, 安全仪表盘, 安全插件, 安全运营中心, 安全防御评估, 态势感知, 情报富化, 情报聚合, 搜索引擎查询, 攻击框架映射, 无后门, 测试用例, 网络安全, 网络映射, 网络资产管理, 自动化响应, 自动化攻击, 请求拦截, 逆向工具, 隐私保护