pranjalkhare2004/group_43_Image-based-malware-analysis-capstone

GitHub: pranjalkhare2004/group_43_Image-based-malware-analysis-capstone

将恶意软件二进制文件转换为 RGB 图像,利用 YOLOv8、YOLOv11 和 Vision Transformer 对九类恶意软件家族进行自动分类,实现无需沙箱执行的静态视觉化检测方案。

Stars: 0 | Forks: 0

# MalwareVision — 基于 YOLO 和 Vision Transformers 的图像恶意软件分类
![VIT Bhopal University](https://img.shields.io/badge/VIT%20Bhopal%20University-Capstone%20Project-blue?style=for-the-badge) ![Python](https://img.shields.io/badge/Python-3.10%2B-3776AB?style=for-the-badge&logo=python&logoColor=white) ![PyTorch](https://img.shields.io/badge/PyTorch-2.0%2B-EE4C2C?style=for-the-badge&logo=pytorch&logoColor=white) ![YOLOv8](https://img.shields.io/badge/YOLOv8%20%7C%20YOLOv11-Ultralytics-00FFFF?style=for-the-badge) ![ViT](https://img.shields.io/badge/Vision%20Transformer-ViT--Base%2F16-blueviolet?style=for-the-badge) ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge) **本科毕业设计项目 (阶段 2) — B.Tech CSE (网络安全与数字取证)** **计算机科学工程与人工智能学院** **VIT Bhopal University, Kothrikalan, Sehore, Madhya Pradesh 466114** **2026 年 3 月**
## 👥 团队 — 第 43 组 | 姓名 | 学号 | 角色 | |---|---|---| | **Pranjal Khare** | 22BCY10020 | 负责人 — 架构设计与报告 | | **Sylan Padmakumar** | 22BCY10176 | YOLOv8 及 YOLOv11 实现 | | **Anand Pandey** | 22BCY10122 | 数据集流水线与预处理 | | **Vikash Kumar** | 22BCY10030 | 评估与指标 | | **Ayush Monga** | 22BCY10267 | Vision Transformer (ViT) 实现 | ### 🎓 指导教师 | 角色 | 姓名 | 职称 | |---|---|---| | **项目指导老师** | Dr. Hariharasitaraman S | 副教授 Grade 1, SCOPE, VIT Bhopal University | | **项目主席 / 评审人** | Dr. Ajay Kumar Phulre | 助理教授 G2, SCOPE, VIT Bhopal University | | **项目主席 / 评审人** | Dr. Adarsh Patel | 助理教授 G2, SCOPE, VIT Bhopal University | ## 📌 目录 1. [问题陈述](#-problem-statement) 2. [为何传统方法难以胜任](#-why-traditional-methods-fall-short) 3. [我们的方案 — MalwareVision](#-our-approach--malwarevision) 4. [数据集](#-dataset) 5. [用于恶意软件分类的 YOLOv8 和 YOLOv11](#-yolov8--yolov11-for-malware-classification) 6. [Vision Transformer (ViT)](#-vision-transformer-vit) 7. [结果与模型比较](#-results--model-comparison) 8. [仓库结构](#-repository-structure) 9. [致谢](#-acknowledgements) ## 🎯 问题陈述 恶意软件仍然是现代网络安全中最关键且快速演变的威胁之一。安全供应商现在每天收到超过 **450,000 个新的恶意软件样本**(截至 2024 年),庞大的数量使得人工分类和传统的自动化流水线无法进行大规模处理。 传统的检测系统越来越难以跟上复杂的规避技术,包括: - **多态恶意软件** — 在每次执行时动态重写自身代码的恶意软件 - **变形恶意软件** — 在保留功能的同时完全重构自身代码的恶意软件 - **加壳可执行文件** — 经过压缩或加密以掩盖其真实 payload 的二进制文件 - **零日变体** — 没有现有特征库的、前所未见的样本 **MalwareVision** 通过将原始的恶意软件二进制文件转换为 RGB 视觉表示,并应用最先进的深度学习架构——**YOLOv8**、**YOLOv11** 和 **Vision Transformers (ViT-Base/16)**——解决了这个问题,从而实现对来自 Microsoft BIG 2015 基准数据集的九个恶意软件家族的自动识别。 ## ⚠️ 为何传统方法难以胜任 | 方法 | 局限性 | |---|---| | **基于签名的检测** | 无法应对多态、变形和零日变体。对当代恶意软件的检测率不到 60% | | **动态沙箱分析** | 计算开销高;容易被具备沙箱感知能力的恶意软件检测并规避分析环境 | | **静态反汇编** | 容易被加壳、混淆和代码扰乱所击败 | | **人工分类** | 无法扩展到每天处理 450,000+ 个样本 | **基于图像的方法**克服了这些局限性,因为: - 恶意软件二进制文件的视觉纹理**即使在压缩或加密后依然存在** - 恶意软件家族会复用结构布局、库和加密方案——从而产生**视觉上可区分的指纹** - 分类完全在**静态字节数据**上运行——无需执行,也不需要沙箱 - RGB 色图编码(Viridis)通过捕捉人眼不可见的熵分布和字节转换梯度,相比灰度图提供了 **2-4% 的准确率提升** ## 🔬 我们的方案 — MalwareVision ### 二进制到图像的转换流水线 每个恶意软件样本在输入到任何模型之前,都会经过一个标准化的 4 步预处理流水线: ``` Raw Malware Binary (.bytes) │ ▼ ┌─────────────────────────────┐ │ 1. Byte Parsing │ Read raw hex stream → uint8 array │ (0–255 integer values) │ └─────────────┬───────────────┘ ▼ ┌─────────────────────────────┐ │ 2. Spatial Reshaping │ Reshape to 2D matrix (width = 256px) │ (Fixed-width 256px) │ Preserves locality of code sections └─────────────┬───────────────┘ ▼ ┌─────────────────────────────┐ │ 3. Viridis Colormap │ Map each byte → RGB value via │ RGB Encoding │ perceptually-uniform Viridis colormap └─────────────┬───────────────┘ ▼ ┌─────────────────────────────┐ │ 4. Standardization │ Resize all images to 224×224 px │ (224×224 pixels) │ for uniform model input └─────────────────────────────┘ │ ▼ RGB Malware Image (ready for model input) ``` 生成的图像在每个恶意软件家族中具有视觉独特性——结构模式、操作码序列和熵分布产生了即使在混淆下也能保持的可识别纹理。 ## 📦 数据集 **微软恶意软件分类挑战赛 — BIG 2015** - 横跨 **9 个恶意软件家族**的 **10,868 个恶意软件样本** - 划分:**80% 训练集 / 10% 验证集 / 10% 测试集**(按家族分层抽样) | 恶意软件家族 | 类型 | 主要特征 | |---|---|---| | Ramnit | 蠕虫 / 文件感染器 | 将代码注入 HTML 和可执行文件 | | Lollipop | 广告软件 | 具有混淆、侵犯隐私及广告生成行为 | | Kelihos_ver3 | 僵尸网络 / 后门 | P2P 命令与控制基础设施 | | Vundo | 木马 | 具备 rootkit 和隐身能力的下载器 | | Simda | 后门 | 快速变换网络,payload 注入 | | Tracur | 木马 | 恶意重定向,浏览器漏洞利用 | | Kelihos_ver1 | 僵尸网络 | Kelihos 的早期变体;以网络行为为中心 | | Obfuscator.ACY | 加壳恶意软件 | 多层代码混淆 | | Gatak | 信息窃取器 | 窃取凭据,外传敏感数据 | ## ⚡ 用于恶意软件分类的 YOLOv8 和 YOLOv11 YOLO 架构最初是为实时目标检测而设计的,最近已被适配用于**图像分类任务**,并具有出色的效率。我们在分类模式下评估了 **YOLOv8-m**(中等)和 **YOLOv11-m** 变体。 ### 架构概述 ``` Malware RGB Image (224×224×3) │ ▼ ┌─────────────────────────────────────┐ │ YOLO Backbone │ │ (CSPDarknet / C3k2 blocks) │ │ Hierarchical feature extraction │ │ Local texture & pattern learning │ └─────────────┬───────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ Neck / Feature Pyramid │ │ (YOLOv11: C2PSA Attention blocks) │ │ Multi-scale feature aggregation │ │ Attention-augmented shortcuts │ └─────────────┬───────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ Classification Head │ │ Global Average Pooling │ │ Fully Connected → 9 classes │ │ Softmax Output │ └─────────────────────────────────────┘ │ ▼ Predicted Malware Family (+ Confidence Score) ``` ### YOLOv11 — 相较于 v8 的关键架构改进 - **C3k2 模块** — 采用更小卷积核的跨阶段局部网络块,以提高参数效率 - **C2PSA 注意力模块** — 位置敏感的注意力捷径,将全局上下文注入局部卷积中 - 结果:**参数量减少 32%**,同时实现了比 YOLOv8 **更高的准确率** ### 训练配置 | 超参数 | 值 | |---|---| | Epochs | 100 (完整训练), 10 (冒烟测试) | | 批次大小 | 32–64 | | 图像尺寸 | 224 × 224 | | 优化器 | AdamW | | 精度 | FP16 (混合精度) | | 框架 | Ultralytics 8.3.228, PyTorch 2.9.1, CUDA 12.8 | ### 冒烟测试结果 (YOLOv8n 与 YOLOv11n — 早期验证) | 指标 | YOLOv8n | YOLOv11n | Δ 变化 | |---|---|---|---| | Top-1 准确率 | 93.7% | 94.9% | +1.2% | | Top-5 准确率 | 99.7% | 99.8% | +0.1% | | CPU 推理速度 | 12.9 ms | 5.0 ms | **快 61%** | | 参数量 | 2.7M | 2.8M | +0.1M | ### 最终模型结果 (YOLOv8m 与 YOLOv11m — 完整的 100 轮训练) | 指标 | YOLOv8m | YOLOv11m | Δ 变化 | |---|---|---|---| | Top-1 准确率 | 98.5% | **98.9%** | +0.4% | | Top-5 准确率 | 100.0% | 99.8% | −0.2% | | CPU 推理速度 | 85.4 ms | **17.2 ms** | **快 80%** | | 参数量 | 17.0M | **11.6M** | **小 32%** | ## 🧠 Vision Transformer (ViT) 虽然 YOLO 模型擅长**局部纹理提取**,但 **Vision Transformer (ViT-Base/16)** 提供了一种根本不同的归纳偏置:**跨图像 patch 的全局自注意力机制**,使其能够学习跨越恶意软件二进制文件多个部分的长距离结构依赖关系。 ### 架构概述 ``` Malware RGB Image (224×224×3) │ ▼ ┌─────────────────────────────────────┐ │ Patch Embedding │ │ Split into 196 patches (16×16 px) │ │ Each patch → 768-dim embedding │ │ + learnable [CLS] token prepended │ │ + positional encodings added │ └─────────────┬───────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 12× Transformer Encoder Blocks │ │ ┌──────────────────────────────┐ │ │ │ Multi-Head Self-Attention │ │ ← 12 attention heads │ │ (MSA across all 197 tokens) │ │ ← Global receptive field │ └──────────────┬───────────────┘ │ │ │ │ │ ┌──────────────▼───────────────┐ │ │ │ Layer Norm + Residual │ │ │ └──────────────┬───────────────┘ │ │ │ │ │ ┌──────────────▼───────────────┐ │ │ │ MLP (Feed-Forward Network) │ │ │ │ 768 → 3072 → 768 dim │ │ │ └──────────────────────────────┘ │ └─────────────┬───────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ Classification Head │ │ Extract [CLS] token (768-dim) │ │ Linear Layer → 9 classes │ │ Softmax Output │ └─────────────────────────────────────┘ │ ▼ Predicted Malware Family (+ Global structural context) ``` ### 为什么 ViT 适用于恶意软件分类 - **从第 1 层开始的全局注意力** — 能够捕获跨越远距离文件部分(例如,头部与 payload 与覆盖层)的结构依赖关系,这是感受野有限的 CNN 所遗漏的 - **Patch 级别的推理** — 将恶意软件图像视为结构化 patch 序列,使其对空间排列和混淆具有鲁棒性 - **特别有效**于具有全局分布模式的家族,如 **Obfuscator.ACY**,其多层混淆会产生复杂的长距离字节依赖关系 ### 训练配置 | 超参数 | 值 | |---|---| | 架构 | ViT-Base/16 (86M 参数) | | 预训练权重 | ImageNet-21K | | 分类头 | 线性层 (768 → 9 个类别) | | Epochs | 100 | | 批次大小 | 64 | | 优化器 | AdamW (lr=1e-4, 余弦衰减) | | 精度 | FP16 (混合精度) | | 库 | timm 0.9.x, HuggingFace transformers | | 数据增强 | 随机水平翻转,颜色抖动 | ### ViT 结果 | 指标 | ViT-Base/16 | |---|---| | Top-1 准确率 | ~97–98% | | F1 分数 | ~0.97 | | GPU 推理速度 | 18–22 ms/样本 | | CPU 推理速度 | 140–160 ms/样本 | | 参数量 | 86M | | GFLOPs | ~55.4 | ## 📊 结果与模型比较 ### 最终基准测试 | 模型 | Top-1 准确率 | 参数量 | GFLOPs | CPU 推理 | 最佳使用场景 | |---|---|---|---|---|---| | YOLOv11m ( ours ) | **98.9%** | 11.6M | ~39.3 | 17.2 ms | 实时 SOC 检测 | | YOLOv8m ( ours ) | 98.5% | 17.0M | ~41.6 | 85.4 ms | 中端环境 | | ViT-Base/16 ( ours ) | ~97–98% | 86M | ~55.4 | 140–160 ms | 基于云端的研究 | | Inception-V3 *(文献)* | 98.8–99.2% | ~24M | ~11 | — | 迁移学习基线 | | ViT-Base *(文献)* | ~98.8% | ~86M | 50–60 | — | 先前的 SOTA | ### 主要发现 1. **YOLOv11 是最佳的通用模型** — 具有最高的准确率 (98.9%),是中等变体中参数量最少的,并且 CPU 推理速度比 YOLOv 快 80%。非常适合实时的安全运营中心 (SOC)。 2. **RGB Viridis 色图在所有模型上比灰度图提供了 2-4% 的准确率提升**。感知均匀的颜色编码使熵梯度和字节转换模式对卷积滤波器清晰可见。 3. **ViT 和 YOLO 展现出互补的错误特征** — YOLO 的误分类源于局部相似的纹理;ViT 的错误则集中在具有全局模糊结构的家族(例如,由于共同的结构渊源,Kelihos_ver1 与 Kelihos_ver3 容易混淆)。一个混合的集成模型可以实现接近完美的准确率。 4. **混淆家族** 从 Viridis 色图和 ViT 的全局注意力中获益最大,证实了更丰富的表示对于处理加壳和混淆的恶意软件至关重要。 ### 部署场景指南 | 部署场景 | 推荐模型 | 原因 | |---|---|---| | 实时 SOC 检测 | **YOLOv11m** | 低于 20ms 的 CPU 推理,98.9% 准确率 | | 边缘 / IoT 设备 | **YOLOv11n** | ~2.8M 参数,内存占用极小 | | 云端研究流水线 | **ViT-Base/16** | 全局注意力,最适合结构分析 | | 大批量处理 | **YOLOv8m** | 经验证的吞吐量,100% 的 Top-5 准确率 | ## 📁 仓库结构 ``` group_43_Image-based-malware-analysis-capstone/ │ ├── Dataset/ # Microsoft BIG 2015 dataset samples │ ├── dataSample/ # Raw .bytes and .asm sample files │ ├── trainLabels.csv # Labels for training set │ └── sampleSubmission.csv/ # Submission format reference │ ├── YOLOv8_and_YOLOv11/ # YOLO classification models │ ├── outcome_images/ # Results, confusion matrices, training curves │ │ ├── fig5-1_dataset_sample_images.png │ │ ├── fig5-2_yolov8_smoke_test_confusion_matrix.png │ │ ├── fig5-3_yolov11_smoke_test_confusion_matrix.png │ │ ├── fig5-4_yolov8_final_confusion_matrix.png │ │ ├── fig5-5_yolov11_final_confusion_matrix.png │ │ ├── fig5-6_yolov8_training_accuracy_curves.png │ │ └── fig5-7_yolov11_training_accuracy_curves.png │ └── [code to be added] # Training scripts (coming soon) │ ├── Vision_Transformer/ # ViT-Base/16 model │ ├── code/ │ │ └── vit_malware.py # ViT fine-tuning and evaluation script │ └── outcome_images/ │ ├── fig5-8_vit_confusion_matrix.png │ └── fig5-9_vit_training_accuracy_curves.png │ ├── Group43_Image_Based_Malware_Project_Capstone_Project_Report.pdf ├── Group43_Presentation_Capstone.pdf ├── LICENSE └── README.md ``` ## 🙏 致谢 本项目作为 **VIT Bhopal University, 2026 年 3 月** 计算机科学与工程(网络安全与数字取证)工学学士学位的**本科毕业设计项目(阶段 2)**完成。 我们对以下人员/机构表达最深的感激之情: - **Dr. Hariharasitaraman S** — 我们的项目指导老师,他的持续指导、积极参与和宝贵建议是本项目的支柱。他在深度学习和计算机视觉方面的专业知识塑造了 MalwareVision 各个方面的方向和质量。 - **Dr. Ajay Kumar Phulre 与 Dr. Adarsh Patel** — 项目主席与评审人,感谢他们在整个毕业设计审查过程中提供的卓越支持、鼓励和建设性反馈。 - **VIT Bhopal University** — 感谢提供世界级的基础设施、GPU 计算资源以及促成此项研究的严谨学术环境。 - **开源社区** — Ultralytics YOLO、PyTorch、timm、HuggingFace Transformers 和 Scikit-learn 的开发者们,如果没有他们的工具,这个项目就不可能实现。
*本仓库代表了我们在 VIT Bhopal University 网络安全与数字取证专业四年本科学习的结晶。* *MalwareVision — 第 43 组,2026 年 3 月。*
标签:AMSI绕过, Apex, PyTorch, Vectored Exception Handling, Vision Transformer, ViT, YOLO, YOLOv11, YOLOv8, 凭据扫描, 图像分类, 图像处理, 威胁检测, 安全报告生成, 恶意软件可视化, 数字取证, 机器学习, 毕设项目, 深度学习, 目标检测, 网络安全, 自动化脚本, 计算机视觉, 逆向工具, 隐私保护