PhinehasNarh/CTI-Cyber-Threat-Intelligence-Toolkit
GitHub: PhinehasNarh/CTI-Cyber-Threat-Intelligence-Toolkit
一个基于FastAPI的轻量级威胁情报聚合与分析平台,整合多源IOC、RSS安全资讯和CISA KEV漏洞数据,提供统一的深色主题仪表板进行威胁监控与分析。
Stars: 0 | Forks: 0
# CTI Platform
一个实时网络威胁情报聚合与分析平台。从开源源收集安全新闻、威胁指标 (IOC) 和漏洞数据,并通过交互式深色主题仪表板进行展示。



## 预览
## 功能特性
| 模块 | 描述 |
|--------|-------------|
| **Dashboard** | 实时威胁概览,包含图表、统计数据和带有严重性标签的实时信息流 |
| **News Feed** | 聚合 8+ 个安全 RSS 源(Krebs, CISA, Dark Reading, Bleeping Computer 等) |
| **IOC Explorer** | 从 MalwareBazaar, URLhaus, ThreatFox 收集 IOC,并通过 VirusTotal 进行丰富化 |
| **KEV Catalog** | 同步 CISA 已知被利用漏洞目录,支持搜索和过滤 |
| **IP Intelligence** | 整合 AbuseIPDB, Shodan InternetDB 和 GreyNoise 的 IP 查询 |
| **Domain Reputation** | 通过 VirusTotal 进行域名分析,包含检测细分 |
| **Settings & Logs** | API 密钥管理,系统健康监控和实时日志查看器 |
## 架构
```
CTI Platform
├── backend/ # Python FastAPI server
│ ├── main.py # Entry point, scheduler, middleware
│ ├── config.py # Pydantic settings (.env loader)
│ ├── database.py # SQLAlchemy async engine (SQLite)
│ ├── models.py # DB models: FeedArticle, IOC, CVE
│ ├── feeds/ # Feed pollers
│ │ ├── rss_poller.py # 8 security RSS feeds
│ │ ├── ioc_feeds.py # MalwareBazaar, URLhaus, ThreatFox
│ │ └── kev_sync.py # CISA KEV catalog sync
│ ├── services/ # Business logic
│ │ ├── enrichment.py # IOC enrichment (VT, AbuseIPDB)
│ │ └── ip_intel.py # IP intel + domain rep lookups
│ ├── routers/ # API endpoints
│ │ ├── feed.py # /api/feed
│ │ ├── iocs.py # /api/iocs
│ │ ├── dashboard.py # /api/dashboard
│ │ ├── kev.py # /api/kev
│ │ ├── intel.py # /api/intel
│ │ └── settings.py # /api/settings + /api/settings/logs
│ ├── static/ # Frontend (served by FastAPI)
│ │ ├── index.html # Single-page app shell
│ │ └── js/ # React components (no build step)
│ ├── logs/ # Auto-generated log files
│ └── .env # API keys (DO NOT COMMIT)
├── .env.example # Template for environment variables
├── .gitignore # Security-hardened ignore rules
├── start.bat # One-click launcher (Windows)
└── README.md
```
## 快速开始
### 前置条件
- 已安装 **Python 3.10+** 并添加到 PATH
- 互联网连接(用于获取源和 CDN 资源)
### 1. 克隆仓库
```
git clone https://github.com/PhinehasNarh/CTI-Cyber-Threat-Intelligence-Toolkit
cd CTI-Cyber-Threat-Intelligence-Toolkit
```
### 2. 安装依赖
```
cd backend
pip install -r requirements.txt
```
### 3. 配置 API Keys(可选)
```
# 复制示例 config
cp .env.example .env
# 编辑 .env 并添加您的 API keys
# 所有 keys 均为可选 —— 没有它们 app 也能运行
```
请参阅下方的 [API Keys](#api-keys) 获取免费注册链接。
### 4. 运行服务器
```
# 从 backend/ 目录
python -m uvicorn main:app --reload --host 127.0.0.1 --port 8000
```
或者在 Windows 上,从项目根目录双击 **`start.bat`**,等待几秒钟服务即可启动。
### 5. 打开仪表板
在浏览器中访问 **http://localhost:8000**。
平台将在启动时自动轮询所有源,随后每 30 分钟轮询一次。
## API Keys
所有集成均使用**免费层级**。平台可以在没有任何密钥的情况下工作,但丰富化功能将受到限制。
| 服务 | 功能 | 免费层级 | 注册链接 |
|---------|---------------|-----------|-------------|
| **VirusTotal** | IOC 查询,域名信誉 | 4 请求/分钟, 500/天 | [virustotal.com](https://www.virustotal.com/gui/join-us) |
| **AbuseIPDB** | IP 信誉和滥用报告 | 1,000 次检查/天 | [abuseipdb.com](https://www.abuseipdb.com/register) |
| **Shodan** | 端口/漏洞扫描(InternetDB 无需密钥即可免费使用) | 查询受限 | [shodan.io](https://account.shodan.io/register) |
| **GreyNoise** | 互联网噪音和扫描器检测 | 50 次查询/天 | [greynoise.io](https://viz.greynoise.io/signup) |
| **AlienVault OTX** | 额外的威胁源 | 宽松的限制 | [otx.alienvault.com](https://otx.alienvault.com/accounts/signup) |
注册后,将您的密钥添加到 `backend/.env`:
```
VIRUSTOTAL_API_KEY=your_key_here
ABUSEIPDB_API_KEY=your_key_here
```
重启服务器以使更改生效。
## API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/api/health` | GET | 服务器健康检查 |
| `/api/dashboard` | GET | 仪表板统计数据和近期数据 |
| `/api/feed` | GET | 列出源文章(支持 `?search=`, `?source=`) |
| `/api/feed/poll` | POST | 手动触发 RSS 源轮询 |
| `/api/iocs` | GET | 列出 IOC(支持 `?type=`, `?search=`) |
| `/api/iocs/lookup` | POST | 通过 VirusTotal/AbuseIPDB 丰富化 IOC |
| `/api/iocs/poll` | POST | 手动触发 IOC 源轮询 |
| `/api/kev` | GET | 列出 CISA KEV 条目(支持 `?search=`) |
| `/api/kev/sync` | POST | 从 CISA 同步 KEV 目录 |
| `/api/intel/ip` | POST | 完整 IP 情报报告 |
| `/api/intel/domain` | POST | 域名信誉报告 |
| `/api/settings` | GET | 当前配置(API 密钥已掩码) |
| `/api/settings/logs` | GET | 查看应用程序/访问日志 |
## 日志
平台在 `backend/logs/` 中写入两个轮转日志文件:
| 文件 | 内容 |
|------|----------|
| `cti-platform.log` | 所有应用程序事件:源轮询、错误、调度器活动 |
| `access.log` | HTTP API 请求:方法、路径、状态码、响应时间 |
日志每天轮转并保留 **30 天**。可以通过 UI 中的 **Settings > Activity Logs** 实时查看,或直接查看:
```
# 查看 main log
tail -f backend/logs/cti-platform.log
# Windows equivalent
type backend\logs\cti-platform.log
```
## 安全说明
- **切勿提交 `.env`** — 它已被 `.gitignore` 排除
- API 密钥在 Settings UI 中已被**掩码**处理(仅显示首/尾 4 个字符)
- 日志查看器仅提供 `logs/` 目录下的文件(防止路径遍历)
- 所有外部 API 调用均使用 **HTTPS**
- SQLite 数据库文件(`*.db`)已排除在版本控制之外
- CORS 默认仅配置为 localhost
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| **Backend** | Python 3.10+, FastAPI, SQLAlchemy (async), APScheduler |
| **Database** | SQLite via aiosqlite (零配置) |
| **Frontend** | React 18 (UMD, 无构建步骤), Tailwind CSS, Recharts |
| **HTTP Client** | httpx (async) |
| **Feed Parsing** | feedparser |
前端直接使用 `React.createElement`(无需 JSX、Node.js 或构建工具)。一切通过单个 `python -m uvicorn` 命令运行。
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
### #ph1n3y
## 功能特性
| 模块 | 描述 |
|--------|-------------|
| **Dashboard** | 实时威胁概览,包含图表、统计数据和带有严重性标签的实时信息流 |
| **News Feed** | 聚合 8+ 个安全 RSS 源(Krebs, CISA, Dark Reading, Bleeping Computer 等) |
| **IOC Explorer** | 从 MalwareBazaar, URLhaus, ThreatFox 收集 IOC,并通过 VirusTotal 进行丰富化 |
| **KEV Catalog** | 同步 CISA 已知被利用漏洞目录,支持搜索和过滤 |
| **IP Intelligence** | 整合 AbuseIPDB, Shodan InternetDB 和 GreyNoise 的 IP 查询 |
| **Domain Reputation** | 通过 VirusTotal 进行域名分析,包含检测细分 |
| **Settings & Logs** | API 密钥管理,系统健康监控和实时日志查看器 |
## 架构
```
CTI Platform
├── backend/ # Python FastAPI server
│ ├── main.py # Entry point, scheduler, middleware
│ ├── config.py # Pydantic settings (.env loader)
│ ├── database.py # SQLAlchemy async engine (SQLite)
│ ├── models.py # DB models: FeedArticle, IOC, CVE
│ ├── feeds/ # Feed pollers
│ │ ├── rss_poller.py # 8 security RSS feeds
│ │ ├── ioc_feeds.py # MalwareBazaar, URLhaus, ThreatFox
│ │ └── kev_sync.py # CISA KEV catalog sync
│ ├── services/ # Business logic
│ │ ├── enrichment.py # IOC enrichment (VT, AbuseIPDB)
│ │ └── ip_intel.py # IP intel + domain rep lookups
│ ├── routers/ # API endpoints
│ │ ├── feed.py # /api/feed
│ │ ├── iocs.py # /api/iocs
│ │ ├── dashboard.py # /api/dashboard
│ │ ├── kev.py # /api/kev
│ │ ├── intel.py # /api/intel
│ │ └── settings.py # /api/settings + /api/settings/logs
│ ├── static/ # Frontend (served by FastAPI)
│ │ ├── index.html # Single-page app shell
│ │ └── js/ # React components (no build step)
│ ├── logs/ # Auto-generated log files
│ └── .env # API keys (DO NOT COMMIT)
├── .env.example # Template for environment variables
├── .gitignore # Security-hardened ignore rules
├── start.bat # One-click launcher (Windows)
└── README.md
```
## 快速开始
### 前置条件
- 已安装 **Python 3.10+** 并添加到 PATH
- 互联网连接(用于获取源和 CDN 资源)
### 1. 克隆仓库
```
git clone https://github.com/PhinehasNarh/CTI-Cyber-Threat-Intelligence-Toolkit
cd CTI-Cyber-Threat-Intelligence-Toolkit
```
### 2. 安装依赖
```
cd backend
pip install -r requirements.txt
```
### 3. 配置 API Keys(可选)
```
# 复制示例 config
cp .env.example .env
# 编辑 .env 并添加您的 API keys
# 所有 keys 均为可选 —— 没有它们 app 也能运行
```
请参阅下方的 [API Keys](#api-keys) 获取免费注册链接。
### 4. 运行服务器
```
# 从 backend/ 目录
python -m uvicorn main:app --reload --host 127.0.0.1 --port 8000
```
或者在 Windows 上,从项目根目录双击 **`start.bat`**,等待几秒钟服务即可启动。
### 5. 打开仪表板
在浏览器中访问 **http://localhost:8000**。
平台将在启动时自动轮询所有源,随后每 30 分钟轮询一次。
## API Keys
所有集成均使用**免费层级**。平台可以在没有任何密钥的情况下工作,但丰富化功能将受到限制。
| 服务 | 功能 | 免费层级 | 注册链接 |
|---------|---------------|-----------|-------------|
| **VirusTotal** | IOC 查询,域名信誉 | 4 请求/分钟, 500/天 | [virustotal.com](https://www.virustotal.com/gui/join-us) |
| **AbuseIPDB** | IP 信誉和滥用报告 | 1,000 次检查/天 | [abuseipdb.com](https://www.abuseipdb.com/register) |
| **Shodan** | 端口/漏洞扫描(InternetDB 无需密钥即可免费使用) | 查询受限 | [shodan.io](https://account.shodan.io/register) |
| **GreyNoise** | 互联网噪音和扫描器检测 | 50 次查询/天 | [greynoise.io](https://viz.greynoise.io/signup) |
| **AlienVault OTX** | 额外的威胁源 | 宽松的限制 | [otx.alienvault.com](https://otx.alienvault.com/accounts/signup) |
注册后,将您的密钥添加到 `backend/.env`:
```
VIRUSTOTAL_API_KEY=your_key_here
ABUSEIPDB_API_KEY=your_key_here
```
重启服务器以使更改生效。
## API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/api/health` | GET | 服务器健康检查 |
| `/api/dashboard` | GET | 仪表板统计数据和近期数据 |
| `/api/feed` | GET | 列出源文章(支持 `?search=`, `?source=`) |
| `/api/feed/poll` | POST | 手动触发 RSS 源轮询 |
| `/api/iocs` | GET | 列出 IOC(支持 `?type=`, `?search=`) |
| `/api/iocs/lookup` | POST | 通过 VirusTotal/AbuseIPDB 丰富化 IOC |
| `/api/iocs/poll` | POST | 手动触发 IOC 源轮询 |
| `/api/kev` | GET | 列出 CISA KEV 条目(支持 `?search=`) |
| `/api/kev/sync` | POST | 从 CISA 同步 KEV 目录 |
| `/api/intel/ip` | POST | 完整 IP 情报报告 |
| `/api/intel/domain` | POST | 域名信誉报告 |
| `/api/settings` | GET | 当前配置(API 密钥已掩码) |
| `/api/settings/logs` | GET | 查看应用程序/访问日志 |
## 日志
平台在 `backend/logs/` 中写入两个轮转日志文件:
| 文件 | 内容 |
|------|----------|
| `cti-platform.log` | 所有应用程序事件:源轮询、错误、调度器活动 |
| `access.log` | HTTP API 请求:方法、路径、状态码、响应时间 |
日志每天轮转并保留 **30 天**。可以通过 UI 中的 **Settings > Activity Logs** 实时查看,或直接查看:
```
# 查看 main log
tail -f backend/logs/cti-platform.log
# Windows equivalent
type backend\logs\cti-platform.log
```
## 安全说明
- **切勿提交 `.env`** — 它已被 `.gitignore` 排除
- API 密钥在 Settings UI 中已被**掩码**处理(仅显示首/尾 4 个字符)
- 日志查看器仅提供 `logs/` 目录下的文件(防止路径遍历)
- 所有外部 API 调用均使用 **HTTPS**
- SQLite 数据库文件(`*.db`)已排除在版本控制之外
- CORS 默认仅配置为 localhost
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| **Backend** | Python 3.10+, FastAPI, SQLAlchemy (async), APScheduler |
| **Database** | SQLite via aiosqlite (零配置) |
| **Frontend** | React 18 (UMD, 无构建步骤), Tailwind CSS, Recharts |
| **HTTP Client** | httpx (async) |
| **Feed Parsing** | feedparser |
前端直接使用 `React.createElement`(无需 JSX、Node.js 或构建工具)。一切通过单个 `python -m uvicorn` 命令运行。
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
### #ph1n3y标签:AV绕过, CISA, ESC4, FastAPI, GPT, HTTP/HTTPS抓包, IOC分析, KEV, OSINT, Python, SOC工具, 信息聚合, 威胁情报, 安全仪表盘, 安全工程, 安全运营, 实时处理, 密码管理, 开发者工具, 态势感知, 恶意代码分析, 情报收集, 扫描框架, 数据展示, 无后门, 漏洞发现, 漏洞研究, 漏洞管理, 红队, 网络安全, 自动化采集, 自定义脚本, 运行时操纵, 逆向工具, 配置文件, 隐私保护