论文解读:《DeepGray:基于灰度图像和深度学习的恶意软件分类方法》
开篇
今天继续来学习网络安全领域的优秀论文,多了解一些创新的方法,旨在开阔眼界和思路。这次要解读的论文属于二进制恶意样本分类领域,二进制检测和分类是一个长久的话题了,业界使用的方法也多种多样,传统方法比如签名、沙箱等。但是传统检测方法往往难以跟上不断变异和混淆的恶意软件的步伐,所以越来越多的研究开始转向能有效进行恶意软件分析和分类的深度学习方法。
这篇论文提出的方法非常新颖,值得深入学习一下。总的来说,该论文提出了一种名为DeepGrey的新方法,该方法将二进制样本转换为灰度图像,保留关键数据特征,然后基于计算机视觉的深度学习模型通过图像分类的方式,来实现二进制样本的分类。
好的,接下来我们就来详细分析下这个方法。
灰度图
先来简单科普下什么是灰度图。
灰度图(Gray Scale Image)是数字图像处理中的一种基础形式,其核心特征是仅保留图像的亮度信息,而舍弃颜色信息。
灰度图有如下特点:
1.单通道表示:灰度图中每个像素仅包含一个值(即灰度值),范围通常为 0(纯黑)到255(纯白),中间值代表不同深浅的灰色(如128为中灰);
- 与彩色图像(RGB三通道)不同,灰度图通过单一通道简化了数据维度。
- 与二值图像(仅黑白两色)不同,灰度图具有256级(8位)或更高(如16位65536级)的连续灰度层次
2.视觉表现:灰度图以黑白灰的渐变呈现图像内容,例如黑白照片本质是灰度图的一种应用形式;
使用灰度图有如下的优势:
简化计算与存储
- 单通道数据量仅为彩色图像的1/3,提升处理效率(如边缘检测、图像分割)
- 节省存储空间和传输带宽,适用于实时处理系统(如视频监控)
突出结构与纹理
去除颜色干扰后,图像中的形状、边缘和亮度变化更易识别,适用于:
- 医学影像(X光、MRI病灶分析)
- 工业检测(零件表面缺陷识别)
- 遥感图像(地形灰度量化分析)
算法兼容性
多数传统图像处理算法默认针对灰度数据设计的。
二进制样本->灰度图像
好的,那怎么将一个二进制样本文件转换为灰度图呢?
首先,将二进制文件的所有内容按二进制连续8位(1字节) 为单位读取,每个字节转换为一个无符号整数(范围0-255,对应灰度图中的一个像素)。
比如,二进制流 00111010 01010010… → 转换为一维整数向量 [58, 82, …]。
然后,将一维整数向量重组为二阶矩阵(高度与宽度相同的二阶方阵),如果一维整数向量长度不足以构成二阶方阵,则使用0来填充,直到该向量能形成最小2阶方阵。
比如一维向量[58,82,45,67,12,90,88],转换成的二阶方阵为:
[ [58,82,45], [67,12,90], [88,0,0] # 这里使用0来填充 ]
最后,因为不同大小的样本构成的二阶方阵的宽度是不同的,而深度学习模型(如VGG16、ViT)要求固定输入尺寸,因此需要对原灰度图进行降维处理,统一降维压缩到512X512的固定尺寸。
降维采用了两种方法:
- PCA(主成分分析);
- 双二次元插值;
PCA
主成分分析(PCA)是一种将高维数据转换为低维数据的技术,同时尽可能保留更多的信息。
如下图的三维转二维效果图:
这里不对PCA做过多详细介绍,想深入了解的可以查阅网上资料。
双三次插值
双三次插值可以理解为一种“高级猜像素法”——当需要放大或缩小图片时,它通过分析周围16个邻居像素的颜色,推测新位置该填什么颜色值。
想象你要画一幅数字油画,但原图太小看不清细节:
1.普通放大法(最近邻插值):直接复制最近的像素点 → 结果像马赛克(锯齿明显)。
2.进阶放大法(双线性插值):取上下左右4个点算平均值 → 画面变糊(像隔了毛玻璃)。
3.高级放大法(双三次插值):
- 步骤1:以目标点为中心,画一个4×4的网格(共16个像素点)。
- 步骤2:给每个邻居像素分配不同的权重(离得近的权重大,离得远的权重小)。
- 步骤3:用三次函数曲线(类似平滑的抛物线)计算加权平均值 → 得到新像素颜色。
放大后依然清晰,边缘不生硬,更接近原图效果。
恶意软件图像尺寸不一,需统一缩放到512×512:
- 小图放大:用双三次插值补像素,避免像病毒散点图被拉成模糊色块。
- 大图缩小:用双三次插值浓缩信息,防止勒索软件的加密区块纹理被过度压缩丢失。
模型训练
DeepGray创新性地将计算机视觉(CV)领域的四大预训练模型(VGG16/InceptionV3/EfficientNetV2B0/ViT)改造为恶意软件分类引擎,主要包括以下三个关键点:
1.灰度图转换为RGB彩色图
恶意软件图像是黑白的(单通道),但预训练模型(VGG/ViT等)只学过彩色图(三通道),所以需要将灰度图转换为RGB彩色图。转换的逻辑也比较简单,将灰度图的一个像素值直接复制三份,最终合并这三份值就形成了RGB彩色图。
2.模型优化
这些预训练模型原来的任务是用于识别猫狗和汽车等这些普通物体,而识别恶意软件图像则只需要它们前期的看图能力(提取图片特征的能力)。所以,需要把模型的最后一层的分类层(原本用来分类猫狗的)去掉。
去掉旧分类层之后,需要添加新的分类层。
3.用大量带标签的恶意软件图片训练这些模型
总结
DeepGray的这种基于图像识别技术来进行恶意软件分类的方法确实很新颖,但是就像大多数机器学习在安全领域的应用一样,误报和漏报的修复是一大难点。同时,模型的效果也很大程度上依赖训练样本的质量和数量。不过在创新性上来说还是很值得肯定的,只有不断创新,才能应对愈加复杂化的攻击场景。