恶意软件是旨在破坏计算机系统、应用和网络的代码[1].恶意软件可对计算机系统产生严重破坏,如在用户不知情的情况下,获取访问数据的权限,删除计算机上的重要文件甚至完全破坏计算机系统.在新冠病毒流行期间,微软报告了16个窃取商业和学术机构与疫苗相关研究知识的恶意软件.AV-TEST(AntiVirus-Test,反病毒测评机构)数据显示,仅2022年新增恶意软件超9千万个[2].另外,恶意软件采用混淆、加密等技术增加其特征的多样性和多态性以逃避检测.如何准确且快速检测恶意软件是国内外学者面临的重要挑战之一.Natraj等[3]首次提出了基于图像分析的恶意软件检测方法,将原始二进制文件转换成灰度图像,利用从灰度图中提取的高维特征实现恶意软件的检测.该方法具有较好的对抗性能,能检测代码混淆技术,而被广泛应用.Verma等[4]利用GLCM共现矩阵来表征恶意软件原始文件,使用集成学习来进行检测和分类.Cui等[5]利用非支配排序遗传算法解决样本不平衡问题,利用卷积神经网络进行分类.Hemalatha等[6]利用改进的DenseNet模型进行恶意软件检测和分类,并在四个基准数据集上进行了验证.Liu等[7]在改进的ACGAN对恶意软件检测和分类,并在构建的变体数据集上进行了验证.Xiao等[8]引入彩色标签框(CoLab)来标记PE文件的各部分,利用VGG16和支持向量机对恶意软件检测和分类.DanishVasan等[9]将原始恶意软件二进制文件转化成彩色图像,并用微调的CNN框架检测和识别恶意软件家族.上述方法都是将恶意软件转成灰度图像进行的分类,分类的准确率方面有待进一步提升.除此之外,由于生成对抗网络(GAN)的生成器生成样本和判别器识别假样本方面的良好性能,生成对抗网络(GAN)也开始被应用于恶意软件的对抗样本生成和恶意软件的检测和分类.Wang等[10]使用GAN生成对抗样本并将对抗样本插入到检测器的训练样本中,从而成功提高了判别器对C2流量的检测能力.然而,恶意软件检测模型存在数据量不足(即少样本)和样本不平衡问题[11],且在训练过程中因缺失图像局部关键特征造成模型训练不足进而导致错误预测,难以识别恶意软件的新变体[12].灰度图所含信息较少,不能全面反映恶意软件的攻击特性.基于以上问题,提出了一种基于多裁剪策略的恶意软件检测与分类模型.首先将恶意软件的字节文件以字节数组的形式放进内存缓冲区内生成彩色图像,并利用多裁剪策略将彩色图像生成局部图像,在减少特征工程工作量的同时更易于获取图像的关键特征;然后用深度卷积生成对抗网络[13]构造打分判别器和分类判别器来检测和分类恶意软件,以增加模型的泛化能力,并解决恶意软件检测和分类中样本不足、样本不平衡和局部关键特征丢失的问题,且生成样本的多样性可用于检测新变体.1 多裁剪的恶意软件分类模型MadcuG模型包含恶意软件预处理、恶意软件检测和分类两个部分.首先将恶意软件转成彩色图像,然后利用多裁剪策略生成恶意软件局部图像.基于深度卷积生成对抗网络搭建了恶意软件检测和分类模型,其中包含生成器、打分判别器和分类判别器.模型结构如图1所示.10.13245/j.hust.240726.F001图1MadcuG恶意软件检测和分类模型1.1 恶意软件预处理1.1.1 恶意软件彩色图像的生成根据数据集中恶意软件的不同形式,在生成彩色图像时用了两种方法:第1种是将恶意软件的二进制文件转化成字节数组,并放至内存缓冲区中,从缓冲区生成彩色图像;第2种是将恶意软件灰度图像的灰度像素值分别赋值给RGB的3个通道,生成彩色图像.MadcuG模型对BIG2015数据集[14]采用第1种方法生成彩色图像,而Malimg数据集[3]是灰度图像,故采用第2种方法生成彩色图像.1.1.2 利用多裁剪策略生成局部图像在对可视化后的恶意软件彩色图像进行分类过程中,局部关键特征信息丢失、样本不足和样本的不平衡会对恶意软件检测和分类的准确性产生重大影响.为了解决上述问题,增加对恶意软件局部关键特征信息的关注.MadcuG模型利用多裁剪策略对恶意软件彩色图像进行处理.首先获取原始恶意软件彩色图像的5个位置(左上角、左下角、右上角、右下角及中间)的初始坐标信息,然后分别裁剪出64×64的局部关键特征区域.这样既能解决检测和分类过程中样本不足、样本不平衡问题,又可在空间上结合恶意软件图像局部和全局多尺度关键信息.多裁剪策略的流程如图2所示.10.13245/j.hust.240726.F002图2多裁剪策略生成局部图像1.2 恶意软件检测和分类1.2.1 模型结构MadcuG模型是利用深度卷积生成对抗网络[13] (DCGAN)构建的.该模型用卷积神经网络来构建的生成器和判别器,巧妙地将卷积神经网络(CNN)与生成对抗网络(GAN)结合起来,极大提升了原始GAN训练的稳定性及生成图像的质量.在深度卷积生成对抗网络[13](DCGAN)的基础上进行了改进,构造了包含生成器G、打分判别器D1和分类判别器D2.构造分类判别器D2的结构时,并没有采用与打分判别器D1相同的结构而是在D1结构的基础上添加了线性层和平均池化层.模型结构如图3所示.10.13245/j.hust.240726.F003图3模型结构构造的分类判别器D2,其分类层由4×4卷积层、线性层、4×4的池化层和Softmax层组成,来预测恶意软件所属的家族.从模型的深度来说,分类判别器D2只有5个卷积块和1个平均池化层;从模型的宽度来讲,每个卷积块卷积核的个数依此为64,32,16,8,4.从模型的设计上来说,MadcuG模型减少了训练过程中的参数量,减少硬件开销且加快了模型收敛速度,优化器采用Adam.1.2.2 模型训练标准的对抗生成网络是一个二分类模型,即判别输入的图像是来自生成器还是真实样本,但恶意软件检测和分类是一个包含多个家族的多分类任务.在深度卷积生成对抗网络[13](DCGAN)的基础上提出了MadcuG,其中包含生成器G、打分判别器D1和分类判别器D2.MadcuG模型参数的更新依赖于生成器和打分判别器的对抗损失及分类判别器的分类损失,其中打分判别器D1用来对来自生成器生成的图片和真实图片做出判断,并将结果反馈给生成器G,两者通过博弈进行参数的更新,同时打分判别器D1的参数同步更新到分类判别器D2,分类判别器D2接收来自生成器的样本和真实的样本,通过交叉熵损失函数再次更新参数.在对抗损失函数收敛后,对分类判别器D2的分类层进行微调,最后利用经过训练和微调的分类判别器D2来对恶意软件彩色图像进行检测和分类.在这个模型中设置了两个损失函数,其中一个是生成器和打分判别器D1的对抗博弈的损失函数.生成器试着去最小化对抗损失函数,而打分判别器D1试着去最大化对抗损失函数.对抗损失函数为L(G,D1,xr,xf)=Exr~pdata(xr)[log D1(xr)]+Exf~pdata(xf)[log(1-D1(G(xf)))],式中:G为生成器;D1为打分判别器;xr为真实的恶意软件局部图像;xf为生成器生成的恶意软件样本图像;D1(xr)为判别器输出样本xr是来自训练数据而不是生成器的概率;D1(G(xf))为生成器生成的图像是真实恶意软件图像的概率.另一个是分类判别器D2对于输入的真实恶意软件局部图像和生成器G生成的图像正确分类的分类损失函数,即L(D2, xr, xf)=Entropy(D2(xr), T(xr))+Entropy(D2(xf), T(xf)),式中:D2(xr)为分类判别器对输入的真实样本预测的标签;T(xr)为真实样本的实际标签;D2(xf)为对生成器生成的假样本的预测标签;T(xf)为生成器生成的样本的伪标签;Entropy(a,b)为a与b的交叉熵损失函数,即为判别器D2对输入样本的预测标签和样本真实标签的损失.MadcuG模型结合对抗损失函数和分类损失函数作为最终目标函数,即L(G, D1, D2)=L(G, D1, xr, xf)+L(D2, xr, xf) .模型训练过程详述如下.步骤1 将生成器生成的图像和真实恶意软件局部图像分别输入到打分判别器D1和分类判别器D2.步骤2 打分判别器D1对输入的样本进行判断,并将结果反馈给生成器G.通过生成器G和打分判别器D1的对抗训练,生成器G和打分判别器D1更新参数,判别器D1的参数同步更新到D2中.同时,分类判别器D2通过计算输入图像样本的预测标签和真实标签的分类损失,再次更新参数.步骤3 在训练结束后,冻结分类判别器D2分类层的前面各层,然后对分类判别器D2的分类层进行微调,最终得到一个训练好的分类判别器D2.2 实验结果与分析实验环境为Intel(R) Core(TM) i5-9500F CPU@3.00 GHz,8 GiB RAM,Pytorch框架.Adam优化器的学习速率为α=0.000 2,β1=0.5,β2=0.999.为验证MadcuG模型的性能,分别在BIG2015数据集[14]和Malimg数据集[3]上进行实验.2.1 数据集BIG2015[14]是微软在2015年发布在Kaggle的恶意软件分类挑战赛中的数据集.BIG2015数据集包括9个恶意软件家族,共1.086 8×104个恶意软件文件.将BIG2015数据集中的字节文件转化成字节数组并放在内存缓冲区中,从内存缓冲区中生成恶意软件彩色图像.Malimg[3]是不平衡的Windows恶意软件灰度图像数据集,包含25个家族,共计9 339个恶意软件灰度图像样本.将Malimg的灰度图像的像素值,分别赋值给彩色图像的RGB通道.2.2 评价指标实验使用准确率(ΓAccuracy)、精确率(ΓPrecision)、召回率(ΓRecall)和F1值(αF1)4个评价指标去评价分类器的性能.其中准确率是指正确分类的恶意软件样本与总样本数的比值.精确率表示预测为正的样本中有多少是对的.召回率表示样本中有多少正样本被预测正确了.F1分数是精确度和召回率的调和平均值,决定了模型的精度和鲁棒性.这4个指标的详细计算公式为ΓAccuracy=(λTP+λTN)/(λTP+λTN+λFP+λFN);ΓPrecision=λTP/(λTP+λFP);ΓRecall=λTP/(λTP+λFN);αF1=2ΓPrecisionΓRecall/(ΓPrecision+ΓRecall),其中:将恶意软件样本分类为恶意软件样本的情况定义为真阳性(λTP);恶意软件被分类为良性样本的情况被定义为假阴性(λFN);将良性样本分类为恶意软件样本的情况定义为假阳性(λFP);良性样本被归为良性样本的定义为真阴性(λTN).2.3 恶意软件彩色图像对分类准确率的影响选择Malimg灰度图像和彩色图像数据集来验证模型的性能,目的在于保证彩色和灰度数据分布一致,结果详见表1.结果表明:Malimg彩色图像的准确率、精度、召回率和F1值均高于Malimg灰度图像的对应值,其中准确率和精度的值高出1%.与灰度图像相比,MadcuG模型在使用彩色图像时对恶意软件检测和分类的效果更好.同时验证了在恶意软件检测和分类中彩色图像能提供更有效和更准确的特征信息.10.13245/j.hust.240726.T001表1多裁剪策略的MadcuG模型在彩色图像和灰度图像数据集上的实验结果数据集准确率精确率召回率F1值Malimg彩色图像0.992 00.991 20.988 70.988 5灰度图像0.981 30.981 00.979 90.978 5BIG2015彩色图像0.998 80.998 80.996 50.997 92.4 多裁剪策略对分类准确率的影响实验发现,在恶意软件检测和分类中彩色图像比灰度图像更有效.但分类的准确率、精度等指标仍然没有达到本领域的最佳结果.原因在于:使用深度学习模型提取图片特征时都是将输入的恶意软件图像进行压缩,达到模型对于图片输入尺寸的要求.但在压缩图像过程中,其局部关键特征会部分丢失,图像特征并不完整,从而导致效果不佳.同时发现恶意软件转成彩色图像后,在4个角和中心位置的关键特征最明显、最易于识别,因此将关键特征裁剪出来代表恶意软件样本.当选择裁剪区域大小时,32×32区域不能完全覆盖恶意软件样本的关键特征,而128×128大小的区域会包含大量重复的关键特征,造成计算成本的极大增加.64×64大小的区域既能包括样本的关键样本,又不会导致计算成本的大量增加,因此在4个角和中心的位置裁剪关键区域的大小为64×64.表1和表2给出了MadcuG模型在Malimg数据集和BIG2015数据集上的准确率、精度、召回率和F1值.结果表明:在相同数据集下,多裁剪策略的MadcuG模型比无多裁剪策略的MadcuG模型在分类准确率、精度上均高出近2%,验证了多裁剪策略能够解决恶意软件检测和分类中局部特征丢失问题,并且多裁剪策略能够提高恶意软件检测和分类的准确率.10.13245/j.hust.240726.T002表2无多裁剪策略的MadcuG模型在彩色图像和灰度图像数据集上的实验结果数据集准确率精确率召回率F1值Malimg彩色图像0.974 00.973 20.972 80.972 2灰度图像0.965 80.965 30.964 60.963 9BIG2015彩色图像0.982 10.981 00.981 80.981 62.5 数据不平衡和混淆的恶意软件通过统计Malimg数据集中各家族样本的数量,较少的是Skintrim.N家族和Wintrim.BX家族,分别有80和97个样本,而数据量最多的是Allaple.A家族,有2 949个图像样本.通过统计BIG2015数据集中样本数量,样本量最少的是Simda家族,仅有42个图像样本,而数据量最多的是Kelihos_ver3家族,有2 942个图像样本.Malimg数据集[3]和BIG2015数据集[14]存在严重样本不平衡的问题.这也是造成恶意软件检测和分类中准确率、精度等指标低的原因.表3和表4分别表示MadcuG模型在Malimg数据集和BIG2015数据集上对各恶意软件家族的准确率、召回率和F1值.10.13245/j.hust.240726.T003表3MadcuG在Malimg数据集的性能比较恶意软件家族准确率召回率F1值Swizzor.gen!I0.999 90.999 90.999 9Instantaccess0.999 90.999 90.999 9Dialplatform.B0.999 90.999 90.999 9Autorun.K0.992 50.719 90.837 2Dontovo.A0.999 90.999 90.999 9C2LOP.gen!g0.999 90.999 90.999 9C2LOP.P0.999 90.999 90.999 9Lolyda.AA10.999 90.999 90.999 9Lolyda.AT0.999 90.999 90.999 9Adialer.C0.999 90.999 90.999 9Fakerean0.999 90.999 90.999 9Allaple.A0.999 90.999 90.999 9VB.AT0.999 90.999 90.999 9Yuner.A0.992 50.999 90.877 2Rbotigen0.999 90.999 90.999 9Malex.gen!J0.999 90.999 90.999 9Swizzor.gen!E0.999 90.999 90.999 9Agent.FYI0.999 90.999 90.999 9Skintrim.N0.999 90.999 90.999 9Obfuscator.AD0.999 90.999 90.999 9Lolyda.AA20.999 90.999 90.999 9Lolyda.AA30.999 90.999 90.999 9Wintrim.BX0.999 90.999 90.999 9Allaple.L0.999 90.999 90.999 9Alueron.gen!J0.999 40.988 70.988 510.13245/j.hust.240726.T004表4MadcuG在BIG2015数据集的性能比较恶意软件家族准确率召回率F1值Gatak0.999 90.999 90.999 9Kelihos_ver10.998 80.968 70.984 1Kelihos_ver30.999 90.999 90.999 9Lollipop0.998 80.999 90.999 9'Obfuscator.ACY0.999 90.999 90.999 9Ramnit0.999 90.999 90.999 9Simda0.999 90.999 90.999 9Tracur0.999 90.999 90.999 9Vundo0.999 90.999 90.999 9Malimg数据集包含采用混淆、加壳技术的样本.MadcuG模型在Malimg数据集25个恶意软件家族中的23个家族上实现了100%的准确率,详见表3.其中Yuner.A,VB.AT,Malex.gen!J,Autorun.K和Rbot!gen家族使用相同的加壳技术,因而有相似的结构.MadcuG模型在VB.AT、Malex.gen!J和Rbot!上的分类准确率均为100%.Allaple在代码部分使用随机密钥在几层中加密,但MadcuG对Allaple.A和Allaple.L的分类准确率均达到100%.MadcuG对同一个家族的变体Lolyda.AA1和Lolyda.AA3的分类准确率也达到了100%.同时MadcuG在BIG2015数据集9个恶意软件家族中的7个家族上实现了100%的准确率.表4验证了MadcuG模型检测混淆、加壳的恶意软件是有效的.由于Malimg和BIG2015数据集中一些同种家族图像样本之间的纹理差距大,使得所提模型难以辨别,因此Kelihos_ver1,Lollipop,Autorun.K,Yuner.A等分类准确率没有达到100%的准确率.表5为MadcuG模型在两个数据集中3个小样本家族(Skintrim.N、Wintrim.BX和Simda)上的结果,准确率、精度率、召回率和F1值都为100%,表明该模型在恶意软件检测及分类效果良好,并对样本不平衡问题具有鲁棒性.10.13245/j.hust.240726.T005表5MadcuG模型在小样本家族的结果数据集家族样本数准确率精确率召回率F1值Malimg彩色图像Skintrim.N801.000 01.000 01.000 01.000 0Wintrim.BX971.000 01.000 01.000 01.000 0BIG2015彩色图像Simda421.000 01.000 01.000 01.000 02.6 和其他模型的对比为了验证MadcuG模型的有效性,与传统基于机器学习的方法[3,15]、基于图像的深度学习方法[4-9]进行了对比,如表6所示.文献[4-9]直接将图像输入深度学习模型会导致局部关键特征的丢失,本文方法采用多裁剪策略综合考虑全局和局部的多尺度关键特征.从表6可以看出:MadcuG模型准确率、精度等各指标均高于已有方法.10.13245/j.hust.240726.T006表6MadcuG模型与现有模型的性能对比模型数据集准确率精确率召回率F1值Nataraj[3]Malimg0.980 8———Verma[4]Malimg0.985 80.980 40.980 60.980 5NSGA-Ⅱ[5]Malimg0.976 00.976 00.884 00.927 7Hemalatha[6]Malimg0.982 30.977 80.979 20.978 5BIG20150.984 60.985 80.978 40.982 1MadInG[7]BIG20150.989 00.989 20.989 00.989 1MalCVS[8]BIG2015彩色图像0.989 40.982 60.977 20.979 1IMCFN[9]RGB Malimg0.988 20.988 50.988 10.987 5DLMD[15]BIG20150.975 0———本文RGB Malimg0.992 00.991 20.988 70.988 5RGB BIG20150.998 80.998 80.996 50.997 9所提出的基于彩色图像分类和深度卷积生成对抗网络的恶意软件检测和分类模型具有准确率高、误报率低、抗混淆、抗加壳、模型泛化能力强等特点,同时克服了数据不足、数据不平衡等问题,可满足高准确度检测恶意软件的场景.但模型目前所需计算资源较高,不能适用于计算资源受限、能源供给受限的物联网环境.后续工作将针对物联网设备的独特性,结合无知识蒸馏,在不降低检测准确性的前提下,压缩MadcuG模型大小,以应用在物联网环境中的恶意软件检测和分类.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览