prajchavan/SecureChat

GitHub: prajchavan/SecureChat

具备 AI 驱动图像隐写术检测能力的实时聊天应用,自动扫描每张分享图片中隐藏的恶意载荷与隐蔽数据。

Stars: 0 | Forks: 0

# 🔒 SecureChat — AI 驱动的安全通讯应用
**具备 AI 驱动的隐写术检测和图像威胁分析的实时聊天系统** [![Node.js](https://img.shields.io/badge/Node.js-20-green)](https://nodejs.org/) [![React](https://img.shields.io/badge/React-18-blue)](https://reactjs.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.109-teal)](https://fastapi.tiangolo.com/) [![PyTorch](https://img.shields.io/badge/PyTorch-2.2-red)](https://pytorch.org/) [![Docker](https://img.shields.io/badge/Docker-Compose-blue)](https://docker.com/)
## 📋 概述 SecureChat 是一个生产级、WhatsApp 风格的聊天应用,每张分享的图片都会自动进行以下扫描: - **隐写术 (Steganography)** — 隐藏在像素值中的隐蔽数据 - **恶意内容** — 可疑的模式和异常 - **隐藏的 Payload** — 嵌入的文件、可执行文件或编码文本 该系统使用**混合 ML + 启发式 pipeline**,结合了 CNN 推理、统计隐写分析和基于规则的 LSB 检测。 ## 🏗️ 架构 ``` ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ Backend │────▶│ Redis │ │ React+Vite │◀────│ Node.js │◀────│ Queue │ │ (Nginx) │ │ Express │ └──────┬───────┘ └─────────────┘ │ Socket.io │ │ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ │ Worker │ │ MongoDB │◀──────│ (Node.js) │ └──────────────┘ └──────┬───────┘ │ ┌──────────────┐ │ ML Service │ │ FastAPI │ │ PyTorch │ └──────────────┘ ``` ### 数据流 1. **用户上传图片** → Frontend 发送至 Backend REST API 2. **Backend** 保存文件,创建 Message(状态:`scanning`),并将任务发布到 Redis 3. **Worker** 获取任务,将图片发送至 ML Service 4. **ML Service** 运行流程:验证 → LSB 检测 → 统计分析 → CNN 推理 → 混合评分 5. **Worker** 存储 ScanResult,更新 Message,并发送 WebSocket 事件 6. **Frontend** 向接收方展示带有风险徽章的扫描结果浮层 ## 🚀 快速开始 ### 前置条件 - Docker & Docker Compose - Git ### 使用 Docker 运行 ``` # Clone 仓库 git clone && cd Cap_pro # 复制 environment 文件 cp .env.example .env # 构建并启动所有服务 docker-compose up --build # 访问应用 # Frontend: http://localhost:3000 # Backend API: http://localhost:5000 # ML Service: http://localhost:8000 ``` ### 开发模式(不使用 Docker) ``` # Terminal 1: 启动 MongoDB & Redis (必需) docker-compose up mongodb redis # Terminal 2: Backend cd backend && npm install && npm run dev # Terminal 3: Worker cd backend && npm run worker:dev # Terminal 4: ML Service cd ml-service && pip install -r requirements.txt uvicorn app.main:app --reload --port 8000 # Terminal 5: Frontend cd frontend && npm install && npm run dev ``` ## 🧠 ML 模型 ### 架构 **受 SRNet 启发的 CNN**,结合了 SRM(Spatial Rich Model)滤波器预处理: | 层级 | 详情 | |-------|---------| | SRM 滤波器 | 3 个固定的高通滤波器(9 个输出通道) | | Conv 初始层 | 9 → 32 个通道 | | ResBlock 1-5 | 32 → 64 → 128 → 256 → 512 个通道 | | 全局池化 | AdaptiveAvgPool2d | | FC Head | 512 → 256 → 1 (sigmoid) | ### 混合评分 | 组件 | 权重 | 方法 | |-----------|--------|--------| | CNN 预测 | 50% | 深度学习推理 | | 统计分析 | 30% | DCT, RS, SPA, 熵 | | LSB 检测 | 20% | 卡方检验,模式分析 | **阈值:** < 0.3 = 安全,0.3–0.7 = 可疑,> 0.7 = 不安全 ### 数据集 | 数据集 | 大小 | 链接 | |---------|------|------| | ALASKA2 | 7.5 万张图片 | [Kaggle](https://www.kaggle.com/c/alaska2-image-steganalysis) | | BOSSbase | 1 万张图片 | [CVUT](http://agents.fel.cvut.cz/boss/) | | 自定义 LSB | 动态生成 | 内置生成器 | ### 训练 ``` cd ml-service # 生成自定义 LSB stego 图像 python training/dataset.py \ --cover-dir data/cover \ --output-dir data/stego \ --num-images 500 # 训练模型 python training/train.py \ --cover-dir data/cover \ --stego-dir data/stego \ --epochs 50 \ --batch-size 32 \ --output-dir models ``` ## 🔐 安全特性 - **JWT 身份验证**,使用 bcrypt 进行密码哈希处理 - **速率限制**(涵盖通用、身份验证、上传 endpoint) - **文件类型验证**(白名单:JPEG, PNG, GIF, WebP, BMP) - **文件大小限制**(每次上传最大 10MB) - **非 root 权限的 Docker 容器** - **Helmet.js** 安全标头 - 使用 express-validator 进行**输入清理** - **禁止直接暴露文件** — 图片仅通过应用层进行服务 - **沙盒化扫描** — ML 服务在隔离的容器中运行 ## 🐳 部署 ### AWS / GCP / Azure 1. **构建镜像** 并推送到容器镜像仓库(ECR, GCR, ACR) 2. **部署** 使用 ECS/Fargate、GKE 或 AKS 3. **外部服务**:使用托管的 MongoDB Atlas 和 ElastiCache/Memorystore 来托管 Redis 4. **负载均衡器**:在 Backend 和 Frontend 前端部署 ALB/云端负载均衡器 5. **SSL**:使用 ACM/Let's Encrypt 实现 HTTPS ### 环境变量 | 变量 | 服务 | 描述 | |----------|---------|-------------| | `JWT_SECRET` | Backend | JWT 签名密钥(在生产环境中务必修改!) | | `MONGODB_URI` | Backend/Worker | MongoDB 连接字符串 | | `REDIS_HOST` | Backend/Worker | Redis 主机名 | | `ML_SERVICE_URL` | Worker | ML 服务 URL | | `MODEL_PATH` | ML Service | 训练好的模型权重路径 | ### 扩展建议 - **Backend**:在负载均衡器后进行水平扩展(为 WebSocket 配置粘性会话) - **Worker**:根据队列深度进行扩展 - **ML Service**:使用 GPU 实例加快推理速度,根据队列深度进行扩展 - **MongoDB**:使用副本集保障高可用性 - **Redis**:生产环境使用 Redis Cluster ## 📂 项目结构 ``` Cap_pro/ ├── frontend/ # React + Vite │ ├── src/ │ │ ├── components/ # Sidebar, ChatWindow, MessageBubble, ImagePreview, ScanResultBadge │ │ ├── contexts/ # AuthContext, SocketContext │ │ ├── pages/ # LoginPage, RegisterPage, ChatPage │ │ └── services/ # api.js (Axios + JWT) │ ├── Dockerfile # Multi-stage build + Nginx │ └── vite.config.js ├── backend/ # Node.js + Express + Socket.io │ ├── src/ │ │ ├── config/ # db.js, redis.js │ │ ├── middleware/ # auth.js, rateLimiter.js, upload.js │ │ ├── models/ # User, Message, ScanResult │ │ ├── routes/ # auth, messages, upload │ │ ├── services/ # queue.js, socketManager.js │ │ ├── worker.js # Queue worker │ │ └── server.js # Express entry point │ └── Dockerfile ├── ml-service/ # Python + FastAPI + PyTorch │ ├── app/ │ │ ├── main.py # FastAPI endpoints │ │ ├── scanner.py # Pipeline orchestrator │ │ ├── lsb_detector.py # Rule-based LSB detection │ │ ├── statistical_analyzer.py # DCT, RS, SPA analysis │ │ ├── cnn_model.py # SRNet-inspired CNN │ │ ├── inference.py # Model loading + hybrid scoring │ │ ├── preprocessing.py # Image validation + transforms │ │ └── schemas.py # Pydantic models │ ├── training/ │ │ ├── train.py # Training pipeline │ │ ├── dataset.py # Dataset loader + LSB generator │ │ └── evaluate.py # Metrics + evaluation │ └── Dockerfile ├── docker-compose.yml # All 6 services ├── .env.example └── README.md ``` ## 🔮 未来增强功能 - 支持多用户房间的**群聊** - 基于 Signal Protocol 的**端到端加密**(E2EE) - 通过 WebRTC 实现**语音/视频通话** - 集成 ClamAV 进行**恶意软件扫描** - **高级模型**:使用预训练的 EfficientNet/ResNet 进行隐写分析 - 结合用户反馈环路的**模型重训练 pipeline** - **推送通知**(PWA / Firebase) - **消息搜索**和媒体库 - 带有扫描分析功能的**管理仪表板** - 使用 S3/GCS 文件存储实现**可扩展的图片上传** - 使用 Helm charts 进行 **Kubernetes 部署** - 使用 GitHub Actions 的 **CI/CD pipeline** - 基于 Redis 滑动窗口的**单用户速率限制** - **多语言支持** (i18n) ## 📄 许可证 MIT 许可证 — 详情请参阅 LICENSE 文件。
标签:Apex, AV绕过, DNS 反向解析, FastAPI, MITM代理, React, Syscalls, Web安全, 凭据扫描, 图像隐写分析, 威胁情报, 实时聊天, 开发者工具, 搜索引擎查询, 机器学习, 蓝队分析, 请求拦截