sarimahsan/perfwatch-lstm

GitHub: sarimahsan/perfwatch-lstm

基于双向LSTM与硬件性能计数器的虚拟机侧信道攻击检测系统,提供从模型训练到Web推理的一站式解决方案。

Stars: 0 | Forks: 0

# 🛡️ HPC 攻击检测器 一个生产就绪的、基于时间序列的虚拟机攻击检测系统,由**双向 LSTM** 驱动。该系统基于硬件性能计数器 进行训练,提供端到端的功能:模型训练、Hugging Face 部署、FastAPI 推理后端和交互式 Web 仪表板。 ## 📊 数据集概述 基于 **ShieldVM 数据集**构建,该数据集捕获了不同工作负载(`idle`、`web_server`、`db_queries`)下的 200ms 性能计数器窗口。 | 类别 | 特征 | 在模型中的作用 | |----------|----------|---------------| | **Cache 指标** | `llc_load_misses`, `cache_references` | 主要攻击指标 | | **CPU 状态** | `instructions`, `cycles`, `branch_misses` | 归一化与辅助信号 | | **内存** | `mem_loads` | 辅助信号 | | **时间特征** | `llc_miss_rate_change`, `cache_ref_rate_change` | 变化率工程特征 | | **滚动统计** | `llc_mean_5w`, `llc_std_5w`, `cache_mean_5w` | 时间平滑与尖峰检测 | | **目标** | `label` (`0` = 安全, `1` = 攻击) | 二分类真实标签 | ## ✨ 功能特性 - 🔍 **BiLSTM 架构**:在 5 窗口序列中捕获前向/后向时间依赖性 - ☁️ **Hugging Face 集成**:一键推送模型,并在服务器启动时自动下载 - 🌐 **全栈推理**:FastAPI 后端 + 响应式 HTML/JS 前端 - 🧪 **智能测试**:逼真的 `安全`/`攻击` 场景生成器,并带有 API 验证 - 📈 **生产就绪**:有状态窗口缓冲、启用 CORS,兼容 Colab/Docker - 🔒 **无客户端密钥**:所有模型构件与预处理逻辑均保留在服务器端 ## 🏗️ 项目结构 ``` ShieldVM-Attack-Detector/ ├── ShieldVM_Dataset_Sample (1).xlsx # Sample dataset for testing ├── train_bilstm.py # Colab-ready training & HF upload script ├── backend.py # FastAPI inference server ├── index.html # Interactive web UI (drag & drop) ├── test_model.py # Local model validation script ├── autofill_test.py # Realistic payload generator & API tester ├── requirements.txt # Python dependencies └── README.md # You are here ``` ## 🚀 快速开始 ### 1️⃣ 安装依赖 ``` pip install -r requirements.txt ``` ### 2️⃣ 训练并上传至 Hugging Face 在 Google Colab 或本地运行训练脚本。更新 `HF_REPO_ID` 并进行身份验证: ``` from huggingface_hub import login login(token="hf_YOUR_TOKEN_HERE") # 运行 training cells → 模型自动 push 到 HF ``` ### 3️⃣ 启动后端服务器 ``` uvicorn backend:app --reload --host 0.0.0.0 --port 8000 ``` *如果在本地不存在模型构件,首次运行时服务器将从 HF 自动下载。* ### 4️⃣ 启动前端 只需双击 `index.html` 或提供服务: ``` python -m http.server 3000 # 打开 http://localhost:3000 ``` ## 🌐 API 参考 | 端点 | 方法 | 描述 | 负载 | |----------|--------|-------------|---------| | `/health` | `GET` | 服务器与模型状态 | None | | `/predict` | `POST` | 运行攻击检测 | `{"sequence": [{window1}, {window2}, ...]}` (必须为 5 个窗口) | ### 📥 请求示例 ``` { "sequence": [ {"workload_type": "idle", "llc_load_misses": 1153, "cache_references": 36912, "branch_misses": 753, "instructions": 1376778, "cycles": 1513575, "mem_loads": 317026, "llc_miss_rate_change": -0.036, "cache_ref_rate_change": -0.0239, "llc_mean_5w": 1181, "llc_std_5w": 61, "cache_mean_5w": 37246}, ... 4 more sequential windows ] } ``` ### 📤 响应示例 ``` { "prediction": "SAFE", "confidence": 0.942, "status": "success" } ``` ## 🧪 测试与验证 ### 本地模型测试 ``` python test_model.py # 在 sample data 上验证 architecture、preprocessing 和 inference ``` ### API 压力与场景测试 ``` python autofill_test.py # 生成逼真的 SAFE/ATTACK payloads,POST 到 /predict,并验证 outputs ``` ### Web UI 自动填充 1. 打开 `index.html` 2. 从下拉菜单中选择场景 (`🟢 安全`, `🔴 攻击`, `🎲 随机`) 3. 点击 **📋 自动填充测试数据** → 字段将自动填充 4. 点击 **🔍 运行预测** ## ⚙️ 架构与数据流 ``` Raw HPCs (200ms windows) ↓ Label Encoding + StandardScaler ↓ Sliding Window (SEQ_LEN=5) → Shape: [Batch, 5, 12] ↓ Bidirectional LSTM (Hidden: 64, Layers: 2) ↓ Last Time-Step → Dropout → Linear(1) ↓ Sigmoid → Threshold(0.5) → SAFE / ATTACK ``` ## 📦 部署指南 ### 🔹 Hugging Face 设置 1. 创建一个公开/私有模型仓库:`your-username/shieldvm-attack-detector` 2. 从 [hf.co/settings/tokens](https://huggingface.co/settings/tokens) 获取一个 `写入` 权限的 token 3. 在运行后端之前设置环境变量: export HF_TOKEN="hf_..." ### 🔹 生产强化 - 通过 FastAPI 提供静态文件服务:`app.mount("/", StaticFiles(directory=".", html=True), name="static")` - 使用带有多个 worker 的 `gunicorn`:`gunicorn backend:app -w 4 -k uvicorn.workers.UvicornWorker` - 添加速率限制与请求验证(已包含 `pydantic`) - 在内存中缓存 `scaler`、`le` 和模型(已自动处理) ## 🛠️ 环境依赖 ``` torch>=2.0.0 pandas>=2.0.0 scikit-learn>=1.3.0 fastapi>=0.100.0 uvicorn>=0.23.0 pydantic>=2.0.0 huggingface_hub>=0.16.0 joblib>=1.3.0 numpy>=1.24.0 ``` ## 📜 许可证 MIT 许可证。可免费用于学术、研究和商业用途。请注明出处。 ## 🤝 贡献 欢迎提交 Pull request!可改进的方向包括: - [ ] 用于实时 VM 监控的 WebSocket 流式传输 - [ ] 用于边缘部署的 ONNX 导出 - [ ] 针对不平衡完整数据集的类加权损失 - [ ] Docker Compose 配置 (后端 + 前端 + 反向代理)
标签:API服务, AV绕过, BiLSTM, FastAPI, HPC, Hugging Face, ShieldVM数据集, Web应用开发, 二分类, 人工智能, 侧信道分析, 侧信道攻击检测, 入侵检测系统, 凭据扫描, 前端仪表盘, 双向LSTM, 安全数据湖, 序列模型, 异常检测, 数据可视化, 数据科学, 时间序列分析, 机器学习部署, 模型推理, 深度学习, 用户模式Hook绕过, 硬件性能计数器, 网络安全, 虚拟机安全, 资源验证, 逆向工具, 防御规避检测, 隐私保护