ctokx/mouse-behavioral-biometrics-offline-rl-
GitHub: ctokx/mouse-behavioral-biometrics-offline-rl-
基于MuJoCo物理模拟和离线强化学习的鼠标轨迹合成工具,用于生成能够通过机器人检测的拟人化鼠标运动数据。
Stars: 3 | Forks: 0

# BMDS (生物力学鼠标动态合成器)
BMDS 生成能够通过机器人检测的合成鼠标轨迹。
它涵盖了 Balabit 遥测数据摄取、轨迹分割、运动学特征提取、MuJoCo 物理模拟、离线 RL 策略训练 (IQL/CQL/BC)、后处理以及针对三个独立机器人检测器的定量评估。
## 仓库结构
- `bmds/` — 核心包(数据、环境、奖励、训练、工具)
- `scripts/` — 评估和可视化脚本 (01–12)
- `run_training.py` — 端到端流水线入口点
- `data/` — 原始和处理后的数据集(gitignored)
- `models/` — 保存的模型文件(gitignored)
- `output/` — 可视化和日志
## 设置
```
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
npm install # for DELBOT bot detector
```
## 快速开始
完整流程(下载 → 数据集 → 训练 → 评估):
```
python run_training.py
```
推荐训练方式(IQL,复用现有数据集):
```
python run_training.py --skip-download --skip-dataset-build --algorithm iql --steps 100000
```
从训练好的模型生成轨迹:
```
python scripts/06_generate_trajectories.py --start 100 100 --end 800 500 --plot
```
运行完整的机器人检测严苛测试(DELBOT RNN + GradBoost + One-Class SVM):
```
python scripts/11_multi_detector_gauntlet.py --n-movements 100 --seed 42
```
将后处理后的输出可视化为动画 GIF:
```
python scripts/12_visualize_postprocessed.py --n 5
```
## 评估脚本
| 脚本 | 用途 |
|---|---|
| `09_bot_detection_test.py` | 基于特征的 GradBoost + OCSVM 检测器 |
| `10_third_party_bot_test.py` | InceptionV3 图像检测器 |
| `11_multi_detector_gauntlet.py` | 一次性运行所有三个检测器 |
| `12_visualize_postprocessed.py` | 后处理轨迹的动画 GIF |
## 备注
- 主要算法:IQL(在 RTX 4060 上约 2 分钟内达到 8/8 个目标)
- 后处理:振荡截断 → 高斯平滑(σ=2.5,3 帧边界固定)→ 侧向拱形 → 端点停顿并带有 0.28px 抖动
- 主要依赖:MuJoCo 3.x, d3rlpy 1.1.x, PyTorch, Gymnasium, scikit-learn, Node.js (DELBOT)
标签:Balabit数据集, CQL, d3rlpy, IQL, MITM代理, MuJoCo物理仿真, Python, 人机交互, 凭据扫描, 反欺诈, 合成数据生成, 强化学习, 持续认证, 无后门, 深度学习, 生物力学, 离线强化学习, 行为动力学, 行为生物识别, 逃逸机器人检测, 逆向工具, 鼠标轨迹模拟