1.一种面向恶意软件汇编格式检测模型的黑盒攻击的防御方法,包括以下步骤:
1)获取数据集,将其划分为训练集和测试集;具体过程如下:
1.1)收集各个恶意软件家族样本数据集,数据以“.asm”后缀的汇编语言文件类型保存;
1.2)考虑各个类别的样本数量差异以及为便于后续的工作,将各个类别数据集以训练集占比约80%、测试集占比约20%的比例划分;
2)处理恶意软件汇编格式,具体过程如下:
2.1)考虑到实验的效率,为降低资源的使用,筛选100万以下大小字节量的文件作分析,同时将文件的每个字符通过ASCII映射到0-255区间范围,在序列的末尾添加“0”的方式填充为100万大小的定长数组;
2.2)再使用PyTorch的Embedding函数随机生成256×8大小的映射矩阵将每一位字节映射为8位长度的向量;
2.3)最终形成1000000*8大小的8通道输入数值矩阵;
3)构建卷积神经网络分类器;卷积神经网络作为经典的深度学习网络,被广泛地应用在计算机分类任务中;对输入大小为1000000*8大小的8通道输入数值矩阵,构建卷积神经网络分类器,过程如下:
3.1)将步骤2.3)获取的8通道输入数值矩阵的前四个通道和后四个通道分别通过128个500*4大小的卷积进行一维卷积,分别为卷积层1.1、卷积层1.2,其中卷积层1.1的输出通过Sigmoid激活函数,另一个不作处理,步长均为500;
3.2)将步骤3.1)获得的两个卷积层的卷积结果通过一个乘积层2进行对应位相乘的哈达玛积运算;
3.3)将步骤3.2)获取的运算结果通过池化层3进行全局最大值池化,形成128×1大小的高维特征序列,最大限度地降低资源消耗;
3.4)将步骤3.3)获取的序列通过两个全连接层分别为全连接层4和全连接层5以输出预测数值;
3.5)最后经过Sigmoid层运用Sigmoid函数输出0-1之间的分类概率,实验最终达到了
99.83%的分类精度;
4)基于梯度下降的恶意软件汇编格式检测模型的白盒攻击,具体过程如下:
4.1)选择一个被分类为“恶意”的样本,概率>0.5;
4.2)将样本的“0”填充字节重新进行随机初始化;
4.3)依次选择一个填充字节;
4.4)求出其他255个字节关于当前字节值在梯度方向上的投影距离与梯度的距离;
4.5)选择在梯度方向上的投影距离大于0且与梯度最近的字节,将其替换到该样本中形成对抗样本;
4.6)计算新的对抗样本被分类器预测的概率,若检测概率>0.5则重复4.3、4.4、4.5、
4.6四个步骤直到该对抗样本被分类器检测为良性软件,即概率<0.5;
5)设计具有代表性的深度学习模型结构,并将它们作为用于迁移攻击的迁移分类器;
6)将初始的训练数据集划分为两部分,一部分用于MalConv的学习,一部分用于迁移分类器的学习;
7)将步骤4)说明的白盒攻击方法用于对训练完成的迁移分类器进行攻击,生成对抗样本;
8)将步骤7)获取的对抗样本对恶意软件汇编格式检测模型重训练进行优化,获得能够防御对抗攻击的恶意软件检测模型;
9)利用能够防御对抗攻击的恶意软件检测模型对恶意软件进行识别,能够防御对恶意软件检测模型的对抗攻击。
2.如权利要求1所述的基于深度学习的恶意软件汇编格式检测方法,其特征在于:所述步骤1)中,获取了9个恶意软件家族样本数据集,共10868个恶意软件样本;所述步骤2)中,考虑到实验的效率,为降低资源的使用,筛选100万以下大小字节量的文件作分析,经筛选后符合要求的是Ramnit和Keilhos_ver3两个恶意软件家族的样本,其中Ramnit有372个训练集样本,75个测试集样本,Keilhos_ver3有1976个训练集样本,505个测试集样本。
3.如权利要求1所述的基于深度学习的恶意软件汇编格式检测方法,其特征在于:在所述步骤3)中,除去输入层网络共5层,共528,512个参数,除去偏置值,且实际训练时由于前向、反向计算和优化器的使用,使用的参数量将增大对应倍数;通过网络的层次传递,输入的1000000*8大小的8通道输入数值矩阵,最后输出该样本被分类到2个不同类别的恶意软件的概率大小。
4.如权利要求1所述的基于深度学习的恶意软件汇编格式检测方法,其特征在于:在所述步骤3.5)中,实验最终达到了99.83%的分类精度,其中精度为分类正确的样本占总样本的比例,精度的计算公式如下:其中f(xi)为分类器对样本i的分类结果,yi为样本真实的标签,样本总数为n。
5.如权利要求1所述的基于深度学习的恶意软件汇编格式检测方法,其特征在于:在所述步骤4)中,首先将0-255的字节表示通过随机生成的256×8大小的映射矩阵映射为8维表征向量;假设zj为当前所使用的填充字节,m0-m255为可供选择的256种离散字节,黑色点线gj为分类器输出关于当前字节的梯度的所在方向,红线nj为当前梯度下降的方向向量ωj的单位向量:每一种可供选择的离散字节到当前字节在梯度方向上的投影距离si为:可供选择的字节距离梯度的距离为:
di=||mi-(zj+sinj)||2 (5)
每次从可供选择的填充字节中找到所有投影距离si>0,即能满足梯度下降,并从中选择距离梯度di最小,即距离梯度最接近的字节,填充入文件末尾降低分类概率。
6.如权利要求1所述的基于深度学习的恶意软件汇编格式检测方法,其特征在于:在所述步骤7)中,假设分类器f对第i个样本的分类为f(xi),其标签是yi,同时添加扰动的操作f′生成的对抗样本为f′(xi),则对抗样本的逃逸率为正确分类的样本添加扰动后的对抗样本被分类错误的样本数占所有正确分类的样本数的比例,如公式(7)所示;逃逸率越高,则攻击的效力越强;