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绕过, 硬件性能计数器, 网络安全, 虚拟机安全, 资源验证, 逆向工具, 防御规避检测, 隐私保护