iam-tarun-86/phantomagent

GitHub: iam-tarun-86/phantomagent

PhantomAgent 是一个集实时威胁检测、AI 分类和自动化封控于一体的自主安全运营中心(SOC)仪表盘。

Stars: 0 | Forks: 0

# 🛡️ PhantomAgent ![PhantomAgent Dashboard](https://img.shields.io/badge/Dashboard-Real--Time-green?style=flat-square) ![React](https://img.shields.io/badge/Frontend-React%2018-blue?style=flat-square) ![FastAPI](https://img.shields.io/badge/Backend-FastAPI-teal?style=flat-square) ![Tailwind](https://img.shields.io/badge/Styling-Tailwind%20CSS-cyan?style=flat-square) ## 📖 概述 PhantomAgent 是一个自主安全运营中心 (SOC) 仪表盘。它将实时网络和文件系统监控与 AI 驱动的决策引擎相结合,以动态检测、分类和缓解威胁。它采用高性能的 FastAPI 后端和响应式赛博主题 React 前端构建,可可视化从检测到封控的整个威胁生命周期。 ## ✨ 功能 | 功能 | 描述 | |---------|-------------| | 🔴 **实时威胁订阅** | 通过 WebSocket 实时流式传输检测到的威胁及其严重程度指标 | | 🗺️ **攻击地图** | 威胁来源的地理位置可视化,带有动态连接线 | | ⚡ **Kill Chain** | MITRE ATT&CK 风格的 pipeline 可视化 (Watcher → Pre-Filter → AI → Decision → Response) | | 🚨 **红色警报弹窗** | 故障文字效果、自动升级倒计时,以及针对严重威胁在封控时的粒子爆发效果 | | 🖥️ **终端流** | 打字机风格的系统日志,带有颜色编码的严重程度级别 | | 🔊 **音频警报** | 针对严重程度 9+ 威胁的严重警报声 | | 📄 **取证报告** | 自动生成可下载的事件报告,包含 IOC 和时间线 | | 🔐 **终端登录** | 带有 Matrix 数字雨背景和启动序列的 CRT 风格身份验证 | ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ FRONTEND (React 18) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Threat │ │ Attack │ │ Kill │ │ Terminal │ │ │ │ Feed │ │ Map │ │ Chain │ │ Stream │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Red Alert Modal (Framer Motion) │ │ │ └─────────────────────────────────────────────────────┘ │ └──────────────────────────┬──────────────────────────────────┘ │ WebSocket + HTTP ┌──────────────────────────┴──────────────────────────────────┐ │ BACKEND (FastAPI) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Network │ │ File │ │ Qwen 3.5 │ │ Decision │ │ │ │ Watcher │ │ Watcher │ │ AI │ │ Engine │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Auto-Containment Responder │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## 🚀 快速开始 ### 前置条件 - Python 3.10+ - Node.js 18+ - npm 或 yarn - Ollama (可选,用于本地 AI 分类) ### 1. 克隆与设置 ``` git clone https://github.com/yourusername/phantomagent-dashboard.git cd phantomagent-dashboard ``` ### 2. 后端设置 ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` **可选:安装 Qwen 用于 AI 分类** ``` ollama pull qwen3:8b ``` **启动后端:** ``` cd .. python run.py ``` 后端运行在 `http://0.0.0.0:8000` ### 3. 前端设置 ``` cd frontend npm install npm run dev ``` 前端运行在 `http://localhost:5173` ### 4. 打开仪表盘 在浏览器中导航至 `http://localhost:5173`。 **默认登录:** - 用户名: `admin` - 密码: `phantom` ## 🧪 测试 Pipeline 您可以使用内置的注入 endpoint 来模拟威胁,以测试仪表盘的响应能力。 ``` # 模拟需要人工批准的严重威胁(Severity 9) curl -X POST http://localhost:8000/api/test/inject # 模拟自动隔离的中等威胁(Severity 7) curl -X POST http://localhost:8000/api/test/inject-auto ``` ## 🎨 UI 组件 ### 赛博效果 | 效果 | 文件 | 描述 | |--------|------|-------------| | 故障文字 | `index.css` | “THREAT DETECTED” 上的 RGB 分离动画 | | 雷达脉冲 | `index.css` | LIVE 指示器上的红色脉冲点 | | 闪烁文字 | `index.css` | 标签上的随机透明度闪烁 | | 粒子爆发 | `ParticleBurst.jsx` | 封控时的青色/绿色/白色粒子效果 | | 打字机日志 | `TerminalStream.jsx` | 逐字符输入日志 | | Matrix 数字雨 | `LoginPage.jsx` | 掉落的十六进制字符背景 | | CRT 扫描线 | `LoginPage.jsx` | 复古显示器扫描线效果 | ### Tailwind v4 主题 ``` @import "tailwindcss"; @theme { --color-deep-space: #050508; --color-panel-base: #0a0a12; --color-panel-border: #1a1a2e; --color-neon-cyan: #00f0ff; --color-alert-red: #ff2a2a; --color-contain-green: #00ff88; --color-warning-amber: #ffaa00; --color-data-white: #e0e0e0; --font-mono: 'JetBrains Mono', monospace; --font-sans: 'Inter', sans-serif; } ``` ## 📁 项目结构 ``` phantomagent-dashboard/ ├── backend/ │ ├── main.py # FastAPI entry point │ ├── config.py # Configuration (API_HOST, ports, paths) │ ├── watchers/ │ │ ├── network_watcher.py # Packet capture & analysis │ │ ├── file_watcher.py # File system anomaly detection │ │ └── log_watcher.py # System log monitoring │ ├── ai/ │ │ └── classifier.py # Qwen 3.5 threat classification │ ├── responder.py # Auto-containment engine │ └── requirements.txt ├── frontend/ │ ├── src/ │ │ ├── App.jsx # Main layout │ │ ├── index.css # Tailwind theme + cyber effects │ │ ├── context/ │ │ │ └── DashboardContext.jsx # WebSocket + state management │ │ ├── components/ │ │ │ ├── AuthorityBar.jsx # Top status bar │ │ │ ├── ThreatFeed.jsx # Live threat list │ │ │ ├── AttackMap.jsx # Geolocation map │ │ │ ├── KillChain.jsx # Pipeline visualization │ │ │ ├── TerminalStream.jsx # System logs │ │ │ ├── RedAlertModal.jsx # Critical threat modal │ │ │ ├── ParticleBurst.jsx # Containment particles │ │ │ └── LoginPage.jsx # CRT terminal login │ │ ├── hooks/ │ │ │ └── useTypewriter.js # Typing effect hook │ │ └── services/ │ │ └── geoService.js # IP geolocation API │ ├── package.json │ └── vite.config.js └── run.py # Backend runner script ``` ## 🔧 配置 编辑 `backend/config.py` 以自定义监控范围: ``` API_HOST = "0.0.0.0" # Listen on all interfaces API_PORT = 8000 WATCHED_LOGS = ["/var/log/auth.log", "/var/log/syslog"] WATCHED_PATHS = ["/tmp", "/var/tmp"] NETWORK_INTERFACE = "eth0" ``` ## 🐛 故障排除 | 问题 | 修复 | |-------|-----| | `405 Method Not Allowed` | 确保在 `/api/test/inject` endpoint 中使用的是 `POST`,而不是 `GET`。 | | 登录时的白色自动填充 | 已通过 `LoginPage.jsx` 中的 `WebkitBoxShadow` 样式 hack 解决。 | | 焦点在字段间跳动 | 已通过 `LoginPage.jsx` 中的编程式焦点管理解决。 | | 未找到 Qwen 模型 | 运行 `ollama pull qwen3:8b` 或在配置中禁用 AI fallback。 | ## 许可证 MIT 许可证 — 版权所有 (c) 2026 TARUN R 特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人这样做,但须符合以下条件: 上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。 ## 🙏 致谢 - [Tailwind CSS](https://tailwindcss.com) v4 样式 - [Framer Motion](https://www.framer.com/motion/) 动画效果 - [FastAPI](https://fastapi.tiangolo.com) 后端框架 - [Qwen](https://qwenlm.github.io) AI 威胁分类
标签:AI风险缓解, AMSI绕过, AV绕过, FastAPI, IP 地址批量处理, React, Syscalls, 威胁检测, 安全管理中心, 安全运营, 扫描框架, 自动化防御, 自定义脚本, 逆向工具