对抗机器学习在网络入侵检测领域的应用
2021-12-08刘奇旭王君楠尹捷陈艳辉刘嘉熹
刘奇旭,王君楠,尹捷,陈艳辉,刘嘉熹
(1.中国科学院信息工程研究所,北京 100093;2.中国科学院大学网络空间安全学院,北京 100049)
1 引言
网络入侵检测系统(NIDS,network intrusion detection system)是一种主动安全防护技术,通过实时监视网络流量,并与已知的攻击库进行匹配[1],从而快速感知被监控网络中违背安全策略、危及系统安全的行为,是保障网络安全的重要手段。
黑客攻击手段的不断升级及网络数据的大规模增长,让传统基于规则的检测方法难以为继,系统占用资源过多、对未知攻击检测能力差、需要人工干预等缺点日益突出[2]。随着人工智能的蓬勃发展,基于机器学习(ML,machine learning)的异常检测逐渐成为主流NIDS 方案[3]。ML 算法的高速运算能力能够有效应对大规模网络流量,且ML 模型应对分类问题具有天然优势,其出色的泛化能力可使NIDS 具备一定检测未知恶意流量的能力。
机器学习作为一个复杂的计算系统,同样面临着安全性考验。2014 年,Szegedy 等[4]首次提出了对抗样本概念,发现可以通过在原始样本中加入精心构造的微小扰动从而误导ML 模型,并将这种形式的攻击命名为对抗攻击。随后Papernot 等[5]发现对抗样本具有在不同ML 模型之间迁移的特性。这一发现揭露了ML 技术在安全方面的极大缺陷,从而使人们更加谨慎看待ML 算法在其他领域的应用。2017年,Kurakin 等[6]用手机相机拍摄生成的洗衣机对抗样本照片,成功误导了TensorFlow Camera Demo 应用。2018 年,Alzantot[7]通过变动少量词汇成功攻击了情感分析和文本蕴含模型。2019 年,Qin 等[8]构造了人耳无法辨别的音频对抗样本。在一些安全敏感的领域,如医疗检测[9]、自动驾驶[10]和人脸识别[11]等,对抗攻击将带来更加严峻的安全威胁,直接影响人们的人身、财产和隐私的安全。
入侵检测原本就是具有高对抗性的网络攻防对抗领域,对抗攻击的出现为恶意网络攻击者提供了强大武器,给安全防御工作带来极大挑战。因此对抗攻击在入侵流量检测与绕过这一领域的应用引起了安全研究者的广泛关注[12-17]。
本文首先结合NIDS 领域特有的流量对象和场景需求,提出了将对抗机器学习(AML,adversarial machine learning)技术应用于NIDS 领域的独特约束和挑战。其次,结合上述约束和威胁模型,本文从攻防2 个视角提出适用于NIDS 领域的对抗攻击和对抗防御多维分类法,从多个角度总结和对比现有工作。最后,基于对已有工作的总结分析,本文对当前研究的不足和未来发展方向进行探讨和展望。
2 基础知识
2.1 基本概念及形式化
机器学习的对抗样本问题引起了研究者的极大关注,并提出了一系列的对抗攻击和对抗防御的方法,这一领域即对抗机器学习。
如图1 所示,对抗样本是指在测试样本上添加精心构造的扰动而生成的新的输入样本。对抗样本与原始测试样本在人为观察上无明显差异,但会使ML 模型产生与原始样本完全不同的预测结果。
对抗性扰动则是根据AML 算法,通过最大限度提高预测误差而获得的难以察觉的非随机噪声。
给定经过训练的ML 分类器f:Rm→Label 和原始输入数据样本x∈[a,b]m,生成对抗样本x′=x+η(η为对抗性扰动)的过程通常可以形式化为一个边界约束的优化问题[4],即
其中,y′表示x′的目标标签;表示2 个样本的距离;边界约束x′∈[a,b]m意味着必须在有效边界内生成对抗样本;η=x′−x表示添加在原始样本x上的扰动。该优化问题的目标就是在最小化扰动的同时,使模型将添加了扰动的输入数据错误分类。
2.2 经典对抗机器学习算法
Goodfellow 等[18]提出了快速梯度符号方法(FGSM,fast gradient signed method),在L∞范数限制下将样本朝着梯度上升方向推动,快速增加损失函数,从而改变分类结果。FGSM 计算成本低、生成速度快,但攻击能力较弱,适用于对攻击效率有较高要求的应用场景。
Papernot 等[19]提出基于雅可比矩阵的显著图攻击方法(JSMA,jacobian-based saliency map attack)。JSMA 通过计算正向导数来评估模型对每个输入特征的敏感度,进而定位最易导致模型输出发生重大变化的像素点来欺骗模型。JSMA 使用L0 范数来限制扰动大小,对原始输入修改较少,同时由于JSMA 采用正向传播计算显著点,计算过程相对简单。
Moosavi-Dezfooli 等[20]提出了能够生成最小化L2 范数的对抗性扰动的方法——DeepFool。DeepFool 逐渐将位于分类边界一侧的样本推向另一侧,直到分类错误。这种方法对原始输入的改动相对较少,同时生成的对抗样本具有较好的攻击效果,但计算量也相对较高。
Carlini和Wagner[21]提出的C&W攻击重新设计了多步迭代攻击中的损失函数,使其在对抗样本中有较小的值,但在原始样本中有较大的值,因此可通过最小化该损失函数得到对抗样本,是目前最先进的白盒攻击方案。
Moosavi-Dezfooli 等[22]进一步证明了跨越数据及网络架构的通用对抗扰动(UAP,universal adversarial perturbations)的存在。该方法对所有样本进行迭代版的DeepFool 攻击,直到找到一个可以使大部分样本都分类错误的扰动η。UAP 攻击不需要目标模型的任何信息,极大地降低了实施对抗攻击的门槛,危害性更大。
3 独特挑战与约束
在NIDS 领域中,AML 扰动对象为恶意流量,这与在图片样本上进行修改有很大不同。本节结合NIDS 领域的独特场景和对象,详细分析在NIDS领域应用AML 算法所具有的独特挑战和约束。
3.1 独特的场景挑战
入侵检测与绕过领域具有高度对抗性,攻击者与防御者在技术更新迭代中不断对抗。在NIDS 领域应用AML 算法存在以下几点特殊挑战。
1) 应用场景的挑战。在真实的网络攻击场景中,攻击者往往拥有较少的检测模型知识,且无法通过不断访问NIDS 来训练替代模型。因此基于梯度的AML 算法和需要大量访问目标模型的攻击方法在NIDS 场景中都无法直接应用。
2) 直接生成对抗流量的挑战。若想对NIDS 产生真实威胁,攻击者需要产生能在网络传输的对抗流量,仅生成对抗特征向量的对抗攻击在NIDS 领域难以适用。
3.2 独特的扰动约束
在生成图像对抗扰动时,往往以“微小”为基本约束,通过限制L∞、L 1、L 2范数使添加的扰动对人不可观察,从而避免被人类观察员发现。在NIDA 领域,“微小”约束不再适用,取而代之的是恶意流量样本所带来的以下几点更严苛的约束条件。
1) 遵守网络协议规范的约束。为了保证被扰动后的网络流量仍能在现网传输,需要保证在添加扰动后仍符合网络协议规范。即各协议头部字段须保持正确含义,且符合各部分的值域范围。如IP 层头部前4 bit 代表版本号,值域范围是(4,6),在扰动后不应出现值域范围外的数值。
2) 维持恶意功能的约束。入侵流量往往承担着传递恶意信息、执行恶意功能的基本任务,为了保证在添加扰动后的恶意流量仍能实现原本恶意目的,添加的扰动不应对承担恶意功能的特征或区域产生影响。例如,随意更改恶意payload 或将协议类型从TCP 更改为UDP,可能会导致恶意功能无法实现或是数据包无法传输。
3) 保证一致性的约束。如果扰动对象是恶意流量的特征向量,在施加扰动时还需要考虑各特征之间的相关关系。例如,特征向量同时包含持续时间duration、数据包字节长度Byte 和字节传输速率bit/s,在施加扰动后仍应满足bit/s=Byte/duration 的依赖关系,否则将无法据此生成真实恶意流量样本。
在NIDS 领域应用AML 算法所具有的独特的挑战和约束使很多原本适用于在计算机视觉领域的对抗攻击和防御方法无法适用,这些方法或因应用场景的严格限制和不透明而导致假设不成立,或因无法产生真实流量而不具备实际攻击价值,都很难直接应用于NIDS 领域。为充分调研和分析相关工作成果,本文将结合本节提出的若干挑战和约束,构建适用于NIDS 的AML 分类法。
4 分类法
本文将基于机器学习的NIDS 一般应用流程分类为模型训练和测试两大阶段,并以此为中心根据不同攻击阶段提出了多维对抗攻击分类法,根据不同修正对象提出了与模型训练阶段各具体步骤相对应的对抗机器学习技术分类法,如图2 所示。
4.1 对抗攻击分类法
考虑到在NIDS 领域实施对抗攻击所具有独特约束和挑战,本文按照攻击的发展阶段提出了一种全新分类法。
如图2 所示,作为一种测试时攻击,对抗攻击实施者将首先利用社会工程攻击或先验知识等侧信道信息充分分析攻防双方的形势地位以确立威胁模型,随后据此选择适当的对抗攻击方法,并生成对抗样本输入基于机器学习的NIDS,从而绕过检测实现恶意目的。
威胁模型,是指本文通过对攻击者目标、能力以及知识的描述,建立一般性的威胁模型。
1) 攻击者知识,指攻击者对ML 模型整体的了解程度。具体包括:全部或部分训练数据;样本的特征表示;模型所采取的机器学习算法和判别函数;训练后模型的具体参数;模型的判别结果[23]。根据信息掌握程度可以分为白盒、灰盒和黑盒攻击。
①白盒攻击。假设攻击者对NIDS 的训练数据、算法、模型及参数有完整的知识。白盒场景下防御者完全透明,在现实攻击场景中通常是不可行的。
②灰盒攻击。假设对手可以访问不同程度的信息。对于灰盒攻击,对手没有模型创建者所拥有的确切知识,但有足够的信息攻击机器学习系统,导致机器学习系统失败。
③黑盒攻击。假设对手没有任何关于机器学习系统的先验知识,仅能通过访问模型获得二进制分类结果。真实场景中的黑盒攻击可能比理论上的黑盒模型更具限制性,例如在真实NIDS 攻防场景中,攻击者往往仅具有有限的访问次数。
2) 攻击者能力。对抗攻击是测试时攻击,因此攻击者需具有操纵测试样本的能力。在NIDS 场景下,攻击者往往是恶意软件的实际操控者,具有控制恶意流量的构造和发送,且根据要求调整恶意网络行为的较高能力权限。
3) 攻击者目的。对抗攻击的目的在于破坏机器学习系统的完整性,降低模型的可靠性。在NIDS二分类应用场景下,攻击者希望通过施加对抗性扰动,使基于机器学习的NIDS 将对抗恶意流量样本识别为良性,从而绕过检测,增加攻击行为的隐蔽性。
攻击方法,是指根据攻击方法的基本原理进行分类。不同的攻击方法对攻击者的能力需求不同,产生的实际危害程度也会有所区别。
1) 基于梯度的攻击。攻击者掌握分类器的损失函数,通过获得目标模型对于特定输入的梯度信息,进行优化搜索或逆梯度构造来生成对抗样本。
2) 基于得分的攻击。攻击者利用目标模型的分类置信度或logits,即样本的概率向量,获得目标模型的细节信息,从而指导对抗样本的构造。
3) 基于决策的攻击。攻击者收集目标模型的二进制分类结果来训练替代模型,或利用生成模型学习对抗样本自身的分布,直接构造对抗样本的方法。
输出结果,是指根据对抗攻击最终生成的样本类型进行分类[24]。
在机器学习领域有问题空间和特征空间之分[25]。问题空间指样本实例的集合,特征空间则是用于表示样本实例的特征向量的集合。两者有时是相同的,更多时候特征空间是由问题空间通过某种映射生成的。根据对抗攻击方法的输出,可将其分为以下2 种。
1) 特征空间攻击,指仅能生成具有对抗性的流量特征向量的对抗攻击方法。
2) 流量空间攻击,指能够生成可在网络中传输的流量样本的对抗攻击方法。
由于从流量样本到流量特征的映射通常是不可逆的,即在已知流量特征向量的情况下,很难通过逆映射运算得到真实流量样本。而且从特征到流量样本的映射往往并非双射,也就是说在给定特征向量v和对抗扰动r,可能并不存在与v+r对应的流量实例x。因此在NIDS 领域,特征空间和流量空间攻击的实际威胁程度有较大的差异。
4.2 对抗防御分类法
为降低对抗样本带来的安全威胁,增强NIDS模型的稳健性,安全防御人员需采取对抗防御措施来抵抗潜在的对抗攻击方法。如图2 所示,根据作用阶段的不同,对抗防御可以分为在模型训练阶段针对数据的修正、针对模型的修正,以及在模型测试阶段使用附加网络检测对抗样本三类。
1) 针对数据的修正,是指通过在“数据收集与预处理”和“特征提取与挑选”阶段,通过改变模型的训练数据组成或改变模型的特征空间来间接地提高目标模型对对抗样本稳健性的一类防御方法。这类方法多数需要重新进行模型训练。
2) 针对模型的修正,是指通过直接修改目标分类模型实现对抗样本防御的一类方法。具体实现又可包括掩蔽梯度信息、增加模型正则化程度和采用更复杂的分类机制等方法。这类方法往往会增加模型复杂度,对模型的准确性也有一定影响。
3) 使用附加网络检测,是指在不改变目标分类模型的前提下,通过训练额外的ML 模型检测对抗样本,从而排除对抗样本对目标分类器的影响。这类方法增加了训练附加网络的训练成本,而且可能会影响目标分类模型的效率和实用性。
5 对抗攻击
结合NIDS 领域特有的约束,本文将根据第4 节提到的分类法,从攻击者知识和输出结果2 个角度总结分析当前对抗攻击在NIDS 领域的具体实践。相关工作总结对比[26-44]如表1 所示。
表1 对抗攻击方法
白盒&特征空间攻击。在白盒场景下的特征空间攻击方法利用传统基于梯度的AML 算法,直接将网络流量特征向量当作图像样本施加无差别扰动,从而得到能够绕过基于ML 模型的NIDS 的、具有高对抗性的恶意流量特征向量。
文献[26]利用FGSM、JSMA 方法针对多层感知机和由决策树、随机森林以及支持向量机构成的集成分类器发起对抗攻击。通过评估在NSL-KDD数据集上的分类器性能指标的下降(10%~27%)证明了基于机器学习的NIDS 难以抵抗对抗攻击。文献[27]增加了C&W 和DeepFool 这2 种攻击方法的评估。Ibitoye 等[28]则在Bot-IoT 数据集[45]上评估了FGSM、BIM、PGD 这3 种攻击方法针对前馈神经网络和自归一化神经网络模型[29]的有效性。文献[46]则针对已发表的IDS 模型KitNet[47]实施了对抗攻击,并证明平均修改1.38 个输入特征即可使Mirai恶意流量绕过检测。
白盒&流量空间攻击。为了生成可在网络中传输的攻击流量,在应用已有的基于梯度的攻击方法时,攻击者需要考虑在第3 节中提到的几种特殊约束,从而限制对抗性扰动的影响范围。
文献[30]将扰动的特征限制在持续时间、总字节、总包数以及基本属性特征中,且仅采用FGSM生成的正值扰动。在这2 项约束下,利用代理通过增加和时延数据包等操作实现了加密C2 流量绕过检测,不但能够保证恶意功能和遵守网络协议规范,而且由于扰动的特征之间无依赖关系,该方法可以保证特征一致性。
文献[31]提出了一个融合特殊域约束的基于梯度的迭代对抗攻击框架,也提出了特征空间的特定域依赖和数学关系依赖,并针对性设计了可以保持特征内部一致性的更新函数。作者通过加包操作改变持续时间、总包数、总字节数等特征,使基于CTU 数据集[48]的检测模型的AUC 从0.98 降为0.21。
文献[32]借鉴了UAP 的思想,通过构造通用对抗扰动来绕过1D-CNN 模型。针对网络流量分类的不同输入空间分别提出3 种构造UAP 的攻击方法。AdvPad 在原始数据包有效负载中注入UAP;AdvPay 将UAP 作为有效负载构建新数据包插入原始流中;AdvBurst 将具有UAP 生成的统计特征的虚拟包注入原始流中。该方法基于代理实现了在数据包层面上的增量操作,不但保证了前述若干约束,而且能够使检测器的召回率下降20%~70%。
灰盒&特征空间攻击。利用有限的知识构造能够绕过目标NIDS 模型的对抗特征向量。
Yang 等[33]在NSL-KDD 上针对MLP 模型分别使用 C&W、ZOO[49]和生成式对抗网络(GAN,generative adversarial network)3 种方法生成对抗样本。作者提出,尽管ZOO 的攻击效果更好,但它需要大量的查询来生成敌对的示例,很难适应真实的网络攻击场景。文献[34]同样利用WGAN[50]构造对抗样本。作者假定攻击者了解目标模型的特征空间,利用判别器模拟目标模型,同时仅保留对非功能性特征的扰动,从而弥补了文献[36]的不足。
Shu 等[35]提出了一种结合主动学习和GAN 的对抗攻击方法。利用基于边缘采样的主动学习选择距离目标模型决策边界更近的样本来训练替代模型,从而减少目标模型的访问次数。实验表明,仅通过25 次模型访问即可实现98.86%的绕过率。
Aiken 等[36]通过仅向3 种SYN 泛洪的典型特征(数据包大小、数据包传输速率和上下行流量比率)随机添加噪声,基于目标模型反馈的分类置信度实验最佳扰动值。实验结果表明,同时扰动3 种特征可将RF、线性回归和SVM 的准确率降为0。
文献[37]提出了一种基于对抗性转换网络的对抗方法。作者观察到Meek 流量和HTTPS 流量在有效负载长度分布和数据包到达间隔分布2 个特征上有显著差异,因此基于StarGAN[51]融合多个损失函数,最小限度地修改统计特征,从而将Tor 网络的流量隐藏在HTTPS 连接中。实验证明本文提出的攻击方法可将平均FPR 从0.183 提高到0.834。
以上工作通过仅扰动非功能性特征的方法来满足约束,文献[38]则进一步总结并解决了以下3 种约束。1) 二进制特征:仅二进制翻转。2) 保持恶意功能:仅执行增量操作。3) 特征依赖:联动修改具有相关关系的特征。在这3 种约束下,通过遗传算法、粒子群算法和GAN 进行优化搜索找到最小扰动。在NSL-KDD 和UNSW-NB-15[52]数据集上的实验证明,可实现92.6%的绕过成功率。
灰盒&流量空间攻击。考虑到社会工程攻击和恶意流量检测广泛存在的先验知识,攻击者往往能够获得目标模型的部分知识(如算法、特征空间等),从而更有针对性地设计对抗攻击方法。
Kuppa 等[39]在原始样本的球形局部子空间搜索生成对抗样本并利用流形近似算法[53]来减少查询次数。作者仅扰动非功能性特征,并使用Scapy 不断更新数据包以维持特征之间的依赖关系,从而实现对抗特征向量到对抗流量样本的逆向构造。
黑盒&流量空间攻击。黑盒场景提出更加严格的限制,即攻击者仅能利用NIDS 的二进制判别结果来构造能够绕过检测的恶意对抗流量。因此,黑盒场景下的流量空间攻击与真实场景下的NIDS 绕过攻击场景最一致,也最具实用性和威胁性。
Rigaki 等[40]提出了一种基于GAN 的流量空间攻击方法。作者利用GAN 模拟Facebook 流量的统计特征,并将获得的对抗性特征传递给恶意代码,以便其构造符合“要求”的恶意流量,从而使Stratosphere IPS 无法区分恶意流量与Facebook 流量。FlowGAN[54]不再局限于Facebook 流量,而是可以模拟任何“正常”网络流量动态改变流量特征绕过审查。但这2 个工作中,GAN 仍然仅负责生成对抗性特征。攻击者需要对恶意软件源代码进行复杂修改才能实现从对抗特征到对抗流量的转换。
Hashemi 等[41]采用基于决策的思想,借助有限的目标NIDS 反馈,在数据包层次上或网络流层次上迭代修改原始输入样本,从而生成对抗样本。为了满足前述约束,作者限制扰动动作为数据包分裂、数据包时延和数据包注入3 种操作。该方法的不足在于需要向目标NIDS 发送大量的询问。
Wu 等[42]将对抗样本构造问题建模为序列决策问题,利用深度强化学习生成对抗样本。作者设计了一个包含14 个数据包级别增量操作和时间扰动操作的动作空间。代理以黑盒检测模型的二进制判别结果为奖励,根据强化学习策略从动作空间中选择下一个修改动作,迭代修改原始流量样本,直到成功欺骗目标模型或超出最大访问限制。
Cheng 等[43]从基于策略梯度的序列生成模型SeqGAN[55]中获得灵感,提出了Attack-GAN 攻击。作者将对抗流量的生成建模为序列决策过程,生成器相当于强化学习中的代理,生成的字节为当前状态,动作空间为全部可能字节。生成器将以判别器的梯度信息作为奖励,利用蒙特卡罗树搜索算法来选定下一字节,并通过仅修改不影响恶意功能的字节和遵守网络协议头部字段值域范围来满足保持恶意功能和遵守网络协议规范的约束。
文献[44]提出了一种新的端到端基于时间的对抗流量重构攻击——TANTRA。TANTRA 利用长短时记忆网络学习良性数据包的时间差分布特点,从而实现在不改变恶意数据包内容的前提下,通过改变恶意流量数据包的时间差分布绕过检测。在CIC-IDS2017[56]上的实验实现了99.99%的平均成功率。
可以发现,在NIDS 领域的对抗攻击方法从最开始简单的迁移计算机视觉领域的工作,逐步发展为结合NIDS 具体应用场景开发新型对抗攻击方法。虽然很多研究工作都声称自己可以实现黑盒场景下的NIDS 对抗攻击,但或者因为所使用的是NSL-KDD 的特征数据集而依赖目标模型的特征集,或是需要了解目标模型分类得分都仅能实现灰盒攻击,但并不代表这些工作完全不可采纳。由于恶意流量的恶意特征往往比较明显,且不同检测模型使用的特征空间通常具有一定的重复性,而攻击者作为经验丰富的恶意专家很可能拥有关于检测常用恶意特征的先验知识。因此攻击者完全可能在不了解目标模型确切特征空间的条件下,基于领域先验知识选择典型恶意流量特征施加扰动,进而实现对黑盒NIDS 模型的对抗攻击。
从输出结果角度分析,流量空间攻击则显得更有价值。流量空间攻击的重要环节是生成对抗性恶意流量,主要包括以下几种方法:1) 直接在原始流量上施加数据包增量和时延操作,并利用代理实现扰动,如文献[31-32,41-42,44];2)利用其他组件从对抗特征构造对抗流量,同时仅修改非功能性特征,而不损害原始流量功能,如文献[39];3)将对抗特征传递给控制端,使其根据需求重新生成恶意流量,这需要对源码施加复杂的修改,如文献[40,54]。
6 对抗防御
随着对抗攻击方法研究的不断深入,为增强ML 模型的稳健性,抵御对抗攻击的安全威胁,研究者提出了多种防御方法,根据修正对象的不同可分为针对模型的修正、针对数据的修正和使用附加网络3 种类型。相关工作整理如表2 所示。
表2 对抗防御方法
1) 针对模型的修正
防御蒸馏。在防御蒸馏模型[57]中,选择2 个相同的模型作为教师和学生模型,将原始分类模型学到的信息迁移到小型网络模型中,从而实现了梯度遮掩。防御蒸馏可以有效抵抗一些基于梯度的小幅度扰动的对抗攻击,但在未知模型函数或黑盒攻击的情况下,该防御方法失效。
深度压缩网络(DCN,deep contractive networks)。文献[58]提出了一种融合了平滑惩罚的端到端训练模型DCN,从而在保证不会显著降低性能的前提下,增加了网络对对抗样本的稳健性。与这种去噪的思想类似,文献[59]利用去噪自编码器构建NIDS,并在数据输入模型前应用多个随机掩码增加输入数据的噪声扰动,实现了相当于Kitsune-GMM79 倍的检测率,在对抗环境中的检测率也是Kitsune-GMM 的3.73 倍。
集成分类模型。文献[60]提出一种层次集成的NIDS。其中每个弱分类器都使用不同特征集,且后置分类器仅处理前置分类器识别为良性的样本,从而保证被识别为良性的样本可经过全部弱分类器。实验证明该防御方法可100%抵抗基于最邻近算法的对抗攻击[62]。但这种方法会显著增加防御成本。
基于邻域分类的防御。Cao 等[63]基于对抗样本的分布接近于分类边界这一观察,提出以基于区域分类的防御方法。具体来说,对于每个待预测样本,在以其为中心的超立方体邻域范围内随机选取若干个样本,采用多数表决方式选择预测标签最多的作为待预测样本最终的标签。通过在MNIST 和CIFAR-10 数据集上的实验证明,该方法可以防御FGSM、C&W、JSMA、BIM 和DeepFool 等多种先进的攻击手法,同时不牺牲分类精度。
2) 针对数据的修正
对抗训练。对抗训练通过在模型训练数据集添加预先构造的对抗样本,提升模型针对对抗样本的稳健性。根据加入对抗样本的不同,又可进一步分为FGSM 对抗训练[23]、PGD 对抗训练[74]和集成对抗训练[75]防御方法。前两者是仅利用某种特定攻击方法快速构造大量对抗样本进行对抗训练,而集成对抗训练则是利用多种类型的对抗样本来对原始数据集进行数据增强。对抗训练泛化性能较差,仅能防御已知的攻击类型,因此能够发挥的作用有限。
在NIDS 领域,文献[64-66]都使用了对抗训练的方法来加强IDS 模型对于对抗攻击的稳健性,并在多种数据集、多种攻击方法、多种分类器模型下进行了全面细致的评估。文献[64]还证明基于主成分分析的特征约减也能够显著提高IDS 的稳健性。
非稳健特征约减。文献[76]提出了一种特征压缩的方法来检测对抗样本,其基本思想是巨大的特征输入空间为攻击者构建对抗样本提供了很大的空间,因此防御者可以通过“压缩”不必要的输入特征来减少攻击者的自由度,限制其攻击行为。文献[68]借鉴了这一思想,通过删除一些稳健性得分较低的特征来防御潜在的对抗攻击。通过删除20%分数较低的特征,与对抗训练和简单的特征选择相比,该方法能够实现更好的防御性能,同时分类器的检测性能不会受到显著影响(∆F1-score<5%)。
3) 使用附加网络检测
基于GAN 的防御。文献[69]阐述了一种基于GAN 框架的防御——Defence-GAN 训练生成器学习原始样本分布,从而在测试阶段搜索接近于对抗样本的原始图像将对抗样本转化为正常样本,降低对抗扰动噪声带来的影响。Defence-GAN 可防御多种对抗攻击,具有一定的泛化能力。APE-GAN[70]则为生成器设计了一个混合损失函数,使其以对抗样本为输入,学习生成与原始图像相似且消除了对抗性扰动的重建图像,从而缓解对抗样本影响。
基于流形的防御。MagNet[71]基于流形假设,通过拒绝或重塑对抗样本来保护目标模型。MagNet由检测模块和重塑模块组成。检测模块测量测试样本与正常流形之间的距离,基于重构误差和概率分歧检测对抗样本。重塑模块使用自动编码器将对抗样本推向正常流形,使之成为合法样本。实验证明MagNet 对于黑盒/灰盒攻击有较好的防御效果,且不局限于某种对抗攻击,具有相当强的泛化能力。
基于分类子网的防御。Metzen 等[72]通过为目标神经网络分类器的某一层分支添加检测器子网络来识别对抗样本。检测器以分类器的中间表示为输入,利用类似对抗训练的方式动态获得对抗样本以学习原始样本和对抗样本的差异。Pawlicki 等[73]将类似的思想迁移到基于神经网络的NIDS 模型上,作者不再局限于单层神经元激活,而是以NIDS 神经网络模型的全部神经元输出为样本,训练检测器识别对抗样本。实验证明,该方法可实现70%~99%的对抗样本检测召回率。
7 讨论与展望
机器学习技术的迅速发展使其在NIDS 领域得到广泛应用的同时也暴露了一定的安全隐患。针对其对对抗样本的脆弱性问题,安全研究人员展开了一系列攻击防御方法研究。从简单的方法移植到综合考虑NIDS 领域特有约束,攻击和防御方法在相互博弈中不断发展。通过总结分析,本文提出了3 点未来研究方向。
1) 流量空间攻击研究
当前针对流量空间攻击方法的研究仍然相对较少,且在NIDS 领域,只有能够生成对抗流量样本的攻击才能产生实际安全威胁。由于从特征向量到流量样本的映射十分复杂,因此现有的流量空间攻击往往采用直接在原始流量样本上施加扰动的方法来规避逆映射困境。相信就像在计算机视觉领域的对抗攻击是从特征空间攻击逐步发展到问题空间攻击的一样,其在NIDS 领域的发展也将逐渐更加适应真实攻击场景。
2) 对抗防御方法研究
目前针对NIDS 领域的对抗攻击防御研究主要围绕对抗训练和选择更复杂稳健的模型架构展开。但两者都需要较大的额外开销,在NIDS 领域的适用性还有待评估。如何结合恶意流量对抗样本的分布和数据特征,设计开销小、速度快、准确性高且具有一定适应性的对抗样本检测或防御方法也是值得进一步研究的课题。
3) 标准流量数据集构建
一个新颖、全面、真实的数据集是在NIDS 领域开展研究的重要保障。当前研究广泛使用的NSL-KDD、CIC-IDS、CTU-13 等数据集往往无法覆盖日新月异的新型攻击手法和逃避技术,无法有效模拟真实的场景。同时关于构建高对抗性数据集的研究[77-78]也比较罕见,这也进一步导致了当前防御方法的评估莫衷一是的局面。因此如何构建一个标准、良好且具有高对抗性的数据集是一个亟待解决的课题。
8 结束语
在NIDS 这一具有高对抗性的攻防领域,对抗攻击的存在将严重威胁网络和用户安全。本文从攻防2 个视角全面调研了NIDS 领域的对抗攻击和防御方法。首先,本文提出了在NIDS 领域应用对抗攻击特有的约束和挑战。然后,构建多维分类法,结合IDS 场景需求从攻防2 个角度整理对比现有研究成果。最后,总结当前研究现状,并探讨NIDS领域对抗攻击的未来发展方向。