Modeling Realistic Adversarial Attacks against Network Intrusion Detection Systems
针对ML-NIDS的真实对抗攻击建模
本文关注最关键且真实的问题!
引:机器学习算法正在被大量引入以帮助网络安全领域创造新的防御机会,然而它也带来了许多新型威胁。许多研究表明ML容易受到对抗攻击,而现有多数研究假设威胁模型已知检测器全部知识或者可以与目标系统*地交互,这并不现实。本文识别并建模了攻击者可进行成功的对抗攻击所需的真实能力与环境。本文的贡献在于通过让网络防御者关注更关键且真实的问题以提升防御系统能力,或是让研究人员基于真实威胁模型设计新型对抗攻击。
一、介绍
ML正在被用于多个领域,然而对抗攻击能够利用其内在弱点降低其预测能力,常见在CV/NLP领域。然而在网络安全领域,这些研究很少出现,原因是该场景会受到对手内在影响(其他领域较少出现)。当前比较热门的研究是恶意软件检测和垃圾邮件过滤。当然,我们更多的关注于NIDS~
而本篇文章出现的动机是大部分有关对抗攻击的文章并未讨论所提出的攻击方法的真实水平,仅仅是做出假设并分析在该假设下的种种影响,并未/未充分考虑到其假设的可行性。例如,一些假设攻击者已知目标系统的所有知识,另一些假设攻击者可以进行无数次交互但并不会被注意到。尽管研究对抗攻击的有效性对于提升检测系统的健壮性很重要,但我们也应该考虑到更真实的问题。不然的话,当更关键的问题出现时,防御者也可能将花费更多的时间在错误攻击或不现实的攻击上。大量的对抗攻击研究也使得网络安全防御者认为ML-NIDSs并不可靠,尽管可能并不是这样的。
本文通过识别必要的攻击者能力和攻击场景,分析了针对ML-NIDS的对抗攻击的真实可行性,给出了目标系统的五要素。通过介绍power的概念,即攻击者在五种要素上知识和能力的建模,给出成功攻击的真实环境。本文补充了对真实ML-NIDS运行环境的可行性和约束的深入研究,可用于评估任意针对ML-NIDS的对抗攻击。同时,我们也评估了当前一些研究的可行性,分析了4个重要用例的细节。
可以说,很少的研究能被用来代表真实网络防御环境,因此,学术研究和真实工业环境之间还存在较大差异,这也是我们需要努力弥补的方向。
那么,通过本文,对抗机器学习研究者可以通过建模真实环境构建原始对抗攻击,安全专家可以通过考虑更小且更现实的可行攻击场景子集来加强防御系统。
二、背景(一些简单的知识复习~)
1.ML-NIDS
在网络安全领域,恶意事件检查是一个很突出的问题。巨大的数据量使得人工检查变得不可能。本文关注于网络流层面的网络入侵。NIDS的类型很多,其不同之处在于:①分析的数据类型 ②执行的检测方法
(1)分析的数据类型不同:①检查payload,缺点是若为加密信息,则需要额外大量的计算资源。 ②检查元数据(端到端的序列),优点为易存储和分析,且无须关注加密问题。
(2)根据检测方法不同: ①基于签名 ②基于ML
本文关注ML-NIDS,其优点为可检测到未知的攻击,无需人工干预,简化了资源集中管理,学习到新攻击变体。可以使用payload/netflow,基于有监督/无监督学习,且越来越多的使用深度神经网络。尽管其性能依赖于使用的算法,但优势仍然是存疑的。下图给出一个部署NIDS的典型例子,以及NIDS的检测流程。
ML-NIDS使用者有多种使用方式:①利用开源软件自行维护 ②使用第三方产品。 前者可以获得MI-NIDS的所有组件(模型内部设置参数、特征集、训练数据集等),并根据需要进行相应的新修改和更新;后者的模型对于使用者来说是黑盒模型,仅已知其少数/不知其信息,部分可以增加一些检测规则。
ML-NIDS的流行,使得攻击者将注意力转向ML-NIDS组件的弱点。本文关注于这种对抗攻击,且不对任何特定ML算法/所使用的数据类型作出假设。
2.针对ML的对抗攻击
对抗攻击即向某些数据添加轻微扰动,以达到愚弄ML模型的目的,使得模型输出有利于攻击者。这些扰动对于人类观察者来说是不易被发现的,对于网络安全领域来说,对流量的操纵在这一点上是较难解释的,常见于计算机视觉领域啦~。这类攻击可能在一些场景中适用,但另一些场景中却无效。
(1)数据投毒:发生在训练阶段的对抗攻击称之为投毒,通过修改某些训练数据,或向训练数据中增加精心设计的样本,达到欺骗目的。
(2)发生在推理阶段的更为常见,利用决策边界的敏感性进行性攻击,较常见的为逃逸攻击。
根据威胁模型分类(这里已经很熟悉了,不多做解释了嘿):
(1)白盒
(2)黑盒,可利用的信息有:①反复交互,不断修改测试样本以确定模型决策边界 ②使用替代模型,训练一个相似度较大的模型
(3)灰盒,限制了可利用信息
本质上,任何ML算法都有其对抗性的弱点,因此,本文并不关注特定的ML方法,分析和结论适用于任何ML-NIDS。
三、相关工作
本文产生的动机在于:① 网络安全防御对ML和AI的依赖的增长,以及②相应的新对抗攻击威胁的产生。目前如何防御这种威胁尚缺少全面的指导方针!
目前大多数的研究考虑的攻击会使得目标模型的性能显著下降,这实际上高估了真实环境中对抗攻击的威力,本文尝试给出前人实施的对抗攻击是否适用于真实的网络环境。
与前人工作对比:
1.开创性工作发生在针对botnet的对抗攻击中,但并未考虑ML-NIDS。
2.一些未考虑NIDS的内在机制问题
3.一些未深入研究网络监测的上下文特征
4.一些未考虑更现实的层面,仅从原始数据方向,分析ML弱点,但未增加现实约束
5.一些从博弈论角度分析
本文面向ML研究者和网络安全专家,评估在真实场景(有受限制的攻击者)下的防御系统。也许一些人意识到了这个问题,但并未作为首要任务,因为当前尚无在真实环境下的有效防御机制,因此,本文希望指出复现真实对抗环境的主要特征,用于设计现实中更实用的对抗攻击或是评估防御策略。
四、建模真实对抗攻击
本文提出了一个ML-NIDS的经典应用场景假设:攻击者已经在被监控的网络边界的一个/多个设备上建立节点,并打算通过逃逸攻击保持不被发现的状态来维持(扩展)其访问。
下面给出本文对于“power”的定义,它包含了五个要素,涉及到攻击者对于目标检测系统的控制程度。
1. training data:
(1)可读:可用于重演training阶段,进行模型窃取
(2)可写:可用于投毒
权限的获得取决于组织使用了自组的/第三方NIDS。对于前者,理论上攻击者可以通过识别NIDS设备承载的数据检索训练数据,但NIDS可以采取限制性访问策略或者隔离在专用网段加以保护;对于后者,攻击者实际上难以访问NIDS供应商的数据集。但如果设法控制了这些数据集,那么攻击者可以攻击采用该供应商解决方案的任何NIDS使用者。因此,基于ML的网络安全解决方案的提供者必须尽可能保护其资产。
另一种情况是使用新数据进行再训练,该情况下攻击者可以生成新恶意流量以影响检测,这需要一定的写权限。这种攻击策略对于没有训练数据直接读权限的攻击者是不可行的,且攻击者也无法保证产生的样本会直接用于NIDS的在训练过程(除非他们去检查训练数据集的组成,当然这样的方式也不现实!)
结论:对于训练数据的读/写权限都是不现实的,当且仅当NIDS以及训练数据集是完全由目标组织管理时,可以获得这些权利。
2.feature set:
与对训练数据的权限相似,对特征集合的权限同样有与训练模型交互的问题。同时,特征集仅在推理阶段与原始样本进行对应。
然而,攻击者可以利用专业知识推断检测器使用了那些特征进行分析。尽管每一个NIDS都是独一无二的,但都是使用了原始网络包或是派生的网络元数据,应用的特征也会相似/重叠。因此,有理由相信攻击者可以利用这些信息推断出有较高可能性属于真实检测器所使用的特征集合,并围绕这些关键特征产生对抗样本。
这里需要提及的是,建立power on training data和power on feature set的关系也相当关键。前者并不是后者的必要条件,虽然操纵training data会改变feature set,但本文对于power on feature的定义为是否已知ML-NIDS所使用的特征集。这意味着,虽然攻击者对于训练数据有直接/间接写权限,但他们并不知道ML检测器所真实使用的特征。
而当攻击者有训练数据的读权限,且特征是可区分的时,情况变得不同。这种情况下,攻击者可以获得特征集的权限和一些知识。然而,模型使用的真实特征也有可能是在推理阶段重新计算过的。例如,组织可能以pcap包的形式存储训练数据,但检测器将以网络流的形式训练/测试。因此,此时攻击者即使拥有训练数据权限,他们也不会完全了解到ML-NIDS所使用的特征集。
结论:假设已知特征集的权限是现实的,但了解到全部是有挑战性的,不太可能完全观察到特征集的组成。
3.detection model:
(1)白盒:确定ML方法的内部设置、训练阶段完成后的决策边界。
该权限代表着ML-NIDS的核心组件,权力的获得需要有较高管理权限。
一个攻击者可以通过观察且横向扫描以获得网络拓扑。但即使在这种不可能的情况下,攻击者也必须获得底层源代码。如果NIDS是商业的,这些代码是不可见的;如果是自组的,这些代码也将分布在不同的机器上。
同时,也排除了攻击者直接修改ML-NIDS的可能性,这种情况下防御系统将被直接推翻,任由攻击者处置。此时,一个理性的攻击者已经完全掌控了NIDS,可以使用任何方式达到其目的,而无需这种微妙的攻击方式。
结论:白盒攻击是不现实的。
4.oracle:
一种逆向工程,通过提交输入以获得相应输出信息。这种权力的使用会遇到两个障碍:
(1)不触发其他检测机制:NIDS通常有多重防护,因此攻击者应考虑设计最小化查询策略,避免较多的查询交互,以一种低且慢速的方式进行,尽管这可能增加攻击的长度和代价。
(2)根据反馈提取有效信息:这种权限可以获得的有效信息依赖于防御者的反应(并不可靠),检测到的异常情况可能仅通过控制台通知安全管理人员,此时攻击者需要等待人工操作。这里给出几个可以获得有效反馈的情况:
① NIDS集成到反应性防御机制中:自动停止检测到的恶意流量
② 攻击者获取到对日志/控制台的访问权限(这不可能)
③ 组织使用的是商业NIDS。该情况下攻击者可以获得相同的NIDS并将其放入完全可控的环境。虽然无法知道系统的配置,但可以拥有完全访问权限(这也不可能,需要有额外的情报,且增加了进攻成本,需要重现相似环境,这需要攻击者很强并且有高度的攻击动机)
此外,能够不被检查到但是无法确定输入输出关联或是能够确定关联但是易被检测到,这些oracle都是无效的。
结论:获得的反馈信息可能受限,攻击者仅在使用商业NIDS/NIDS本身受损时有oracle权限。
5.manipulation depth:
该权限涉及数据操纵,包括原始流量层和特征表示层,即问题空间和特征空间的差异问题。前者需要整个恶意过程的复现,是真实场景更现实的展示,后者则是其高层抽象表示。执行一个真实的特征空间攻击需要操纵原始流量数据到其特征表示的转换,然而这需要对ML组件有完全的power。
6.总结一下~
下图给出了对抗攻击在真实环境中实现的可行性。
最真实的攻击:攻击者操纵真实网络流量(问题空间而非特征空间),仅已知一部分特征信息,没有NIDS的反馈,无法访问训练数据。这无需高技能,所需代价小。
利用oracle的可行性:只有当目标利用一个商业的NIDS(攻击者也可以购买该NIDS来*测试)时才可行。即使在这种情况下,可行性也可能受到目标中非标准配置的限制,攻击者可能不知道这些配置并在测试环境中复制它们。
不现实的攻击:有对训练数据、目标NIDS、特性集的权限。因为这些只能由已经设法破坏目标网络系统的攻击者获得,这适用于需要使用检测器作为oracle的攻击。原则上,攻击者将恶意流量样本提交给NIDS也可以得到类似的结果。然而,只能获得部分信息,且增加了攻击活动的成本和持续时间,也增加了触发其他警报的可能性。
最不现实的攻击:完全控制训练数据或商业NIDS的模型,这需要攻击者能够损害商业防御解决方案的供应商;即使攻击者有对商业NIDS的检测模型的权力,也是非常不现实的,因为还需要攻击者能任意修改商业NIDS;最后,只能在特征空间执行的攻击属于不现实的,因为攻击者需要破坏从原始流量中提取特征的检测器组件。
这里总结一个重要的观察结果:只有当攻击者对训练数据有能力(以写访问的形式)时,才能在训练阶段进行投毒攻击。否则,攻击者将被限制在推理阶段进行攻击。投毒攻击可能非常强大,但可以通过在训练集中否定攻击者的力量来避免。另一方面,在推理阶段为攻击设计威胁模型更加复杂,因为攻击者可以利用更广泛的能力。因此,推理时的攻击可能破坏性较小,但更难预防。
五、现有攻击的真实性评估
本文提供了评估准则,用以评估现有攻击的成熟度和现实性。本文认为,扰动需要确保原始样本的恶意性逻辑,制作全新的样本是没有意义的,这违背了对抗攻击的目的。这在问题空间可进行验证,在特征空间则需要额外的验证。此外,还需要检查两空间的相互依赖关系,同时保证产生的样本可以真实存在(如TCP报文不超过64KBytes、一些网络流收集器还限制最大持续时间等)。
此表还包括:是否有恶意性和完整性验证、推理阶段(对抗)/训练阶段(投毒)、使用的数据集(评估对多个数据集的对抗性攻击会增加实验的影响和价值,此外,通过使用最近的数据,能够反映在现代防御情景中的有效性。)
本文们还观察到,只有少数研究进行了投毒攻击,而大多数方案集中在推理时的逃逸攻击。这是一个趋势,由于攻击者很难获得训练数据上的一些能力,投毒攻击很难在真实场景中执行。此外,假设ML-NIDS可以用作回答无限数量查询的oracle的情况,只有在攻击者能够获得检测器的完美副本时才有可能。然而,只有一些最近的论文研究考虑了攻击者使用有限数量的查询,使得攻击更加现实。本文希望通过这些总结为未来的研究增加新的可能性。
1. 最现实:[4] 推理阶段的逃逸攻击,对目标系统有非常少的权力(无法访问训练集、无法与检测器交互[无法检测内部参数、也无法作为oracle交互]),仅已知检测机制使用的一些特征。通过修改问题空间的原始网络数据流,引起特征扰动使得目标错误分类。
(1)没有假设攻击者可以访问目标系统中受保护的设备(如检测器、保存训练数据的主机),仅已知分类机制所采用的一部分特征子集。
(2)攻击所需操作对于任意一个在网络中已建立节点的攻击者来说是容易的。
(3)目标系统建立在较新的数据集上,能够代表现代网络环境。
2. 现实但可行性较低:[99] 推理阶段的botnet检测逃逸。采用自主深度强化学习逃逸检测,假设攻击者可以获得例子的反馈 (目标系统作为oracle),但未限制访问次数,已知检测可能使用的特征。但这种攻击没有训练数据权限,也不了解NIDS使用的模型。对抗样本在问题空间产生,通过向原始网络数据流的载荷添加冗余扰动。实验结果表明仅需向目标系统进行有限次数的访问即可。现实但可行性较低的原因是需要有oracle权限,而实验需要的几十个查询是可接受的,不太可能诱使安全人员手动调查并对其进行分类。
(如4.4节所述,从NIDS接收直接反馈要求攻击者:(i)获得相同的NIDS并在专用环境中使用[如果目标NIDS是由第三方供应商的];(ii) NIDS集成IPS,可以利用该IPS来确定哪些通信被阻断。对于前者,攻击者需要投入资源来获取和部署NIDS,这是可行的,但增加了攻击成本;后者中攻击者必须确保所执行的查询不会触发过多的警报)
3. 最不现实:[54] 投毒攻击,假设攻击者有训练数据权限,已知整个训练过程的数据组成,有完全的读权限和部分写权限(无法标签翻转或是修改已有数据,但是可以注入新数据),已知检测器使用的特征。这对于攻击者来说是艰巨的任务,即使已知上述知识,有可能检测器使用的特征集也存在着一些差别。此外,该攻击使用了过时的数据集。
4. [55] 这是一个很有趣的攻击,针对嵌入到谷歌Chrome浏览器的钓鱼检测器。由于目标系统不是一个NIDS,所以表中没有包含这项工作。但其环境对今后的研究具有启发意义。该攻击所考虑的场景涉及一个ML检测系统,该系统部署在任何用户都可以获得的流行浏览器上。检测模型嵌入到应用程序中,因此攻击者不可能影响训练阶段。此外,底层的应用程序代码是不可读的,因此不可能确定使用哪些特征来执行分析,也无法获得关于检测模型的任何信息。
然而,应用程序的可访问性,以及它的嵌入式检测系统,允许用户拥有完整的oracle能力,有无限数量的查询和直接访问输入/输出对的反馈。也就是说,用户可以创建一个Web页面,然后使用浏览器访问该页面,如果浏览器警告用户,那么这意味着该页面被认为是恶意的;否则,页面被认为是良性的。这使得攻击者可以创建大量页面,对用于执行检测的分类器进行逆向工程,以获得关于检测系统的重要信息,如使用的ML算法,参数,最重要的分类特征。攻击者将能够确定Web页面是否恶意的标准,并逃逸类似系统的检测。
该攻击是一个真实用例的例子,在这个用例中,攻击者对训练数据、特性集和检测模型没有权力,仅在问题空间操作且有oracle权限。该漏洞表现为在客户端级别部署检测系统,如果ML模型部署在专用的、受控制的远程服务器上,类似的攻击将变得困难,因为实际环境中很难获得对NIDS完整的oracle能力。
六、总结
最后,对抗攻击是一种可以影响任何依赖AI的网络防御可靠性的威胁。许多研究已经展示了ML-NIDS在面对对抗扰动时的较差性能表现,但很少有人考虑真实情况中的可行性。实际上很多攻击在现实中是并不可行的。本文通过对威胁模型建模分析,讨论了在实际情况下攻击者可控的几个要素,可用于现有攻击的评估,也可为将来的研究建立一定的评估和分析基础。
As a reader --> Modeling Realistic Adversarial Attacks against Network Intrusion Detection Systems