sriram21-09/PhantomNet

GitHub: sriram21-09/PhantomNet

一个结合机器学习的分布式蜜罐框架,通过多协议欺骗陷阱和实时威胁评分实现企业级攻击检测与分析。

Stars: 2 | Forks: 1

# 🛡️ PhantomNet – AI 驱动的分布式蜜罐欺骗框架
![PhantomNet](https://img.shields.io/badge/PhantomNet-v2.0-brightgreen?style=for-the-badge&logo=github) ![Python](https://img.shields.io/badge/Python-3.11+-3776AB?style=for-the-badge&logo=python&logoColor=white) ![React](https://img.shields.io/badge/React-19.0+-61DAFB?style=for-the-badge&logo=react&logoColor=black) ![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-009688?style=for-the-badge&logo=fastapi&logoColor=white) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-336791?style=for-the-badge&logo=postgresql&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-Enabled-2496ED?style=for-the-badge&logo=docker&logoColor=white) ![scikit-learn](https://img.shields.io/badge/scikit--learn-ML-F7931E?style=for-the-badge&logo=scikitlearn&logoColor=white) ![Phase](https://img.shields.io/badge/Phase_2-Complete-success?style=for-the-badge) ![Status](https://img.shields.io/badge/Week_10-Delivered-00ff41?style=for-the-badge) **一个由 AI/ML 驱动的智能分布式蜜罐系统,可实时检测、分析和响应网络威胁。** [功能特性](#-features) • [系统架构](#%EF%B8%8F-architecture) • [快速开始](#-quick-start) • [API 参考](#-api-reference) • [团队成员](#-team-members)
## 📋 目录 - [🎯 关于 PhantomNet](#-about-phantomnet) - [✨ 功能特性](#-features) - [🏗️ 系统架构](#%EF%B8%8F-architecture) - [🛠️ 技术栈](#%EF%B8%8F-technology-stack) - [⚡ 快速开始](#-quick-start) - [📦 安装说明](#-installation) - [🔌 API 参考](#-api-reference) - [🧪 测试](#-testing) - [📚 文档](#-documentation) - [📈 路线图](#-roadmap) - [👥 团队成员](#-team-members) - [💡 贡献指南](#-contributing) ## 🎯 关于 PhantomNet **PhantomNet** 是一个毕业设计项目,结合了**分布式系统**、**网络安全**和**人工智能**,构建了一个自适应蜜罐网格。与容易被攻击者检测和指纹识别的传统静态蜜罐不同,PhantomNet 创建了一个**智能欺骗层**,具备以下能力: - 🔍 **检测** 跨多种协议 (SSH, HTTP, FTP, SMTP) 的实时网络攻击 - 🧠 **学习** 使用 IsolationForest 异常检测和监督 ML 模型分析攻击者行为 - 🎯 **评分** 为每个网络数据包计算威胁概率 (0–100) 并推荐响应动作 - 📊 **可视化** 在实时赛博朋克风格仪表盘上展示威胁(支持自动刷新) - 🔐 **响应** 自动化决策:ALLOW (允许)、ALERT (告警) 或 BLOCK (阻断) ### 🎓 教育价值 本项目展示了: - 面向安全应用的高级 Python 编程 - 基于 Docker Compose 的微服务架构 - 生产环境网络安全场景中的机器学习应用 - 全栈开发:FastAPI 后端 + React 19 前端 - 使用 GitHub Actions 和 MLflow 模型注册中心实现 CI/CD ## ✨ 功能特性 ### 🍯 多协议蜜罐 | 协议 | 端口 | 状态 | 功能 | |----------|------|--------|-------------| | **SSH** | 2222 | ✅ 运行中 | 完整认证模拟、命令记录、暴力破解检测 | | **HTTP** | 8080 | ✅ 运行中 | 伪造管理面板、登录页面、文件上传陷阱、泛洪检测 | | **FTP** | 2121 | ✅ 运行中 | 目录遍历陷阱、文件访问日志、日志轮转 | | **SMTP** | 2525 | ✅ 运行中 | 邮件欺骗检测、垃圾邮件陷阱 | | **数据库** | 3306 | 🔮 计划中 | SQL 注入蜜罐、凭据窃取检测 | ### 🤖 AI/ML 威胁分析引擎 | 组件 | 技术 | 用途 | |-----------|-----------|---------| | **威胁评分** | IsolationForest / RandomForest | 每个数据包的实时威胁概率 (0–100) | | **特征提取** | 自定义 `FeatureExtractor` (15 个特征) | 数据包大小、协议、端口、熵、滚动统计 | | **后台分析器** | `ThreatAnalyzerService` | 每 5 秒轮询未评分日志,更新数据库评分 | | **模型注册中心** | MLflow + joblib | 版本化模型存储、生产/暂存阶段管理 | | **缓存** | 内存 IP 缓存 (60s TTL) | 避免对重复攻击者进行冗余评分 | ### 📊 协议分析与攻击检测 - **暴力破解检测**:识别在时间窗口内超过阈值的 IP - **HTTP 泛洪检测**:标记潜在的 DDoS 来源 - **时间序列趋势**:过去 N 天的每日攻击量 - **顶级攻击者排名**:按协议划分的 IP 排行榜 ### 🖥️ 实时仪表盘 - **高级 NOC**:实时 WebSocket 事件流,支持自动滚动 (50 事件缓冲) - **实时指标**:每分钟事件迷你图、威胁分布饼图、系统健康条 - **预测分析**:LSTM-V3 预测、风险评分、下次攻击倒计时 - **攻击归因**:多攻击者画像、工具检测、置信度环形仪表 - **威胁狩猎**:高级搜索、案例管理、IOC 提取 - **12+ 页面**:仪表盘、事件、分析、拓扑、地理统计、威胁狩猎、管理面板等 ### 🔐 管理面板与 RBAC - **JWT 认证**:安全的基于角色的访问控制登录 - **用户管理**:支持 Admin/Analyst/Viewer 角色的 CRUD 操作 - **系统配置**:ML 阈值、蜜罐设置、SIEM 集成、性能调优 - **维护工具**:数据库备份/恢复、清理/优化、数据清除 ### 🐳 部署与扩展性 - **7 个 Docker 服务**:PostgreSQL、SSH、HTTP、FTP、SMTP 蜜罐、API、前端 - **一键部署**:`docker-compose up -d` 启动整个平台 - **生产配置**:资源限制、重启策略、健康检查 - **API 优先设计**:RESTful API,自动生成 OpenAPI/Swagger 文档 ## 🏗️ 系统架构 ### 系统概览 ``` graph TD Attacker[🎭 Attacker] -->|Scans / Attacks| Honeypots subgraph Honeypots["🍯 Honeypot Network"] SSH[SSH :2222] HTTP[HTTP :8080] FTP[FTP :2121] SMTP[SMTP :2525] end Honeypots -->|Log Events| DB[(PostgreSQL)] Sniffer[🔍 Traffic Sniffer] -->|Raw Packets| DB DB -->|Unscored Logs| Analyzer[🧠 Threat Analyzer] Analyzer -->|Feature Extraction| ML[ML Engine] ML -->|Score + Decision| Analyzer Analyzer -->|Update Records| DB API[⚡ FastAPI Backend] -->|Query| DB Dashboard[📊 React Dashboard] -->|REST API| API Dashboard -->|Visualize| Admin[👤 Security Admin] ``` ### 架构图
📐 点击展开所有架构图 #### 1. 系统架构 System Architecture #### 2. 数据流图 Data Flow Diagram #### 3. 组件交互 Component Interaction #### 4. 部署架构 Deployment Architecture #### 5. 数据库模式 (ERD) Database Schema #### 6. 网络拓扑 Network Topology #### 7. CI/CD 流水线 CI/CD Pipeline #### 8. 安全架构 Security Architecture #### 9. 技术栈图 Technology Stack #### 10. 攻击流程时序 Attack Flow
## 🛠️ 技术栈 ### 后端 | 组件 | 技术 | 用途 | |-----------|-----------|---------| | **语言** | Python 3.11 | 核心开发 | | **框架** | FastAPI + Uvicorn | 带自动文档的异步 REST API | | **ORM** | SQLAlchemy 2.0 | 数据库抽象与迁移 | | **数据库** | PostgreSQL 15 (Alpine) | 事件存储、数据包日志、威胁评分 | | **ML** | scikit-learn, joblib, MLflow | 模型训练、序列化、注册 | | **网络** | Paramiko, Scapy, pyftpdlib | 协议模拟与流量捕获 | | **日志** | Python `logging` 模块 | 支持轮转的结构化 JSON 日志 | ### 前端 | 组件 | 技术 | 用途 | |-----------|-----------|---------| | **框架** | React 19.2 | 交互式 UI 组件 | | **构建工具** | Vite (Rolldown) | 亚秒级 HMR、优化构建 | | **样式** | Tailwind CSS | 实用优先的响应式设计 | | **图表** | Recharts | 威胁评分可视化 | | **HTTP** | Axios | API 通信 | | **测试** | Vitest + Playwright | 单元与 E2E 测试 | | **文档** | Storybook 10 | 组件文档 | ### DevOps 与基础设施 | 组件 | 技术 | 用途 | |-----------|-----------|---------| | **容器化** | Docker + Docker Compose | 7 服务编排 | | **CI/CD** | GitHub Actions | 自动化测试与部署 | | **负载测试** | Locust | 并发用户模拟 | | **模型跟踪** | MLflow | 实验跟踪与模型版本管理 | | **版本控制** | Git / GitHub | 分支策略与每周发布 | ## ⚡ 快速开始 ### 前置条件 ``` python --version # 3.11+ node --version # 18+ docker --version # 20+ docker compose version # v2+ git --version ``` ### 克隆并运行 (Docker — 推荐) ``` # 克隆 git clone https://github.com/sriram21-09/PhantomNet.git cd PhantomNet # 启动所有 7 个服务 docker-compose up -d # 验证 docker-compose ps ``` ### 访问服务 | 服务 | URL | 描述 | |---------|-----|-------------| | **仪表盘** | http://localhost:3000 | React 前端 | | **API 文档 (Swagger)** | http://localhost:8000/docs | 交互式 API 浏览器 | | **API 健康检查** | http://localhost:8000/health | JSON 健康状态检查 | | **SSH 蜜罐** | `ssh -p 2222 localhost` | SSH 陷阱 | | **HTTP 蜜罐** | http://localhost:8080 | Web 陷阱 | | **FTP 蜜罐** | `ftp localhost 2121` | FTP 陷阱 | ## 📦 安装说明 ### 本地开发 (不使用 Docker) #### 1. 后端设置 ``` cd backend # 创建 virtual environment python -m venv venv # 激活 (Windows PowerShell) venv\Scripts\Activate.ps1 # 激活 source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` #### 2. 环境配置 创建 `backend/.env`: ``` DATABASE_URL=postgresql://postgres:postgres@localhost:5432/phantomnet ENVIRONMENT=local ``` #### 3. 启动后端 ``` cd backend uvicorn main:app --host 127.0.0.1 --port 8000 --reload ``` #### 4. 前端设置 ``` cd frontend-dev npm install npm run dev ``` #### 5. 访问 - **前端**: http://localhost:5173 (Vite 开发服务器) - **API 文档**: http://localhost:8000/docs - **API 健康检查**: http://localhost:8000/health ## 🔌 API 参考 ### 核心端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/health` | 健康检查 (数据库连接) | | `GET` | `/api/events` | 支持过滤的分页流量事件 | | `GET` | `/api/stats` | 仪表盘聚合统计 | | `GET` | `/api/honeypots/status` | 实时蜜罐连接状态与最近上线时间 | | `GET` | `/api/traffic` | 实时流量源 | | `WS` | `/api/v1/realtime/ws` | WebSocket 实时事件流 | ### 威胁分析 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/v1/analyze/threat-score` | 评分数据包 → 返回威胁等级、置信度、决策 | | `GET` | `/api/v1/attribution/profile/{ip}` | 完整攻击者画像与工具检测 | | `GET` | `/api/v1/attribution/top-attackers` | 按活跃度排名的顶级攻击者 | | `GET` | `/api/v1/predictive/forecast` | 6 小时威胁预测 | | `GET` | `/api/v1/predictive/risk-score` | 综合风险评分 | | `GET` | `/api/v1/predictive/next-attack` | 下次攻击预测 | ### 协议分析 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/v1/analytics/ssh` | SSH 统计 + 暴力破解嫌疑人 | | `GET` | `//v1/analytics/http` | HTTP 统计 + 泛洪嫌疑人 | | `GET` | `/api/v1/analytics/trends?days=7` | 每日攻击量 (时间序列) | ### 管理面板 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/v1/admin/login` | JWT 认证 | | `GET/POST/PUT/DELETE` | `/api/v1/admin/users` | 用户 CRUD (仅限 Admin) | | `GET/PUT` | `/api/v1/admin/config` | 系统配置 | | `GET` | `/api/v1/admin/system-overview` | 组件状态与资源 | | `POST` | `/api/v1/admin/backup` | 数据库备份 | | `POST` | `/api/v1/admin/vacuum` | 数据库优化 | | `DELETE` | `/api/v1/admin/events/old` | 清除旧数据 | ### 主动防御 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/active-defense/block/{ip}` | 封禁攻击者 IP | ## 🧪 测试 ### 运行集成测试 ``` # From project root cd backend venv\Scripts\pytest tests/ -v ``` ### 负载测试 (Locust) ``` # 安装 Locust pip install locust # Run headless load test (50 concurrent users, 1 minute) locust -f tests/load_test_config.py --headless -u 50 -r 5 -t 1m --host http://127.0.0.1:8000 ``` ### 测试结果 (第 8 周) | 测试类型 | 结果 | 详情 | |-----------|--------|---------| | **集成测试** | ✅ 6/6 通过 | 健康检查、威胁评分、SSH/HTTP 分析、趋势、蜜罐状态 | | **负载测试** | ✅ 0% 错误率 | 50 并发用户,~13ms 平均响应,吞吐量稳定 | | **实时评分** | ✅ 通过 | ThreatAnalyzerService 正确评分并更新数据库记录 | ## 📚 文档 ### 项目文档 | 文档 | 描述 | |----------|-------------| | [`docs/system_architecture.md`](docs/system_architecture.md) | 系统图与数据流 | | [`docs/phase2_completion_report.md`](docs/phase2_completion_report.md) | 第二阶段里程碑总结 | | [`docs/integration_test_week8.md`](docs/integration_test_week8.md) | 集成与负载测试结果 | | [`docs/protocol_analytics_api.md`](docs/protocol_analytics_api.md) | 分析 API 参考 | | [`docs/api_design.md`](docs/api_design.md) | API 设计规范 | | [`docs/setup_guide.md`](docs/setup_guide.md) | 详细安装指南 | | [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) | 贡献指南 | | [`docs/retrospective/WEEK9_RETRO.md`](docs/retrospective/WEEK9_RETRO.md) | 第 9 周完成与回顾 | | [`docs/retrospective/WEEK10_RETRO.md`](docs/retrospective/WEEK10_RETRO.md) | 第 10 周完成与回顾 | | [`docs/WEEK10_PLAN.md`](docs/WEEK10_PLAN.md) | 第 10 周路线图与目标 | | [`demos/week10_demo/`](demos/week10_demo/) | 第 10 周演示材料与幻灯片 | | [`backend/api/openapi.yaml`](backend/api/openapi.yaml) | OpenAPI 3.0 规范 | ### 外部参考 - [OWASP Honeypot 项目](https://owasp.org/) - [scikit-learn 文档](https://scikit-learn.org/) - [FastAPI 文档](https://fastapi.tiangolo.com/) - [React 文档](https://react.dev/) - [Docker 文档](https://docs.docker.com/) ## 🔒 安全 | 功能 | 实现 | |---------|---------------| | **输入验证** | 所有 API 输入强制执行 Pydantic v2 schema | | **CORS** | 为前端源配置白名单 | | **SQL 注入** | 通过 SQLAlchemy ORM (参数化查询) 保护 | | **蜜罐隔离** | 每个蜜罐在独立的 Docker 容器中运行 | | **凭据安全** | 通过 `.env` 使用环境变量 (从不提交) | | **日志脱敏** | 标准化 JSON 日志,不存储原始凭据 | ## 📈 路线图 ### ✅ 第一阶段:基础设施 (第 1–4 周) — 已完成 - [x] 项目设置、GitHub 仓库、CI/CD - [x] PostgreSQL 数据库模式 (`packet_logs`, `traffic_stats`) - [x] SSH 蜜罐 (Paramiko) 含认证日志 - [x] 基础 FastAPI 后端含 CRUD 端点 - [x] React 前端骨架 ### ✅ 第二阶段:智能化与主动防御 (第 5–8 周) — 已完成 - [x] HTTP 与 FTP 蜜罐 (Docker 化,JSON 日志) - [x] SMTP 蜜罐 - [x] 使用 Scapy 的流量嗅探器 (实时数据包捕获) - [x] ML 威胁评分 (IsolationForest, RandomForest) - [x] ThreatAnalyzerService (每 5 秒后台评分) - [x] 协议分析 API (SSH 暴力破解、HTTP 泛洪检测) - [x] 赛博朋克风格仪表盘 (Tailwind CSS) - [x] 集成与负载测试 (50 并发用户,0% 错误) - [x] 完整文档与 OpenAPI 规范 ### ✅ 第 2.5 阶段:高级仪表盘与管理 (第 9–10 周) — 已完成 - [x] 实时 WebSocket 事件流与实时指标 - [x] LSTM-V3 预测分析与攻击预测 - [x] 含置信度评分的攻击归因系统 - [x] 威胁狩猎界面与案例管理及 IOC 提取 - [x] 管理面板与 JWT + RBAC (Admin/Analyst/Viewer) - [x] 系统配置编辑器与数据库维护工具 - [x] 高级分析与 MTTD/MTTR 及导出 (PDF/CSV) - [x] 12+ 仪表盘页面与高级赛博朋克 UI ### 🔮 第三阶段:加固与扩展 (第 11 周+) - [ ] 多租户支持 - [ ] 合规性报告 (GDPR/HIPAA) - [ ] 带注意力机制的 LSTM - [ ] 移动端响应式仪表盘 - [ ] 防火墙 API 集成 (iptables/Windows Firewall) - [ ] 联邦学习原型 - [ ] Kubernetes 部署 - [ ] API 速率限制 - [ ] E2E 测试套件 (Playwright) - [ ] 安全加固审计 ## 📊 项目统计 | 指标 | 数值 | |--------|-------| | **团队规模** | 4 名成员 | | **项目周期** | 8 个月 (32 周) | | **Docker 服务** | 7 个 (数据库、4 个蜜罐、API、前端) | | **API 端点** | 30+ | | **仪表盘页面** | 12+ | | **ML 提取特征** | 15 个/数据包 | | **文档文件** | 70+ | | **测试通过率** | 100% | ## 👥 团队成员 | 角色 | 姓名 | GitHub | 邮箱 | |------|------|--------|-------| | **团队负责人 / 架构师** | Kasukurthi Sriram | [@sriram21-09](https://github.com/sriram21-09/) | sriramkasukurthi2109@gmail.com | | **安全开发人员** | Muramreddy Vivekanandareddy | [@VivekanandaReddy2006](https://github.com/VivekanandaReddy2006) | vivekuses2006@gmail.com | | **AI/ML 开发人员** | Nattala Vikranth Chakravarthi | [@Vikranth-tech](https://github.com/Vikranth-tech) | nvikranth007@gmail.com | | **前端开发人员** | Satti Sai Ram Manideep Reddy | [@sairammanideepreddy2123](https://github.com/sairammanideepreddy2123) | sairammanideepreddy2123@gmail.com | ## 💡 贡献指南 欢迎贡献!请参阅 [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) 获取完整指南。 ``` # Fork & Clone git clone https://github.com/sriram21-09/PhantomNet.git # Create feature branch git checkout -b feature/your-feature-name # 提交 (遵循规范) git commit -m "[Role] type: description" # 示例: "[Security-Dev] feat: SSH honeypot hardening" # Push & create PR git push origin feature/your-feature-name ``` ### 编码规范 - **Python**: PEP 8、类型提示、文档字符串 - **JavaScript**: ESLint、函数式组件 - **Git**: 约定式提交、每个 PR 一个功能 - **文档**: 每个功能需更新相关文档 ## 🙏 致谢 - **OWASP** 提供蜜罐概念和安全指南 - **scikit-learn** 提供机器学习库 - **FastAPI** 提供高性能异步框架 - **React** 社区提供前端生态系统 - **Docker** 提供容器化平台 - **PostgreSQL** 提供可靠的数据库引擎 - 我们的 **指导老师** 提供指导和支持
### 🚀 由 PhantomNet 团队用 ❤️ 构建 **"Detecting Threats Before They Strike"** ![Python](https://img.shields.io/badge/-Python-3776AB?style=flat-square&logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/-FastAPI-009688?style=flat-square&logo=fastapi&logoColor=white) ![React](https://img.shields.io/badge/-React-61DAFB?style=flat-square&logo=react&logoColor=black) ![Docker](https://img.shields.io/badge/-Docker-2496ED?style=flat-square&logo=docker&logoColor=white) ![PostgreSQL](https://img.shields.io/badge/-PostgreSQL-336791?style=flat-square&logo=postgresql&logoColor=white) ![scikit-learn](https://img.shields.io/badge/-scikit--learn-F7931E?style=flat-square&logo=scikitlearn&logoColor=white) **最后更新**:2026 年 3 月 6 日 **状态**:🟢 第 10 周已交付 (第三阶段就绪)
标签:AMSI绕过, Apex, AV绕过, BOF, Capstone项目, CISA项目, Docker, FastAPI, FTP蜜罐, HTTP蜜罐, NIDS, PE 加载器, PostgreSQL, Python, React, Scikit-learn, SecOps, SSH蜜罐, Syscalls, Web安全, 云安全架构, 人工智能, 企业级安全, 分布式系统, 响应大小分析, 威胁情报, 威胁检测, 安全运营, 安全防御评估, 容器化, 开发者工具, 扫描框架, 攻击模拟, 攻防研究, 无后门, 机器学习, 欺骗防御, 测试用例, 用户模式Hook绕过, 红队行动, 网络安全, 蓝队分析, 蜜罐, 证书利用, 请求拦截, 进程注入, 逆向工具, 隐私保护, 驱动签名利用