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) 和漏洞数据,并通过交互式深色主题仪表板进行展示。 ![Python](https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?logo=fastapi&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green) ## 预览 Screenshot 2026-03-11 175946 ## 功能特性 | 模块 | 描述 | |--------|-------------| | **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工具, 信息聚合, 威胁情报, 安全仪表盘, 安全工程, 安全运营, 实时处理, 密码管理, 开发者工具, 态势感知, 恶意代码分析, 情报收集, 扫描框架, 数据展示, 无后门, 漏洞发现, 漏洞研究, 漏洞管理, 红队, 网络安全, 自动化采集, 自定义脚本, 运行时操纵, 逆向工具, 配置文件, 隐私保护