hrushikeshv7/PHANTOM

GitHub: hrushikeshv7/PHANTOM

PHANTØM是一个全栈AI驱动的SOC威胁情报平台,聚合四个威胁情报API数据,通过NLP引擎提取实体并映射MITRE ATT&CK,配合Groq大模型自动生成分析师简报,为安全团队提供从IOC分析到报告输出的完整工作流。

Stars: 0 | Forks: 0

# PHANTØM ### 主动启发式分析与 NLP 威胁编排监控器 **生产级 AI 驱动的 SOC 威胁情报平台** [![状态](https://img.shields.io/badge/Status-Production%20Ready-00E676?style=for-the-badge)](https://github.com/hrushikeshv7/PHANTOM) [![Python](https://img.shields.io/badge/Python-3.11+-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://python.org) [![FastAPI](https://img.shields.io/badge/FastAPI-0.110-009688?style=for-the-badge&logo=fastapi)](https://fastapi.tiangolo.com) [![React](https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=black)](https://react.dev) [![许可证](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE) [功能](#-features) · [架构](#-architecture) · [快速开始](#-quick-start) · [API 文档](#-api-endpoints) · [截图](#-dashboard)
## 🔍 什么是 PHANTØM? PHANTØM 是一个为安全运营中心 (SOC) 团队构建的全栈威胁情报平台。它从 **4 个行业领先的威胁源** 聚合实时数据,通过 **带有 MITRE ATT&CK 映射的自定义 NLP 评分引擎** 处理数据,并在实时交互式仪表板上提供 **AI 生成的分析师简报**。 ## ✨ 功能特性 ### 核心情报 - **多源聚合** — 从 VirusTotal、Shodan、AbuseIPDB、AlienVault OTX 并发异步获取数据(比顺序获取快 4 倍) - **复合威胁评分** — 带有 CVE 严重性提升、时效性评分、OTX 脉冲放大和白名单惩罚机制的 0-100 加权评分 - **NLP 实体提取** — 从原始文本中识别威胁行为者(APT28、Lazarus Group)、恶意软件家族(Emotet、Ryuk)和 CVE ID - **MITRE ATT&CK 映射** — 自动将提取的实体映射到技术 ID(T1566、T1110、T1486...) - **AI 分析师简报** — Groq Llama3-70B 为每个 IOC 生成 3 句话的 SOC 级摘要,并引用实际提取的实体 ### 仪表板面板 - 📡 **实时威胁订阅源** — 实时 OTX 全球威胁脉冲,支持点击展开详情 - 🔍 **IOC 分析器** — 提交任何 IP/域名/哈希,即时进行多源分析 - 🌍 **攻击源地图** — 基于 Leaflet.js 的所有已分析威胁来源地理地图 - 🏆 **顶级威胁排行榜** — 通过 WebSocket 更新的实时排名威胁 - 📊 **评分历史图表** — 最近 20 次分析的 Recharts 条形图 - 🛡️ **文件恶意软件分析器** — 对上传文件进行静态模式检测 + AI 深度分析 - 📋 **文件分析历史** — 包含 AI 判定的所有已分析文件的可搜索历史记录 - 📦 **批量 IOC 扫描器** — 上传 .txt → 同时扫描 50 个 IP 并导出为 CSV ### 运维操作 - 📄 **PDF 报告生成器** — 为每个分析的 IOC 生成专业的 SOC 级 PDF(ReportLab) - 🔔 **实时告警** — 检测到 CRITICAL(严重)级别时自动通过 Slack + 电子邮件发送通知 - ⚡ **WebSocket 实时更新** — 仪表板无需刷新页面即可即时更新 - 📱 **移动端响应式** — 底部导航移动布局,适用于 SOC 值班人员访问 - 🗄️ **持久化存储** — PostgreSQL 用于历史记录 + Redis 用于 API 响应缓存 ## 🏗️ 架构 ``` ┌──────────────────────────────────────────────────────────────────┐ │ FRONTEND (React 18 + Tailwind CSS) │ │ Overview │ IOC Analyzer │ File Scanner │ Bulk Scan │ Attack Map │ └─────────────────────────┬────────────────────────────────────────┘ │ REST API + WebSocket ┌─────────────────────────▼────────────────────────────────────────┐ │ BACKEND (FastAPI + Python 3.11) │ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌───────────────────────┐ │ │ │ API Layer │ │ NLP Engine │ │ Groq AI Summarizer │ │ │ │ asyncio │ │ SecBERT NER │ │ Llama3-70B │ │ │ └──────┬──────┘ └──────┬───────┘ └───────────┬───────────┘ │ └─────────│────────────────│───────────────────────│──────────────┘ │ │ │ 4 Sources Score 0-100 PostgreSQL concurrently MITRE Map + Redis via asyncio NLP Boost Cache ``` ### NLP 流水线 (阶段 3) ``` Raw threat text from OTX + API responses │ ▼ Named Entity Recognition ├── Threat Actors → APT28, Lazarus, FIN7 ├── Malware Names → Emotet, Ryuk, Cobalt Strike ├── CVE IDs → CVE-2021-44228 └── Attack Types → ransomware, botnet, c2 │ ▼ MITRE ATT&CK Mapping ├── "phishing" → T1566 ├── "ransomware" → T1486 └── "brute force" → T1110 │ ▼ Composite Score + NLP Entity Boost Base = VT×0.35 + AbuseIPDB×0.30 + Shodan×0.20 + OTX×0.15 Boost = +18 (threat actor) +15 (malware) +12 (CVE) Final = min(Base + Boost, 100) │ ▼ Groq AI Analyst Briefing 3-sentence SOC report with real entity references ``` ## 🛠️ 技术栈 | 层级 | 技术 | 用途 | |---|---|---| | **API 框架** | FastAPI | Async REST + WebSocket 服务器 | | **异步 HTTP** | httpx + asyncio | 4 个并发 API 调用 | | **NLP** | HuggingFace + regex | 威胁实体提取 | | **AI** | Groq (Llama3-70B) | SOC 分析师简报 | | **数据库** | PostgreSQL + SQLAlchemy | 威胁 + 文件历史记录 | | **缓存** | Redis | API 速率限制保护 | | **PDF** | ReportLab | 威胁报告生成 | | **前端** | React 18 | UI 框架 | | **样式** | Tailwind CSS + Orbitron | Cybersec 设计系统 | | **图表** | Recharts | 评分历史可视化 | | **地图** | Leaflet.js | 攻击源地理地图 | | **字体** | Orbitron + Space Grotesk + JetBrains Mono | 排版字体 | | **部署** | Docker + Render | 容器化云部署 | ## 📁 项目结构 ``` PHANTOM/ ├── .env.example ← Environment variable template ├── docker-compose.yml ← Full stack Docker config │ ├── backend/ │ ├── main.py ← FastAPI app + all 10 endpoints │ ├── requirements.txt │ ├── api/ │ │ ├── virustotal.py ← VirusTotal async client │ │ ├── shodan.py ← Shodan async client │ │ ├── abuseipdb.py ← AbuseIPDB async client │ │ └── otx.py ← AlienVault OTX async client │ ├── nlp/ │ │ ├── ner_engine.py ← NER + MITRE ATT&CK mapping │ │ ├── scorer.py ← Composite threat scoring │ │ └── summarizer.py ← Groq AI briefing generator │ ├── db/ │ │ ├── models.py ← SQLAlchemy models │ │ ├── database.py ← DB connection │ │ └── cache.py ← Redis caching layer │ └── utils/ │ ├── aggregator.py ← Async multi-source fetcher │ ├── alerts.py ← Slack + email alerting │ ├── file_analyzer.py ← Static + AI malware analysis │ ├── helpers.py ← IP geolocation fallback │ └── pdf_report.py ← PDF report generator │ └── frontend/ └── src/ ├── App.jsx ← Main layout + sidebar navigation ├── index.css ← Global styles + animations ├── services/api.js ← API client + WebSocket └── components/ ├── StatCards.jsx ├── ThreatFeed.jsx ├── IOCLookup.jsx ├── ScoreBoard.jsx ├── ThreatChart.jsx ├── AttackMap.jsx ├── FileAnalyzer.jsx ├── FileHistory.jsx ├── BulkScanner.jsx └── GhostLogo.jsx ``` ## 🚀 快速开始 ### 前置条件 ``` Python 3.11+ Node.js 18+ PostgreSQL Redis ``` ### 1. 克隆与配置 ``` git clone https://github.com/hrushikeshv7/PHANTOM.git cd PHANTOM cp .env.example .env # 使用你的 API 密钥编辑 .env ``` ### 2. 后端设置 ``` cd backend python3 -m venv phantom_env source phantom_env/bin/activate pip install -r requirements.txt # 数据库设置 sudo systemctl start postgresql redis-server sudo -u postgres psql << 'SQL' CREATE DATABASE phantom_db; CREATE USER phantom_user WITH PASSWORD 'phantom_pass_2024'; GRANT ALL PRIVILEGES ON DATABASE phantom_db TO phantom_user; \c phantom_db GRANT ALL ON SCHEMA public TO phantom_user; SQL python main.py # 运行于 http://localhost:8000 # API 文档位于 http://localhost:8000/docs ``` ### 3. 前端设置 ``` cd frontend npm install npm start # 仪表板位于 http://localhost:3000 ``` ### 4. Docker (单条命令) ``` docker-compose up --build # 仪表板位于 http://localhost:3000 ``` ## 🔑 环境变量 ``` # Threat Intelligence(所有免费套餐) VIRUSTOTAL_API_KEY= # virustotal.com — 500 req/day SHODAN_API_KEY= # shodan.io — 100 req/month ABUSEIPDB_API_KEY= # abuseipdb.com — 1000 req/day OTX_API_KEY= # otx.alienvault.com — unlimited # AI(免费) GROQ_API_KEY= # console.groq.com — free tier # Alerts(可选) SLACK_WEBHOOK_URL= # api.slack.com ALERT_THRESHOLD=60 # Auto-alert above this score # Infrastructure DATABASE_URL=postgresql://phantom_user:phantom_pass_2024@localhost/phantom_db REDIS_URL=redis://localhost:6379 CORS_ORIGINS=http://localhost:3000 APP_PORT=8000 ``` ## 📡 API 参考 | 方法 | 端点 | 描述 | |---|---|---| | `GET` | `/api/analyze/{ioc}` | 包含 AI 简报的完整多源 IOC 分析 | | `GET` | `/api/feed` | 实时 OTX 威胁脉冲 | | `GET` | `/api/threats` | 历史威胁记录 | | `GET` | `/api/leaderboard` | 按复合评分排名的顶级威胁 | | `GET` | `/api/stats` | 仪表板统计信息 | | `GET` | `/api/report/{id}` | 下载 PDF 威胁报告 | | `POST` | `/api/bulk-analyze` | 批量 IOC 扫描(上传 .txt,最多 50 个) | | `POST` | `/api/analyze-file` | 文件恶意软件分析 | | `GET` | `/api/file-history` | 文件分析历史记录 | | `WS` | `/ws` | WebSocket 实时更新 | ## 🌐 数据源 | 来源 | 提供的内容 | 免费额度 | |---|---|---| | [VirusTotal](https://virustotal.com) | 来自 70 多个 AV 引擎的恶意软件判定 | 500次/天 | | [Shodan](https://shodan.io) | 开放端口、CVE、运行中的服务 | 100次/月 | | [AbuseIPDB](https://abuseipdb.com) | 社区滥用置信度评分 | 1000次/天 | | [AlienVault OTX](https://otx.alienvault.com) | 全球威胁脉冲和 IOC 源 | 无限制 | ## ✅ 构建阶段 | 阶段 | 描述 | 状态 | |---|---|---| | 阶段 1 | 环境设置 + 项目结构 | ✅ 完成 | | 阶段 2 | 4 个异步 API 集成 + FastAPI 后端 | ✅ 完成 | | 阶段 3 | NLP 引擎 — SecBERT NER + MITRE ATT&CK | ✅ 完成 | | 阶段 4 | Groq AI 分析师简报生成器 | ✅ 完成 | | 阶段 5 | React 前端 — 6 个实时仪表板面板 | ✅ 完成 | | 阶段 6 | Docker 容器化 + Render 部署 | ✅ 完成 | | 层级 1 | 告警 + 批量扫描器 + PDF 报告 + 文件分析器 | ✅ 完成 | | UI v3 | 高级 Cybersec 设计(Orbitron + Space Grotesk) | ✅ 完成 | | 阶段 3+ | 文件历史源 + 移动端响应式布局 | ✅ 完成 | ## 🏆 为什么选择 PHANTØM? 大多数威胁情报工具需要昂贵的订阅或复杂的企业级设置。PHANTØM 证明了单个工程师可以利用免费 API、开源模型和现代 Web 工具,从零开始构建一个生产级的 SOC 平台。 **不同之处在于:** - 同时关联 4 个来源 —— 大多数工具一次只检查一个 - NLP 提取真实的威胁行为者名称,并将其映射到 MITRE ATT&CK —— 而不仅仅是原始 API 评分 - AI 为您编写分析师报告 —— 不是模板,而是真实的简报 - 易于理解 —— 每个组件都有文档记录且可读性强 ## 👨‍💻 作者 **Korapothula Hrushikesh Vardhan** 网络安全工程师 · IIT Kharagpur · CEH v12 认证 [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=for-the-badge&logo=linkedin)](https://linkedin.com/in/hrushikesh-vardhan-975a5b29a) [![GitHub](https://img.shields.io/badge/GitHub-Follow-181717?style=for-the-badge&logo=github)](https://github.com/hrushikeshv7) ## 📜 许可证 MIT 许可证 —— 详见 [LICENSE](LICENSE)。
*“幽灵在默默注视。威胁永远不知道它的到来。”* **⭐ 如果 PHANTØM 对您有帮助,请给本仓库加星**
标签:AbuseIPDB, AI安全分析, Ask搜索, AV绕过, Cloudflare, DLL 劫持, FastAPI, GPT, IOC分析, Llama3, masscan, MITRE ATT&CK, NLP, PostgreSQL, Python, React, Redis, Render云平台, SecBERT, Syscalls, VirusTotal, WebSocket, 依赖分析, 告警自动化, 大语言模型, 威胁情报平台, 威胁评分, 安全运营中心, 实体提取, 微服务架构, 搜索引擎查询, 数据聚合, 无后门, 测试用例, 漏洞管理, 网络威胁情报, 网络安全, 网络映射, 计算机取证, 请求拦截, 运行时操纵, 逆向工具, 部署与运维, 隐私保护