李沛洋,李 璇,陈俊杰,陈永乐
太原理工大学 信息与计算机学院,太原030024
近年来,随着移动通信技术的不断发展,越来越多的物联网设备出现在人们的日常生活中,例如路由器、网络摄像头、可穿戴智能设备、智能家居设备和工业控制设备等。但是由于物联网设备能够直接连接物理世界,且防护薄弱,数量庞大,现已成为僵尸网络攻击的主要目标之一[1]。僵尸网络由众多被恶意程序感染的计算机组成,攻击者可通过僵尸网络远程控制僵尸主机,从而发动大规模的网络攻击任务,例如发送恶意垃圾邮件、信息窃取、实施点击欺诈等恶意网络行为[2]。因此,众多僵尸网络检测技术被提出,特别是近年来出现的许多基于机器学习的僵尸网络流量检测算法,这些算法从网络流量中提取流量的基本统计特征,并设计、训练和优化神经网络,使其能够有效地将良性流量和不同类型的攻击流量进行区分。例如,Hwang等人提出了一种由卷积神经网络和无监督深度学习模型组成的异常流量检测机制,用于自动分析流量模式和过滤异常流量[3]。Gao 等人设计了一种基于深度神经网络和关联分析的两级异常检测系统,该系统在公共数据集NSL-KDD 上表现出较高检测精度和低误报率[4]。Luo等人利用卷积神经网络和长短期记忆网络分别学习网络流量的空间特征和时序特征,将特征学习的整个过程完全由深度神经网络自动完成,最终实现了对大规模僵尸网络的检测[5]。Sriram等人利用设计的僵尸网络检测框架收集网络流量,将其转换为连接记录,并使用深度学习模型检测来自受损物联网设备的攻击[6]。
然而目前大多数研究者仅仅致力于不断优化这些检测算法,旨在提高对僵尸网络的检测效率和准确率,却忽略了机器学习算法的鲁棒性。通常情况下,攻击者可以利用僵尸网络发动有效攻击并获取收益,他们有足够的动机来深入研究这些僵尸网络检测算法,从而发现漏洞并利用。本文的主要研究内容是从网络攻击的角度出发,旨在提出一种更强的攻击算法以促进防御方法的提升。
现有研究发现,机器学习很容易受到微小输入扰动的干扰,这些干扰无法被察觉,但却很容易造成检测器分类错误[7-9]。Szegedy等人首次发现在图像上添加了不易察觉的扰动,并最大化被训练后的神经网络的分类误差后,可以使神经网络无法正确对图像进行分类[10]。添加扰动后的样本被称为对抗样本。目前,对抗样本的生成方法主要分为两类:一类是基于梯度算法生成对抗样本。Xiao 等人引入一种基于自适应梯度的对抗攻击方法,该方法依据输入的先验梯度,并自适应地调整扰动的累积量,从而执行高级别的对抗攻击[11]。Zhang 等人提出了基于批量梯度的快速梯度符号法(Mb-MI-FGSM),该方法使用了神经网络损失函数对批量输入中的每一个样本的偏导数的均值来指导对抗样本的生成[12]。这类基于梯度算法的对抗样本生成方法只有在攻击者提前已知检测模型的结构和参数,即白盒攻击时才能获得较好的攻击性能,在黑盒攻击方面性能表现很差。然而在实际应用过程中,黑盒攻击的实际意义远大于白盒攻击,因为攻击者大部分情况下无法明确各类异常检测器具体的学习模型。另一类是利用生成对抗网络(generative adversarial networks,GAN)来生成对抗样本。Guo等人提出训练一个产生扰动的深度卷积网络作为生成模型来生成不同的对抗样本,一个残差网络作为判别模型来确保生成的样本看起来是真实的,主要用于在黑盒攻击中生成对抗样本[13]。Sun等人利用类别概率向量重排序函数和生成对抗网络,在待攻击神经网络内部结构未知的前提下生成对抗样本[14]。Zhang等人同样在生成对抗网络框架下提出了一种基于蒙特卡洛搜索的跨站点脚本攻击的对抗攻击样本生成算法,利用该算法生成的对抗样本漏检率明显提高[15]。Pan 等人利用GAN 生成恶意网络流,但是其仅仅适用于缓冲区溢出漏洞攻击网络流的生成问题,方法扩展性不足[16]。由此可知,利用生成对抗网络可以在未知模型知识(即黑盒攻击)的背景下生成足以愚弄学习模型的高质量对抗攻击样本,但存在两个问题:(1)目前使得黑盒攻击性能表现优异的基于GAN的对抗攻击样本生成方法大多应用于图像分类领域,而在基于GAN的恶意流量对抗样本生成方面,现有方法表现一般且仅仅是针对某一类型的网络攻击行为;(2)当前用于黑盒攻击的网络恶意流量样本生成方法仅仅是针对基于某一种机器学习算法的恶意流量检测器进行设计的,其可扩展性不足。
因此,针对上述问题,本文基于生成对抗网络提出了一种新的用于黑盒攻击的对抗样本生成方法,该对抗样本生成方法在只知僵尸网络检测算法使用的流量特征,而对其学习模型的结构和参数未知的前提条件下,通过训练一个替代判别器来拟合不同的黑盒僵尸网络检测算法,并以原始流量样本与随机噪声的和作为生成器的输入,利用GAN 中多层神经网络的非线性结构使其能够生成更复杂、更灵活的对抗样本来愚弄黑盒的僵尸网络检测算法。生成的对抗样本并不会改变僵尸网络流量样本原有攻击性能的对抗样本。该方法的最终目的是进一步大幅度降低利用GAN生成的用于黑盒攻击的对抗样本在规避僵尸网络流量检测时的被检测率,同时保证该方法在规避基于不同机器学习算法的恶意流量检测器时仍然具有较好的性能表现。实验结果表明,通过本文方法可以在保证僵尸网络流量攻击特性的条件下生成对抗样本,用于攻击黑盒的僵尸网络检测器,使其对僵尸网络流量的被检测率降低了0.481 8,并且针对不同的僵尸网络检测算法和由不同计算机设备构成的僵尸网络,使用本文方法仍然可以生成具有良好规避僵尸网络检测性能的对抗样本,充分证明本文方法具有良好的扩展性。
生成对抗网络(GAN)是由Goodfellow等人在2014年提出的[17]。这种网络模型由两个神经网络组成,一个是生成器,另一个是判别器。整个网络模型如图1所示。
图1 生成对抗网络模型Fig.1 Generative adversarial network model
生成对抗网络的目的是训练一个网络系统,使其能够生成与目标样本集数据分布类似的新样本。GAN的核心思想是博弈论中的纳什平衡,生成器被用来学习真实的样本数据的分布,使其生成欺骗判别器的虚假样本,而判别器则尽可能判别样本是来自生成器还是训练集,两者在对抗训练下不断优化,最终达到纳什平衡。该网络的目标函数如下所示:
式中,G代表生成器;D代表判别器;z是服从高斯分布的随机噪声;pdata(x)代表真实数据的概率分布;pz(z)代表随机噪声的概率分布;x~pdata(x)表示从真实数据的分布中随机抽取x;z~pz(z)表示从高斯分布的随机噪声中抽取噪声z;D(x)和G(z)均表示判别器和生成器在接收括号内输入后所输出的向量。对于生成器G来说,将随机噪声z作为输入,生成器G期望自己生成的样本尽可能地欺骗判别器D,因此需要最大化判别概率D(G(z)),于是对于生成器G,它的目标函数是最小化ln(1-D(G(z)))。对于判别器D,为了尽可能地区分真实样本和虚假的生成样本,它希望最小化判别概率D(G(z))的同时,最大化判别概率D(x),其中x是真实样本。于是判别器的目标函数是最大化lnD(x)+ln(1-D(G(z)))。
在训练GAN的过程中,通常多次更新判别器D的参数后才会更新一次G的参数,这是因为要先有一个好的判别器,使其能够较好地区分真实样本和生成样本之后,才能更为准确地对生成器进行更新。可以证明,当训练样本足够多时,模型会收敛,pG(x)≈pdata(x),二者达到纳什平衡。此时判别器D对真实样本还是生成样本的判别概率均为1/2,样本达到难以均分的程度。
本文提出的基于生成对抗网络的用于黑盒攻击网络流量检测器的对抗样本生成方法的整体网络模型框架如图2所示,主要包括替代判别器和对抗攻击样本生成器。
图2 基于黑盒攻击的对抗样本生成方法框架Fig.2 Framework of adversarial sample generation method based on black box attack
黑盒检测器是一个期望欺骗的僵尸网络检测算法。本文假设攻击者只了解黑盒检测器采用的网络流量特征是哪些,而对其内部使用的网络结构和参数一概不知,但攻击者能够从黑盒检测器中获得对网络流量的检测结果(良性流量或者恶意攻击流量)。
该方法与现有算法的主要区别在于,对抗样本是根据黑盒检测器的反馈动态生成的,而现有算法大多数是在已知检测模型的结构和参数的情况下,采用基于静态梯度的方法来生成对抗样本[18]。
通过该模型生成的对抗样本的概率分布由生成器决定。生成器通过改变攻击样本的概率分布,使其远离黑盒检测器训练集的概率分布。在这种情况下,生成器有足够的机会引导黑盒检测器将僵尸网络流量错误分类为良性流量。
目前发展较为迅速的僵尸网络检测算法主要是基于网络流量的统计特征,这样可以忽略数据包负载中的内容,不管僵尸网络使用加密或者专有协议进行通信都不会影响流统计特征的提取,具有较好的扩展性和适应性。在实际僵尸网络流量的检测过程中,捕获网络中每个数据包的上下文并提取其特征是十分重要的。例如,针对单独的一个TCP SYN 数据包,该数据包可能是试图与服务器建立良性连接,但也可能是为了引起拒绝服务攻击而发送的数百万个类似数据包中的一个。因此,本文在网络通道上采取动态的基于时间窗口的增量统计方法,进行高速的流量特征提取。每当一个数据包到达时,随即在一个小的时间窗口内捕获与该包相关的发送方和接收方之间的流量。通过在特定的时间窗口上捕获数据包来获取数据包的上下文,以汇总来自不同元信息,即同一源IP(SrcIP)、同一源MAC-IP(SrcMAC-IP)、同一信道(源IP 和目的IP 一致,Channel)、同一套接字(Socket)的网络流量。之后基于不同的元信息以及相关网络流量,分类计算不同的统计量,其中包括均值、方差、协方差、近似相关系数等,共23种网络流量特征,如表1 所示。本文分别在5 个时间窗口(100 ms,500 ms,1.5 s,10 s,60 s)内分析并提取表1 所示的23 种网络流量特征,由所得到的总计115个特征统计量组成一个流量样本F。这些统计特征可以被快速递增地计算出来,并且可以充分反映出某些恶意的网络行为,如源IP欺骗、Mirai等攻击行为。提取的这23种网络流量特征,都是基于流量的统计特征,在这些特征上添加扰动,即修改数据包大小、数据包到达间隔时间等,并不会破坏数据包内容。因此,本文添加扰动的方法是利用对抗生成网络中的生成器在原始恶意网络流量样本的基础上,增加或减少适当的特征值,使在一定约束条件下生成的对抗样本同样具有攻击性,详情见2.4节。
表1 特征提取Table 1 Feature extraction
为了使学习效率更高,采用最大-最小方法将样本的115个数据标准化,使其值映射到(0,1)之间,对于网络流量特征向量F={f1,f2,…,fn}(n=115)中的第i个元素作如下映射:
式中,minfi、maxfi分别指的是流量样本集中第i个特征的最小、最大值。经归一化后,将向量X={x1,x2,…,xn}(n=115)作为对抗样本生成模型的输入。
由于攻击者对黑盒的僵尸网络检测器的结构和参数未知,本文使用替代判别器来拟合不同类型的黑盒检测器,从而提供梯度信息来对生成器的网络参数进行更新。
替代判别器是一个权重为θd的,具有3个隐藏层的深度神经网络模型,依次具有256、512、128 个神经元,选择ReLU 作为激活函数,以确保模型的非线性[19]。将学习率设置为0.01,epoch设置为37(迭代次数的设置见本文实验部分的图3),采用Adam 优化器促进模型收敛。以特征向量X作为输入(115个输入节点),输出层使用的是Sigmod函数:
用Dθd(X) 表示X是僵尸网络流量的预测概率。因为这是二分类任务,本文根据Dθd(X)是否大于0.5进行二值转换,0表示良性流量(Benign),1表示恶意攻击流量(Malware),最后将由替代判别器产生的新标签添加到样本集中。替代判别器损失函数如下所示:
替代判别器的训练集由攻击者收集的良性流量样本和僵尸网络攻击流量样本共同组成。需要注意的是,训练集中数据样本的真实标签不用于训练替代判别器,替代判别器的最终目标是匹配黑盒检测器。因此黑盒检测器将首先检测训练集中的流量样本是良性的还是恶意的,之后替代判别器将使用由黑盒检测器得出的预测标签作为真实标签进行训练。本文通过这种方式来充分拟合多种不同类型的黑盒检测器,另一方面,由此训练得到的替代判别器可作为生成对抗网络的最优判别器,从而以此为基础,不断地优化生成器,使其生成最优的对抗样本。
生成器用于将僵尸网络流量样本转换为可攻击黑盒检测器的对抗样本。它以原始流量样本的特征向量F归一化之后的向量X和噪声向量Z的和为输入,X和Z都是具有115个元素的一维向量,特别地,Z中的每个元素都为[0,1)区间内且满足高斯分布的随机数,将Z中每个元素的值对应添加到僵尸网络流量特征向量X上,得到生成器的输入向量X′={x1+z1,x2+z2,…,xn+zn}。这样做的目的是为了使生成器可以从单个僵尸网络流量特征向量上生成不同的对抗样本。
向量X′被输入到一个权重为θg的多层深度神经网络(生成器)中,该深度神经网络的网络结构除输出层外,其他层的结构与替代判别器的网络结构一致。超参数设置方面,将学习率设置为0.01,同样采用Adam优化器,epoch 设置为45(由实验部分的图5 可知,当迭代次数达到45 次时,模型收敛)。该网络的输出层有115 个神经元,使用的激活函数是Sigmoid函数,它将输出限制在(0,1)范围内,输出为G(X′)。为了使生成的对抗样本仍然保持可攻击性(增加的扰动足够小),本文利用替代判别器的输出作为对抗样本与原始真实样本数据分布差异的测度,并以此建立约束,保证生成器生成的对抗样本与原始真实样本的分布一致性,约束的具体公式如下:
式中,θg表示生成器G的网络参数,pX和pZ分别表示原始流量X和随机噪声Z的分布,Gθg(X,Z)表示以原始流量X为条件,生成器通过随机噪声Z生成的对抗样本。
生成的对抗样本为攻击者进一步规避黑盒检测器提供了参考依据,攻击者可以根据生成的对抗样本修改相应的攻击程序,如修改数据包大小,修改数据包发送间隔时间等。这里可以通过最大-最小标准化的反向运算来得到具体对抗样本的特征向量Y。
如式(6)所示,在实际的反向运算中,本文忽略了对抗样本中对于第i个特征的最小、最大值的变化,因为这对具体的对抗样本特征向量的生成影响很小。
特别地,在本文提出的对抗样本生成模型中,可以发现生成器和判别器不是同时被训练,这是因为模型中替代判别器的作用是来拟合黑盒检测器的,需要配合黑盒检测器进行单独训练,因而在生成器训练的过程中,替代判别器是固定的,它的作用只是将得到的梯度信息反馈到生成器中,从而不断地优化生成器。
本文提出的用于欺骗网络流量检测器的对抗样本生成方法是采用新的基于物联网设备的网络流量开源数据集N_BaIoT来进行评估的[20]。该数据集收集了9种商用物联网设备被Mirai和BASHLITE分别感染后的僵尸网络流量数据和未被僵尸网络感染的良性流量数据,共包含7 062 606 个实例样本以及每个实例样本的115种属性信息。为了保证模型在训练时样本数据分布一致性,实验过程中只选用了数据集中的一种物联网设备(网络摄像头)的流量数据样本作为对抗样本生成模型的训练集和测试集。
实验首先进行的是替代判别器拟合黑盒僵尸网络检测器的部分。该部分先将网络摄像头的良性流量以及僵尸网络流量样本经过数据处理后输入黑盒僵尸网络检测器中,输出并记录黑盒检测器对每个流量样本的新标签(良性0 或者恶意1),之后将带有新标签的同种物联网设备的流量样本集作为替代判别器的训练集和测试集,分配比例为9∶1。其次是对生成器的训练部分。该部分是将同种物联网设备僵尸网络流量样本的90%用作生成器的训练集,剩下的10%作为测试集,来测试生成的对抗样本的有效性。
本文首先分析了在针对不同类型黑盒检测器时,生成对抗网络模型中替代判别器的拟合表现。在对恶意僵尸网络流量的检测中,计算替代判别器和不同类型黑盒检测器的F1值。当替代判别器能在该评价标准(F1值)上与目标黑盒检测器几乎一致时,便可以充分地证明替代判别器可以很好地拟合该检测器,进而可以利用该替代判别器来训练生成器。
表2列出了在相同数据集上,黑盒检测器以及替代判别器拟合不同类型的黑盒检测器时计算得到的F1值。表中表示替代判别器拟合对应黑盒检测器后得到的F1值;表示F1和两者的差值的绝对值,差值越小,表示拟合效果越好。由表2可知,对于基于逻辑回归(LR)、支持向量机(SVM)、多层感知机(MLP)以及深度神经网络构成的恶意流量检测器,所得到的值小于等于0.010 1,而对于基于决策树(DT)和随机森林(RF)构成的恶意流量检测器,对应的|值大于等于0.034 2,相对来说比较大一点。这是因为由逻辑回归、支持向量机、多层感知机和深度神经网络构成的检测器,它们的网络结构与本文构造的神经网络结构非常相似,所以替代判别器能够以非常高的精度来拟合它们。但总得来说,无论是哪种类型的恶意流量检测器,替代判别器都可以较好地对其进行拟合。
表2 替代判别器拟合不同的黑盒流量检测器Table 2 Substitute detector to fit different types of black box traffic detectors
替代判别器在拟合基于不同类型的机器学习算法的僵尸网络流量检测器时的收敛曲线如图3所示,y轴表示替代判别器在拟合不同类型的僵尸网络流量检测器后对僵尸网络流量的识别检测率TPR(true positive rate),x轴表示训练的迭代次数。由图3 可知,当替代判别器迭代训练到37 次左右时,针对不同类型的僵尸网络流量检测器的拟合曲线都可以达到收敛状态。
图3 替代判别器的收敛曲线Fig.3 Convergence curves of substitute detector
之后以基于不同机器学习算法的僵尸网络检测器分别作为期望欺骗的黑盒检测器,在相同数据集上对本文提出的对抗样本生成方法进行性能分析。
表3 中F1、F1′分别表示原始恶意流量样本、利用本文方法生成的对抗攻击样本在被不同类型的真实僵尸网络流量检测器检测后计算得到的F1值;为两者差的绝对值,该值越大,表示由本文方法生成的对抗样本在规避对应僵尸网络流量检测器方面的性能越好。由表3可知,生成的对抗样本可以大幅度地降低原始恶意流量样本的被检测率,尤其是在针对基于多层感知机和深度神经网络的僵尸网络流量检测器时,分别可达到0.598 3 和0.627 9,此时本文方法表现最好。
表3 本文提出的对抗样本生成方法的性能表现Table 3 Performance of adversarial sample generation method proposed in this paper
其次,为探究本文方法在由不同计算机设备构成的僵尸网络中的适用性,以基于随机森林的僵尸网络流量检测器作为期望欺骗的黑盒检测器(基于随机森林算法的流量检测器相对于其他机器学习算法可得到更高的检测率),通过对抗样本生成方法,在相同和不同数据集下分别进行性能分析:
(1)使用一种网络摄像头的流量样本作为训练集(包含良性流量和僵尸网络流量)对黑盒检测器和对抗样本生成模型分别进行训练。之后将测试集中的僵尸网络流量样本随机均匀分为5 组,每组50 000 个样本,利用训练好的黑盒检测器检测原始恶意流量样本以及将其经生成模型转换后得到的对抗样本,分别计算得到不同的僵尸网络流量检出率TPR,如图4所示。
图4 黑盒流量检测器对恶意流量样本的检出率Fig.4 Detection rate of black box traffic detector to malicious traffic samples
由图4可知,运用基于随机森林的僵尸网络流量检测器检测原始僵尸网络流量可达到95.78%的平均检出率,而对生成的对抗样本的平均检出率只有47.60%,两者相差0.481 8。可见,通过本文提出的流量对抗样本生成方法生成的对抗样本可以有效地欺骗僵尸网络流量检测器,有助于僵尸网络流量样本规避相关流量检测器的检测。
图5 展示了对抗样本生成模型在训练过程中的收敛曲线,y轴表示黑盒检测器在僵尸网络流量经对抗样本生成模型转换后对新生成的僵尸网络流量的识别检测率TPR,x轴为训练的迭代次数。由图4 可知,当模型迭代到45次附近时可以收敛到47%左右。
图5 对抗样本生成模型的收敛曲线Fig.5 Convergence curve of adversarial sample generation model
(2)使用其他8 种类型的物联网设备在被Mirai 和BASHLITE 攻击后产生的恶意流量样本作为对抗样本生成模型训练数据集。由图6可知,通过本文方法生成的对抗样本可以将恶意流量的被检测率降低至53.98%以下,充分说明该模型不仅适用于多种类型的物联网设备,而且针对不同类型的网络攻击都可以为其生成有效的对抗样本以规避检测,具有良好的扩展性。图6 中,x轴表示不同物联网设备产生的流量样本数据集,y轴表示在相应数据集下,黑盒检测器对通过对抗生成模型转换后的僵尸网络流量的识别率TPR。
图6 不同类型数据集下对抗样本生成方法的性能Fig.6 Performance of adversarial sample generation models under different types of data sets
最后,将本文提出的基于生成对抗网络的用于规避僵尸网络流量检测的对抗样本生成方法与其他恶意网络流量生成方法进行对比,结果如表4 所示。Pan 等人提出的方法[16]仅仅适用于针对缓冲区溢出漏洞生成攻击网络流,没有展开对其他网络攻击流量生成的研究,扩展性较差,并且生成的对抗样本相比于原始样本,被检出率仅仅下降了0.11左右。相比较而言,由本文提出的方法不仅适用于众多通过僵尸网络进行的网络攻击,并且只需要获得网络攻击流量的统计特征便可生成相应的对抗样本,且生成的对抗样本使得恶意流量被检测率下降了0.48左右。综上所述,可知使用本文提出的方法生成的基于恶意流量的对抗样本在规避检测器方面具有更好的性能。
表4 本文方法与其他方法的性能比较Table 4 Performance comparison of this proposed method and other method
本文针对在未知僵尸网络流量检测器结构和参数的前提条件下,基于生成对抗网络提出了一种新的用于黑盒攻击的对抗样本生成方法。本文方法通过构建替代判别器来拟合基于不同算法的僵尸网络流量检测器,从而利用生成对抗网络向原始恶意流量样本添加不改变其攻击特性的微小扰动,试图规避流量检测器的检测。实验结果表明,在N_BaIoT 数据集下,由本文方法生成的对抗样本可以大幅度降低那些基于机器学习算法的流量检测器对恶意流量的检出率。其次充分证明了本文方法生成的对抗攻击样本可以规避基于不同类型的僵尸流量检测器,具有优异的可扩展性。
由此可见,基于机器学习的僵尸网络流量检测器在面对这种对抗样本时缺乏防御能力,很容易被攻击者利用。因此,在未来工作中还需要探究对抗防御,旨在研究出更好的防御手段或者模型,以帮助深度神经网络抵抗对抗样本的攻击。除此之外,本文旨在重点强调该方法在黑盒攻击不同类型僵尸网络流量检测器方面的有效性,对生成对抗网络中所涉及的模型构建以及相关超参数的设置并未做深入研究,这一点需要在未来研究工作赋予实践。