sriram21-09/PhantomNet
GitHub: sriram21-09/PhantomNet
一个结合机器学习的分布式蜜罐框架,通过多协议欺骗陷阱和实时威胁评分实现企业级攻击检测与分析。
Stars: 2 | Forks: 1
# 🛡️ PhantomNet – AI 驱动的分布式蜜罐欺骗框架
#### 2. 数据流图
#### 3. 组件交互
#### 4. 部署架构
#### 5. 数据库模式 (ERD)
#### 6. 网络拓扑
#### 7. CI/CD 流水线
#### 8. 安全架构
#### 9. 技术栈图
#### 10. 攻击流程时序
## 🛠️ 技术栈
### 后端
| 组件 | 技术 | 用途 |
|-----------|-----------|---------|
| **语言** | 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** 提供可靠的数据库引擎
- 我们的 **指导老师** 提供指导和支持









**一个由 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. 系统架构
#### 2. 数据流图
#### 3. 组件交互
#### 4. 部署架构
#### 5. 数据库模式 (ERD)
#### 6. 网络拓扑
#### 7. CI/CD 流水线
#### 8. 安全架构
#### 9. 技术栈图
#### 10. 攻击流程时序
### 🚀 由 PhantomNet 团队用 ❤️ 构建
**"Detecting Threats Before They Strike"**






**最后更新**: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绕过, 红队行动, 网络安全, 蓝队分析, 蜜罐, 证书利用, 请求拦截, 进程注入, 逆向工具, 隐私保护, 驱动签名利用