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软件, 代码示例, 入侵检测系统, 凭据扫描, 威胁情报, 安全数据湖, 安全管理面板, 实时网络监控, 开发者工具, 数据分析, 无后门, 机器学习, 桌面应用, 流量可视化, 测试用例, 深度学习, 漏洞挖掘, 神经网络, 网络安全, 自动化防御, 逆向工具, 防火墙, 隐私保护