VB-1405/CTI-Hub
GitHub: VB-1405/CTI-Hub
CTI-Hub 是一个可自托管的开源威胁情报聚合平台,通过并行查询多个 CTI 引擎并关联结果,帮助安全团队高效分析网络威胁。
Stars: 0 | Forks: 0
# CTI Hub — 多引擎网络威胁情报平台
一个可自托管的开源威胁情报聚合器,能够并行查询多个CTI引擎,并将结果关联为统一的判定。设计用于与任何SIEM工具集成。
## 功能特性
- **多引擎扫描** — 同时跨9+个CTI引擎进行哈希、IP、URL和域名分析
- **动态引擎管理** — 通过管理界面添加、移除和配置任何CTI引擎
- **CAPA集成** — 静态二进制分析与MITRE ATT&CK映射(可选)
- **身份验证** — 基于JWT的登录,具备管理员和分析师角色
- **SIEM集成** — 将结果发送至Elasticsearch以用于Kibana仪表板
- **Docker就绪** — 一键部署到任何环境
- **即插即用** — 可独立运行或与任何现有SIEM并行工作
## 支持的CTI引擎(默认)
| 引擎 | 类型 | 免费额度 |
|---|---|---|
| VirusTotal | 哈希、IP、URL、域名 | 4次请求/分钟 |
| AbuseIPDB | IP | 1,000次请求/天 |
| Shodan | IP | 100点/月 |
| OTX AlienVault | 哈希、IP、URL、域名 | 无限制 |
| URLScan.io | URL、域名 | 100次扫描/天 |
| GreyNoise | IP | 100个IP/天 |
| MalwareBazaar | 哈希 | 免费 |
| ThreatFox | 哈希、IP、URL、域名 | 免费 |
| Hybrid Analysis | 哈希 | 200次请求/天(需审核) |
| **CAPA** | 文件 | 免费(自托管) |
## 快速启动(Docker)
```
# 1. 克隆
git clone https://github.com/VB-1405/CTI-Hub
cd cti-hub
# 2. 启动
docker compose up -d
# 3. 打开 http://localhost:5000/setup
# 创建您的管理员账户
# 4. 前往 Admin → API Engines
# 添加您的 API 密钥
```
完成。仪表板位于 `http://localhost:5000`。
## 快速启动(不使用Docker)
```
# 1. 克隆
git clone https://github.com/VB-1405/CTI-Hub
cd cti-hub
# 2. 安装依赖项
pip install -r requirements.txt
# 3. 运行
python backend.py
# 4. 打开 http://localhost:5000/setup
```
## 架构
```
Browser
└── Login page (/login)
└── Dashboard (/) — requires auth
└── Admin panel (/admin) — admin only
Flask Backend (backend.py)
├── JWT Authentication
├── Dynamic engine management (config.json)
├── CTI API calls (server-side, keys never in browser)
├── CAPA subprocess (optional)
└── Elasticsearch shipping (optional)
Data files (gitignored)
├── config.json — engine config + API keys
├── users.json — hashed user passwords
└── .jwt_secret — JWT signing key
```
## CAPA 设置
CAPA 执行静态恶意软件分析并将能力映射到 MITRE ATT&CK。
```
# Linux ARM64 (Raspberry Pi)
wget https://github.com/mandiant/capa/releases/latest/download/capa-linux-arm64
chmod +x capa-linux-arm64 && sudo mv capi-linux-arm64 /usr/local/bin/capa
# Linux x86_64
wget https://github.com/mandiant/capa/releases/latest/download/capa-linux
chmod +x capa-linux && sudo mv capa-linux /usr/local/bin/capa
# 验证
capa --version
```
然后在 CTI Hub 管理界面 → CAPA → 设置二进制文件路径 → 启用 → 测试。
## Elasticsearch / SIEM 集成
CTI Hub 可以自动将每次扫描结果发送到 Elasticsearch:
1. 管理界面 → Elasticsearch → 启用并配置连接
2. 每次扫描会在 `cti-scans` 索引中创建一个文档
3. 基于 `cti-scans` 数据视图构建 Kibana 仪表板
### 文档结构
```
{
"@timestamp": "2026-05-07T10:00:00Z",
"target": "185.220.101.45",
"target_type": "ip",
"verdict": "MALICIOUS",
"threat_score": 0.84,
"engines_total": 6,
"engines_hit": 4,
"analyst": "analyst01",
"results": {
"virustotal": "MALICIOUS",
"abuseipdb": "MALICIOUS"
},
"techniques": [
{ "name": "T1027.005: Obfuscated Files", "severity": "high" }
]
}
```
## 添加自定义CTI引擎
无需编码。从管理界面 → API 引擎 → 添加引擎:
| 字段 | 描述 |
|---|---|
| 引擎 ID | 唯一标识符(例如 `my_engine`) |
| 显示名称 | 在界面中显示 |
| API 密钥 | 存储在服务器端 |
| 支持类型 | 哈希 / IP / URL / 域名 |
该引擎将自动出现在扫描中。
## 用户角色
| 角色 | 访问权限 |
|---|---|
| **管理员** | 完全访问 — API 密钥、用户管理、所有设置 |
| **分析师** | 仅扫描 — 无权访问密钥或管理面板 |
## Nginx 反向代理
参见 `nginx-example.conf` 获取生产就绪的 Nginx 配置,该配置:
- 在 `/cti/` 路径提供 CTI Hub 服务
- 同时适用于本地和 Tailscale IP
- 允许为 CAPA 分析上传大文件
## 安全注意事项
- API 密钥存储在服务器上的 `config.json` 文件中 — 永远不会发送到浏览器
- `config.json` 和 `users.json` 已包含在 `.gitignore` 中 — 永远不会提交
- 密码使用 bcrypt 进行哈希处理
- 会话在 8 小时后过期(可配置)
- 所有扫描端点都需要身份验证
## 项目结构
```
cti-hub/
├── backend.py # Flask backend — all logic
├── requirements.txt # Python dependencies
├── Dockerfile # Container definition
├── docker-compose.yml # One-command deployment
├── nginx-example.conf # Nginx reverse proxy config
├── .gitignore # Protects secrets from git
├── static/
│ ├── index.html # Main dashboard
│ ├── login.html # Login page
│ ├── admin.html # Admin panel
│ └── setup.html # First-run setup
└── README.md
```
## 构建技术
- **Flask** — Python Web 框架
- **PyJWT** — JWT 身份验证
- **bcrypt** — 密码哈希
- **Gunicorn** — 生产级 WSGI 服务器
- **Docker** — 容器化
CTI 引擎:VirusTotal, AbuseIPDB, Shodan, OTX AlienVault, URLScan.io, GreyNoise, MalwareBazaar, ThreatFox, Hybrid Analysis, CAPA (Mandiant)
## 许可证
MIT 许可证 — 免费使用、修改和分发。
## 贡献
欢迎提交拉取请求。要添加新的内置 CTI 引擎:
1. 在 `backend.py` 的 `DEFAULT_CONFIG['engines']` 中添加引擎定义
2. 按照现有模式添加一个 `_enginename(k, value)` 函数
3. 在 `run_builtin_engine()` 中添加一个 case
4. 提交 PR
*作为智能 SIEM 研究生研究项目的一部分构建。*
## 功能特性
- **多引擎扫描** — 同时跨9+个CTI引擎进行哈希、IP、URL和域名分析
- **动态引擎管理** — 通过管理界面添加、移除和配置任何CTI引擎
- **CAPA集成** — 静态二进制分析与MITRE ATT&CK映射(可选)
- **身份验证** — 基于JWT的登录,具备管理员和分析师角色
- **SIEM集成** — 将结果发送至Elasticsearch以用于Kibana仪表板
- **Docker就绪** — 一键部署到任何环境
- **即插即用** — 可独立运行或与任何现有SIEM并行工作
## 支持的CTI引擎(默认)
| 引擎 | 类型 | 免费额度 |
|---|---|---|
| VirusTotal | 哈希、IP、URL、域名 | 4次请求/分钟 |
| AbuseIPDB | IP | 1,000次请求/天 |
| Shodan | IP | 100点/月 |
| OTX AlienVault | 哈希、IP、URL、域名 | 无限制 |
| URLScan.io | URL、域名 | 100次扫描/天 |
| GreyNoise | IP | 100个IP/天 |
| MalwareBazaar | 哈希 | 免费 |
| ThreatFox | 哈希、IP、URL、域名 | 免费 |
| Hybrid Analysis | 哈希 | 200次请求/天(需审核) |
| **CAPA** | 文件 | 免费(自托管) |
## 快速启动(Docker)
```
# 1. 克隆
git clone https://github.com/VB-1405/CTI-Hub
cd cti-hub
# 2. 启动
docker compose up -d
# 3. 打开 http://localhost:5000/setup
# 创建您的管理员账户
# 4. 前往 Admin → API Engines
# 添加您的 API 密钥
```
完成。仪表板位于 `http://localhost:5000`。
## 快速启动(不使用Docker)
```
# 1. 克隆
git clone https://github.com/VB-1405/CTI-Hub
cd cti-hub
# 2. 安装依赖项
pip install -r requirements.txt
# 3. 运行
python backend.py
# 4. 打开 http://localhost:5000/setup
```
## 架构
```
Browser
└── Login page (/login)
└── Dashboard (/) — requires auth
└── Admin panel (/admin) — admin only
Flask Backend (backend.py)
├── JWT Authentication
├── Dynamic engine management (config.json)
├── CTI API calls (server-side, keys never in browser)
├── CAPA subprocess (optional)
└── Elasticsearch shipping (optional)
Data files (gitignored)
├── config.json — engine config + API keys
├── users.json — hashed user passwords
└── .jwt_secret — JWT signing key
```
## CAPA 设置
CAPA 执行静态恶意软件分析并将能力映射到 MITRE ATT&CK。
```
# Linux ARM64 (Raspberry Pi)
wget https://github.com/mandiant/capa/releases/latest/download/capa-linux-arm64
chmod +x capa-linux-arm64 && sudo mv capi-linux-arm64 /usr/local/bin/capa
# Linux x86_64
wget https://github.com/mandiant/capa/releases/latest/download/capa-linux
chmod +x capa-linux && sudo mv capa-linux /usr/local/bin/capa
# 验证
capa --version
```
然后在 CTI Hub 管理界面 → CAPA → 设置二进制文件路径 → 启用 → 测试。
## Elasticsearch / SIEM 集成
CTI Hub 可以自动将每次扫描结果发送到 Elasticsearch:
1. 管理界面 → Elasticsearch → 启用并配置连接
2. 每次扫描会在 `cti-scans` 索引中创建一个文档
3. 基于 `cti-scans` 数据视图构建 Kibana 仪表板
### 文档结构
```
{
"@timestamp": "2026-05-07T10:00:00Z",
"target": "185.220.101.45",
"target_type": "ip",
"verdict": "MALICIOUS",
"threat_score": 0.84,
"engines_total": 6,
"engines_hit": 4,
"analyst": "analyst01",
"results": {
"virustotal": "MALICIOUS",
"abuseipdb": "MALICIOUS"
},
"techniques": [
{ "name": "T1027.005: Obfuscated Files", "severity": "high" }
]
}
```
## 添加自定义CTI引擎
无需编码。从管理界面 → API 引擎 → 添加引擎:
| 字段 | 描述 |
|---|---|
| 引擎 ID | 唯一标识符(例如 `my_engine`) |
| 显示名称 | 在界面中显示 |
| API 密钥 | 存储在服务器端 |
| 支持类型 | 哈希 / IP / URL / 域名 |
该引擎将自动出现在扫描中。
## 用户角色
| 角色 | 访问权限 |
|---|---|
| **管理员** | 完全访问 — API 密钥、用户管理、所有设置 |
| **分析师** | 仅扫描 — 无权访问密钥或管理面板 |
## Nginx 反向代理
参见 `nginx-example.conf` 获取生产就绪的 Nginx 配置,该配置:
- 在 `/cti/` 路径提供 CTI Hub 服务
- 同时适用于本地和 Tailscale IP
- 允许为 CAPA 分析上传大文件
## 安全注意事项
- API 密钥存储在服务器上的 `config.json` 文件中 — 永远不会发送到浏览器
- `config.json` 和 `users.json` 已包含在 `.gitignore` 中 — 永远不会提交
- 密码使用 bcrypt 进行哈希处理
- 会话在 8 小时后过期(可配置)
- 所有扫描端点都需要身份验证
## 项目结构
```
cti-hub/
├── backend.py # Flask backend — all logic
├── requirements.txt # Python dependencies
├── Dockerfile # Container definition
├── docker-compose.yml # One-command deployment
├── nginx-example.conf # Nginx reverse proxy config
├── .gitignore # Protects secrets from git
├── static/
│ ├── index.html # Main dashboard
│ ├── login.html # Login page
│ ├── admin.html # Admin panel
│ └── setup.html # First-run setup
└── README.md
```
## 构建技术
- **Flask** — Python Web 框架
- **PyJWT** — JWT 身份验证
- **bcrypt** — 密码哈希
- **Gunicorn** — 生产级 WSGI 服务器
- **Docker** — 容器化
CTI 引擎:VirusTotal, AbuseIPDB, Shodan, OTX AlienVault, URLScan.io, GreyNoise, MalwareBazaar, ThreatFox, Hybrid Analysis, CAPA (Mandiant)
## 许可证
MIT 许可证 — 免费使用、修改和分发。
## 贡献
欢迎提交拉取请求。要添加新的内置 CTI 引擎:
1. 在 `backend.py` 的 `DEFAULT_CONFIG['engines']` 中添加引擎定义
2. 按照现有模式添加一个 `_enginename(k, value)` 函数
3. 在 `run_builtin_engine()` 中添加一个 case
4. 提交 PR
*作为智能 SIEM 研究生研究项目的一部分构建。*标签:API密钥管理, CAPA静态分析, CTI引擎, Docker容器化, Elasticsearch, JWT认证, masscan, SIEM集成, 二进制分析, 云安全运维, 后端开发, 多引擎扫描, 威胁情报平台, 威胁情报聚合, 威胁数据关联, 威胁监控, 安全情报共享, 开源安全工具, 情报聚合, 构建工具, 深度包检测, 网络威胁检测, 网络安全分析, 自托管部署, 角色访问控制, 请求拦截, 逆向工具, 逆向工程平台