CyberNina/MLSProject

GitHub: CyberNina/MLSProject

这是一个利用网络侧信道分析检测 IoT 设备加密劫持,并评估机器学习模型对抗攻击鲁棒性的研究框架。

Stars: 0 | Forks: 0

# 通过侧信道分析检测 IoT 网络中的加密劫持 此仓库包含一个用于检测 IoT 设备(Raspberry Pi 4)上 **Cryptojacking(加密劫持)** 的机器学习框架。通过仅分析网络元数据(**侧信道分析**),该方法即使在加密流量中也能识别恶意活动。该系统完全基于网络数据包的时序和大小统计信息对流量进行分类。 训练并比较了两个模型: - Random Forest (RF) — 基准、可解释的集成模型 - Deep Learning MLP — 神经网络,2 个隐藏层(64 → 32 个神经元) ## 数据管道 - 预处理 自动化管道通过几个关键阶段将原始网络捕获转换为结构化数据集: 1. **原始数据加载:** 处理从网络流量捕获(PCAP)生成的 CSV 文件。 2. **MAC 过滤:** 使用固定的 4 个已知 Raspberry Pi MAC 地址列表进行严格过滤,以隔离目标流量。 3. **特征工程:** 提取在 **10 数据包滚动窗口** 上计算的 6 个关键指标(时间和长度)。 4. **隔离窗口:** 为了确保数学准确性,窗口仅在单个捕获文件内计算,防止跨文件数据污染。 5. **缩放:** 共享的 `StandardScaler` *仅* 在训练集上进行拟合,以防止数据泄露。 ## 项目结构 ``` LabML/ ├── run_all.py # Main pipeline orchestrator ├── src/ │ ├── main.py # Phase 1: data loading & feature engineering │ ├── train_rf.py # Phase 2: Random Forest training + shared scaler │ ├── train_dl.py # Phase 3: Deep Learning (MLP) training │ ├── predict.py # Phase 4: real-time simulation & RF vs DL comparison │ └── visualize_results.py # Phase 5: plot generation for thesis/presentation ├── attacks/ │ └── advers_attack.py # Phase 6: adversarial robustness evaluation ├── utils/ │ └── loader.py # Core data loading, MAC filtering, windowing ├── data/ │ ├── benign/ # Raw benign captures (Wireshark CSV export) │ ├── malicious/ # Raw malicious captures (Wireshark CSV export) │ ├── processed_traffic.csv # Output of Phase 1 (625,287 windows, shuffled) │ ├── dev_set.csv # 90% split for training │ └── holdout_dataset.csv # 10% holdout, never seen during training ├── models/ │ ├── rf_model.pkl # Trained Random Forest │ ├── mlp_model.pth # Trained MLP (best epoch via early stopping) │ └── scaler.pkl # Shared StandardScaler (fitted on RF train set only) └── results/ └── plots/ # All generated figures (confusion matrices, ROC, etc.) ``` ## 数据集摘要 最终处理后的数据集包含 **625,287 个窗口**。 | 类别 | 窗口数 | 占比 | | :--- | :--- | :--- | | **Benign (0)** | 561,098 | 89.7% | | **Malicious (1)** | 64,189 | 10.3% | | **总计** | **625,287** | **100%** | ## 1. 基准性能(标准条件) 在 10% 的未见 Holdout 集(62,529 个窗口)上评估的结果。 ### Random Forest (基准) | 类别 | 精确率 | 召回率 | F1 分数 | | :--- | :--- | :--- | :--- | | Benign | 0.9957 | 0.9973 | 0.9965 | | **Malicious** | **0.9761** | **0.9623** | **0.9692** | | **准确率** | | | **99.37%** | ### Deep Learning (MLP) | 类别 | 精确率 | 召回率 | F1 分数 | | :--- | :--- | :--- | :--- | | Benign | 0.9908 | 0.9807 | 0.9857 | | **Malicious** | **0.8451** | **0.9204** | **0.8811** | | **准确率** | | | **97.45%** | ## 2. 特征重要性 模型严重依赖时间节奏来区分挖矿活动: * **Time_Mean:** 0.3555 * **Length_Max:** 0.2264 * **Time_Var:** 0.1937 * **Length_Mean:** 0.1262 ## 3. 对抗鲁棒性测试 模型受到 4 种规避攻击的测试,以评估在敌对环境下的抵御能力。 ### 攻击下的 Random Forest | 攻击类型 | 召回率 | 下降幅度 | 状态 | | :--- | :---: | :---: | :--- | | Baseline (无攻击) | 96.23% | — | — | | Timing Jitter 5% | 95.09% | -1.14% | Resistant | | Timing Jitter 10% | 94.38% | -1.85% | Resistant | | Timing Jitter 20% | 93.55% | -2.68% | Mild Drop | | Padding 30 bytes | 82.16% | -14.07% | Vulnerable | | Padding 50 bytes | 79.36% | -16.87% | Vulnerable | | Padding 100 bytes | 41.38% | -54.85% | Critical Failure | | Mimicry 20% | 77.69% | -18.54% | Vulnerable | | Mimicry 30% | 68.56% | -27.67% | Vulnerable | | Burst Shaping 20% | 94.33% | -1.90% | Resistant | | Burst Shaping 40% | 91.46% | -4.77% | Mild Drop | | **平均值** | **81.80%** | **-14.43%** | — | ### 攻击下的 Deep Learning | 攻击类型 | 召回率 | 下降幅度 | 状态 | | :--- | :---: | :---: | :--- | | Baseline (无攻击) | 92.04% | — | — | | Timing Jitter 5% | 92.05% | ~0% | Resistant | | Timing Jitter 10% | 92.04% | ~0% | Resistant | | Timing Jitter 20% | 91.84% | -0.20% | Resistant | | Padding 30 bytes | 91.87% | -0.17% | Resistant | | Padding 50 bytes | 91.81% | -0.23% | Resistant | | Padding 100 bytes | 91.21% | -0.83% | Resistant | | Mimicry 20% | 86.04% | -6.00% | Vulnerable | | Mimicry 30% | 83.17% | -8.87% | Vulnerable | | Burst Shaping 20% | 85.28% | -6.76% | Vulnerable | | Burst Shaping 40% | 59.96% | -32.08% | Critical Failure | | **平均值** | **86.53%** | **-5.51%** | — | ## 4. 最终对比与结论 | 指标 | Random Forest | Deep Learning | | :--- | :--- | :--- | | **标准召回率** | **0.9623** | 0.9204 | | **平均攻击降幅** | -14.43% | **-5.51%** | | **鲁棒性** ## 快速开始 ``` # 安装 dependencies pip install -r requirements.txt # 运行整个 pipeline python3 run_all.py ```
标签:Apex, Kubernetes 安全, Raspberry Pi, 侧信道分析, 元数据分析, 内存执行, 凭据扫描, 加密劫持检测, 多层感知机, 对抗攻击, 异常检测, 敏感信息检测, 数据预处理, 机器学习, 标准化, 模型鲁棒性, 流量分类, 深度学习, 物联网安全, 特征工程, 网络安全, 网络数据包, 网络流量分析, 逆向工具, 随机森林, 隐私保护