JustVoidy/VanguardSecure

GitHub: JustVoidy/VanguardSecure

一个基于机器学习的实时 DDoS 检测与缓解桌面平台,整合了流量捕获、ML 推理和可视化仪表盘,帮助用户快速发现并响应 SYN/UDP 泛洪攻击。

Stars: 0 | Forks: 0

# VanguardSecure — NetShield 一个实时的 DDoS 检测与缓解仪表盘。数据包在用户机器上进行捕获,由托管的 ML 推理服务器进行评分,并在由云 API 支持的 Electron 桌面应用程序中进行可视化展示。 ## 架构 ``` [Desktop App — Electron] └── React UI (dashboard, charts, alerts) └── Capture subprocess (Scapy) │ ├── POST /predict ──────────► [Inference Server — Render] │ FFNN model (TensorFlow) │ 47-feature DDoS classifier │ └── POST /events/ingest ────► [Backend API — Render] FastAPI + PostgreSQL WebSocket /ws/ai /ws/net │ React dashboard ◄──────┘ ``` ## 功能特性 - **实时数据包捕获** — Scapy 嗅探网络流量,为每个连接提取 47 个流特征 - **ML 推理** — 在 CIC-DDoS2019 上训练的前馈神经网络 (256→128→64→1),可对 SYN 和 UDP 泛洪攻击进行分类 - **实时仪表盘** — 基于 WebSocket 驱动的图表:威胁级别、活动流、主要攻击者 IP、带宽、SYN/UDP 速率 - **缓解控制** — 黑名单/白名单管理,可配置的警报阈值 - **JWT 身份验证** — Bcrypt 密码哈希,8 小时 token 会话 - **Electron 桌面端** — 适用于 Linux、macOS 和 Windows 的原生安装程序;捕获过程作为受管子进程运行 ## 项目结构 ``` ├── backend/ │ ├── app/ │ │ ├── main.py # FastAPI app, WebSocket servers, startup │ │ ├── routes/ # auth, dashboard, inference, mitigation, profile │ │ ├── models/ # SQLAlchemy ORM (Event, User) │ │ ├── services/ # PredictorService (local inference) │ │ └── utils/ # JWT helpers │ ├── server.py # Standalone inference server (port 8001) │ └── render.yaml # Render deployment config ├── frontend/ │ ├── src/ │ │ ├── App.jsx # Root component, WebSocket hooks, event polling │ │ ├── components/ # Header, Sidebar, KpiCard, ChartCard, EventsPage │ │ └── Pages/ # AdminLoginPage, Settings, MitigationSettings │ ├── main.js # Electron main process, IPC capture control │ └── preload.js # Context bridge (electronConfig, capture APIs) ├── scripts/ │ └── capture.py # Scapy capture + flow builder + ingest client ├── Training/ │ └── trainer.py # PyTorch FFNN trainer (outputs .keras + .pt) ├── config/ │ └── settings.json # Runtime config (threshold, interface, URLs) ├── capture.spec # PyInstaller spec for capture binary ├── build.sh # Full build pipeline (capture binary + Electron) └── requirements.txt ``` ## 快速开始 (开发) ### 前置条件 - Python 3.10+ - Node.js 18+ - 具有 `CAP_NET_RAW` 权限的 Linux 系统,或以 root 身份运行捕获程序 ### 后端 ``` python -m venv .venv source .venv/bin/activate # or: . .venv/bin/activate.fish pip install -r requirements.txt # 设置所需 env vars export ENV=development export JWT_SECRET=your-dev-secret # 启动 inference server (端口 8001) cd backend python server.py # 启动 main API (端口 8000) — 新 terminal uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` ### 前端 (Electron) ``` cd frontend npm install npm run electron-dev ``` 应用会在 Electron 内打开 `localhost:3000`。进入 **Settings → Connection** 并设置你的后端 URL。 ## 部署 (Render) 在 `backend/render.yaml` 中定义了两个服务: | 服务 | 用途 | 启动命令 | |---|---|---| | `netshield-api` | FastAPI 后端 + WebSocket | `uvicorn app.main:app` | | `netshield-inference` | TensorFlow 推理服务器 | `uvicorn server:app` | **`netshield-api` 所需的环境变量:** | 变量 | 值 | |---|---| | `JWT_SECRET` | 一个强随机密钥(可通过 `python -c "import secrets; print(secrets.token_hex(32))"` 生成) | | `DATABASE_URL` | PostgreSQL 连接字符串(来自 Render 数据库) | | `CORS_ORIGINS` | `*`(或你的特定域名) | | `ENV` | `production` | ## 构建桌面应用 ``` # 从项目根目录 (venv 已激活) ./build.sh ``` 这将生成: - `dist/capture` — 独立的捕获二进制文件 - `frontend/dist/` — 适用于你平台的 Electron 安装程序 ## 模型训练 ``` cd Training python trainer.py --syn data/Syn.csv --udp data/UDP.csv ``` 输出至项目根目录:`ddos_ffnn.keras`、`ddos_ffnn.pt`、`ddos_scaler.pkl`、`ddos_features.pkl`、`ddos_metrics.json`。 训练数据:[CIC-DDoS2019](https://www.unb.ca/cic/datasets/ddos-2019.html) — 由于文件过大,未包含在本仓库中。 ## 技术栈 | 层级 | 技术 | |---|---| | 桌面端 | Electron 41, React 19, Chart.js 4 | | 后端 API | FastAPI, SQLAlchemy, PostgreSQL | | 推理 | TensorFlow / Keras, scikit-learn | | 训练 | PyTorch, NumPy, pandas | | 捕获 | Scapy, Python | | 认证 | JWT (python-jose), bcrypt (passlib) | | 打包 | PyInstaller, electron-builder |
标签:AI安全, Apex, AV绕过, Chat Copilot, CISA项目, Cloudflare, DDoS检测, DDoS防御, Electron, FastAPI, JWT认证, Linux软件, macOS软件, MITRE ATT&CK, PostgreSQL, Python, React, Scapy, SYN洪水攻击, Syscalls, TensorFlow, UDP洪水攻击, WebSockets, Windows软件, 代码示例, 入侵检测系统, 凭据扫描, 威胁情报, 安全数据湖, 安全管理面板, 实时网络监控, 开发者工具, 数据分析, 无后门, 机器学习, 桌面应用, 流量可视化, 测试用例, 深度学习, 漏洞挖掘, 神经网络, 网络安全, 自动化防御, 逆向工具, 防火墙, 隐私保护