APP下载

逃避攻击下恶意PDF文件检测技术

2019-10-23李坤明顾益军

关键词:漏报鲁棒性分类器

李坤明, 顾益军, 王 安

(中国人民公安大学信息技术与网络安全学院, 北京 102600)

0 引言

机器学习技术在网络安全检测(垃圾邮件过滤、恶意程序检测等)、图像识别(人脸识别、图像分类等)等一系列领域已经得到广泛的应用[1]。随着机器学习技术给人们带来巨大便利的同时,也出现了很多安全问题。因为在传统的机器学习分类过程中是基于训练集和测试集具有相似的数据分布,通过对数据集进行特征抽取,然后将处理后的数据集分成训练集和测试集两部分进而构建出分类模型。然而在利益的驱使下,存在攻击者通过使用一定的方法探测传统分类器的漏洞,进而修改数据集逃避分类器的检测。如在垃圾邮件过滤中,攻击者通常会修改或混淆一些垃圾词语、增加合法词语的数量来逃避分类器的检测[2]。为了增强传统机器学习分类器的鲁棒性,需要在构建分类模型时考虑到攻击者的存在,因此提出了对抗环境下的机器学习。

目前关于对抗环境下机器学习的研究主要有两个方向。一种是通过使用何种攻击方式产生对抗样本来攻击生成的分类模型;另一种是为了应对攻击者对分类模型的攻击,如何去进行防御。Nelson[3]等人实现了在测试过程中对分类器模型的逃避攻击,但其仅对线性分类器和凸分类器有效果。Battista[4]等人通过使用基于梯度的方法实现了对SVM算法的攻击。在防御过程中,O’Sullivan[5]等人提出了通过增加冗余的特征信息来提升分类模型对抗攻击的能力。张非[6]等人通过在对抗环境下进行有效的特征选择以此提高分类器的鲁棒性。Battista[7-8]等人通过使用集成算法的思想把一些弱分类器集成一个强分类器提高分类器对抗逃避攻击的性能。

本文通过将逃避攻击过程中产生的对抗样本添加到训练集中训练出新的分类器,然后模拟两种不同的攻击方法实现对改进前后的KNN分类器进行攻击。实验结果表明,通过将攻击过程中产生的对抗样本添加到分类器的训练集中能够有效地对抗逃避攻击,提高分类器的鲁棒性。

1 相关研究

1.1 K近邻分类算法

K近邻算法(k-nearest neighbor, KNN)是假设给定一个训练数据集,其中的实例类别已定,分类时对新的实例根据其K个最近邻的训练实例的类别,通过多数表决等方式进行预测。这K个实例的多数据属于某个类,就把该实例分为这个类。其算法如下。

输入:训练数据集T={(x1,y1),(x2,y2)…(xN,yN)}

其中,xi∈χ⊆Rn为实例的特征向量,yi∈γ={c1,c2…ck}为实例的类别,i=1,2,…,N,Rn为n维实数向量空间。

输出:实例x所属的类γ。

(1)根据给定的距离度量,在训练集T中找出与x最近邻的k个点,涵盖这k个点的x的邻域记作Nk(x);

(2)在Nk(x)中根据分类决策规则(如多数表决)决定x的类别y:

(1)

式(1)中,I为指示函数,即当yi=cj时I为1,否则为0。

1.2 逃避攻击

根据攻击者在不同阶段对分类器实施攻击可以将攻击分为两类。分别是针对训练过程中的攻击和针对测试过程中的攻击。如表1所示,其中逃避攻击是一种典型的发生在测试过程中的攻击,该攻击方式的限制是其不能修改训练集,也不能影响分类模型的生成。它通过在测试集中修改恶意样本的特征,使得恶意样本逃避分类器的检测,进而达到降低分类器性能的效果。

表1 不同阶段攻击类型的分类

逃避攻击是攻击者通过使用一定的攻击方式修改恶意样本x使其能够逃避分类器的检测,而且修改后的样本x*与修改前的样本x之间的变化差距最小,可以表示为在某个代价函数下,特征值的修改量最小。可以表示为:

(2)

s.t.c(x′,x)≤K

(3)

其中g(x′)为代价函数,c(x′,x)表示攻击前后样本x与修改后样本x*之间的距离函数,使用曼哈顿距离表示。K表示攻击者的最大攻击强度,即其能够修改数据特征值的最大程度。下面介绍两种常见的逃避攻击方法。

1.2.1 梯度下降攻击

攻击者通常会使用不同的攻击方法修改测试样本,使其逃避分类器的检测。其中梯度下降攻击方法是一种简单且有效的方法。该方法通过一定的方式修改恶意样本的特征,使恶意样本向着合法样本的区域移动,使其被分类器错分为正常样本。由于正常样本和恶意样本的特征差别较大,直接修改恶意样本有时不能有效地逃避分类器的检测。因此通常会先计算所有正常样本属性特征的平均值,然后使用梯度下降的攻击方法生成对抗样本逃避分类器的检测,降低分类器的可用性。

1.2.2 特征加法攻击

特征加法攻击通过向恶意样本中嵌入正常样本的特征,使得修改后的恶意样本逃避分类器的检测。该攻击方法通常对添加正常样本特征的个数有限制,对所有样本中提取出每个特征的最大值和最小值。然后每次向恶意样本中添加正常样本的属性值都要保持在最大值与最小值之间。由于该方法较容易实现,可以应用于很多分类算法,因此在逃避攻击场景中被广泛使用。

2 对抗环境下KNN算法的防御

对抗环境下对机器学习算法的研究不仅是为了评估分类算法在面对攻击时的安全性,更重要的是为了如何提高分类器面对攻击时的鲁棒性。逃避攻击发生在分类模型的测试阶段,攻击者通过使用一定的方法修改恶意样本的特征值改变数据的分布使其逃避分类器的检测,进而降低了分类模型的可用性。关于如何构建一个鲁棒性较好的分类模型,现有的方法有:采用博弈论的思想,Globerson[10]等人从博弈论中的纳什均衡的角度,通过在测试时最坏情况下进行特征加入、删减特征、修改特征的方法提高SVM算法的性能。集成多分类器的方法,Battista[11]等人通过使用随机子空间的方法降低测试集中的攻击对分类器的影响,结果显示能够有效地对抗攻击者的攻击。这些防御措施虽然提高了分类器的鲁棒性,但仅仅考虑分类器面对攻击时的鲁棒性是不够的,还需要考虑其在无攻击时的分类性能。因此,分类器不管在有无攻击的情况下都应该具有较小的分类误差,在对抗逃避攻击时训练分类器的过程是一个多目标优化的过程[12],如公式(4)所示:

(4)

其中L(A=0|f)代表分类器f在无攻击时的分类误差;L(A=1|f)代表分类器f在有攻击时的分类误差。具体步骤如下:

(1)使用训练数据集训练出KNN分类模型,并使用测试集验证模型的性能。

(2)使用逃避攻击方法修改测试数据生成对抗样本,实现对KNN分类模型的攻击。

(3)将攻击产生的对抗样本添加到训练数据集中,训练出新的分类模型。

(4)比较攻击前后两个模型在不同攻击强度下分类的性能。

图1 对抗环境下KNN算法的防御流程

3 实验与分析

3.1 实验数据

实验使用的数据集来自Contagio[13]数据集,其中包含10 982个恶意PDF文件和5 000个正常PDF文件,本次实验选取其中的500个恶意PDF文件和500个正常PDF文件。通过使用基于关键字的方法表示PDF文件的特征,并根据每个PDF文件中每个关键词出现的频率赋予其不同的权重,最终选取特征为114维。并对每维数据进行极差归一化处理,使所有特征值的范围在[0,1]之间,进而消除不同属性之间因量纲带来的影响。

3.2 分类器性能评估

传统的分类器通常只考虑分类器的分类精度,并未考虑到分类器面对攻击时的鲁棒性问题。对分类器性能评估的指标有准确率、漏报率、误报率等。本文通过使用逃避攻击的方法实现对KNN算法的攻击,使得恶意PDF文件逃避分类器的检测,进而被误分为正常文件,导致分类器的分类精度下降、漏报率增加,因此实验采用准确率和漏报率评估KNN分类器的性能。分类结果的混淆矩阵如表2所示。

表2 分类结果混淆矩阵

其中TP为真正例表示恶意PDF文件被正确的分类;FN为假反例表示恶意PDF文件被误分为正常PDF文件;FP为假正例表示正常PDF文件被分类为恶意文件;TN为真反例表示正常PDF文件被正确分类。

(5)

(6)

3.3 实验结果分析

实验中使用了1 000个数据,为了评估改进前后分类器在数据集上的性能,采用5折交叉验证的方法,首先将数据集随机划分为5个大小相等的子集,然后将其中的4个子集作为训练集,剩余的一个作为测试集,最后将5次结果的平均值作为最终的结果。实验中采用欧式距离度量不同恶意PDF文件之间的相似度。在KNN算法中近邻数k的取值影响着分类模型的性能,其中k的取值越大,在分类过程中获取与原始KNN分类模型具有相同的k个近邻实例的能力就越弱,对此我们选择k的值为5。

3.3.1 梯度下降的攻击及防御结果分析

对于梯度下降攻击是通过修改恶意PDF文件的特征属性,因为如果对恶意PDF文件中的特征属性修改过大会影响PDF文件本身的特性。所以需要对最大的修改量有一个限制K,实验通过设置K=0,10,15,20,25,30来模拟不同的攻击强度。实验结果如表3所示,在无攻击的情况下(K=0)分类器分类的准确率为99.7%,漏报率为0.3%,说明KNN分类算法在无攻击的情况下具有很好的分类效果。但是当存在梯度下降攻击时,随着攻击强度的增加,KNN分类模型的分类准确率不断下降,当攻击强度K=30时,分类器的分类精度由最开始的99.7%降低到45.3%,降低了54.4%,漏报率由最初的0.3%上升至52.8%,增加了52.5%。

通过将梯度下降攻击过程中产生的对抗样本添加到训练集中后,重新训练出防御后的KNN分类模型,以此来提高分类器的鲁棒性。当攻击强度K=10时,在防御后的KNN分类模型在分类精度和漏报率上均有提升。随着攻击强度的增加,该防御方法的效果逐渐显著,当攻击强度K为20、30时,改进后分类模型的正确率稳定在80%左右,分类精度相较于改进前提高了33.7%和34.9%,漏报率降低了42.8%和44%。结果表明通过将攻击产生对抗样本添加到训练集中,训练出新的KNN分类模型能够有效对抗梯度下降攻击。

表3 梯度下降攻击对改进前后KNN分类模型的影响

3.3.2 特征加法的攻击及防御结果分析

基于特征加法的攻击,首先对数据集中正常PDF文件的特征属性根据其出现的次数进行排序,选取权重在前25的属性特征。攻击强度的定义为每次向恶意PDF文件中添加正常PDF文件的属性特征的数量。实验结果如表4所示,在无攻击的情况下(K=0)KNN分类器具有较高的检测率。在攻击强度K=5和K=10时,分类器的分类精度下降最快,分别下降了8.9%和16.4%,漏报率由最初的0.3%上升到15.4%。这是由于起始添加的特征属性在正常PDF文件特征属性中的权重比较大,这些特征属性添加到恶意PDF文件中,能够有效地影响恶意PDF文件在样本空间中的分布,进而导致KNN分类器误分类,降低分类模型的分类精度。

表4 特征加法攻击对改进前后KNN分类器的影响

相同的攻击强度下,防御后的KNN分类模型在分类精度和漏报率上效果均有所提升。在攻击强度K=5和K=10时,相比较与改进前的分类模型分类精度和漏报率分别提升了6.7%和6.9%。继续增加攻击强度,对防御前后的分类模型的影响逐渐减小,原因是后续添加的正常样本特征属性对恶意样本分布的改变效果较小,但是防御后的KNN分类模型分类效果以及分类模型的鲁棒性仍优于初始分类模型,说明将对抗样本添加到训练集中能够有效地对抗基于特征加法的攻击。

4 结语

本文通过使用梯度下降攻击、特征加法攻击两种逃避攻击方法实现对KNN分类模型的攻击,证明了传统的KNN分类算法在对抗环境下的鲁棒性较差;并将攻击产生的对抗样本添加到训练集中训练出新的KNN分类器,然后再模拟不同强度的攻击来验证新的分类器的性能。实验结果表明,将逃避攻击过程中产生的对抗样本添加到训练集中能够有效提升KNN分类模型对抗逃避攻击的能力,提高分类模型的鲁棒性。方法的不足之处在于,将攻击过程产生的对抗样本添加到训练集中,虽然能够在一定程度上提高KNN分类模型的分类精度、降低漏报率,但是在特征加法攻击的防御上效果一般。在未来的工作中计划将对抗样本信息与集成多分类器相结合来提高分类模型的鲁棒性。

猜你喜欢

漏报鲁棒性分类器
学贯中西(6):阐述ML分类器的工作流程
武汉轨道交通重点车站识别及网络鲁棒性研究
基于朴素Bayes组合的简易集成分类器①
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
基于特征选择的SVM选择性集成学习方法
基于差异性测度的遥感自适应分类器选择
朝阳地区一次大雪到暴雪天气过程漏报分析
抚顺地区一次降水预报失误的分析
一种基于三维小波变换的鲁棒视频水印方案
基于鲁棒性改进理论的大面积航班延误治理分析