怀亚特·霍夫曼
(美国安全与新兴技术中心)
曾 杰 译
(中国电子科技集团公司第三十研究所,四川 成都 610041)
网络防御能力正在努力跟上更先进的网络进攻能力的发展步伐。人工智能——特别是尖端的机器学习(Machine Learning,ML)方法——已被用来减轻网络防御者的负担。对网络防御者而言,机器学习是一项优势还是问题,将取决于自动化的网络防御系统能否应对愈演愈烈的各类能力。正如美国人工智能国家安全委员会(National Security Commission on Artificial Intelligence,NSCAI)警告称,“在不使用人工智能的情况下,对抗以机器速度运行,并且具有人工智能能力的对手将是一场灾难”。面对成倍增加和升级的网络威胁,创新性的机器学习方法已证明它们对网络安全的价值,但很难保证大规模部署具备机器学习能力的防御系统就一定能抗衡灵活多变的攻击者。为了保障网络安全,系统必须在接连不断的网络攻击压力下可靠地执行机器学习功能。与此同时,机器学习也带来了新的安全挑战。机器学习型系统可依靠数据模式来开发预测模型,这种方法可能非常有效,但也使机器学习型系统容易受到错误和恶意干扰的影响。能够操纵数据输入项的攻击者可能会创建一种欺骗性的数据模式来攻击预测模型,包括美国国家安全界在内的各方也普遍承认机器学习的这一弱点。因此,当务之急就是开发能够防止欺骗性攻击的稳固性机器学习型系统,但各种稳固性措施通常又会削弱机器学习型系统的准确性。
这种在准确性与稳固性之间权衡的过程中带来了一个问题,例如,一套基于机器学习的防病毒系统通过不断动态调整,以抵御不断发展的恶意软件攻击,与此同时,开发人员可以细致地监管该系统,并加强其防范欺骗性攻击的能力,但这样又会妨碍该系统准确检测出新的恶意软件。由此可见,在部署机器学习型系统以应对复杂多变的威胁时,监管方需要不断在不同风险之间进行取舍。
本报告重点关注了基于自动化机器学习的网络防御而出现的挑战,要想预见大规模部署机器学习型系统将如何影响网络进攻和防御,须了解机器学习在技术上的取舍问题及此类系统的局限性。
机器学习型系统能在大量的数据中发现模式,这些模式对于在不确定的情况下进行预测非常有用。在从图像分类到复杂策略博弈的任务中,它们可以达到或超过人类的能力,应用到网络安全方面就能形成检测能力,从而大大提高攻击者的门槛。例如,入侵检测系统可以利用大量网络活动数据来定义正常行为的基线,以帮助网络防御者更快、更准确地发现异常。攻击者不仅需要避免明显的危险信号,还需要在更细微的层面上维持活动的合法表象。恶意软件的检测同样也受益于“能够通过大量数据集来发现更广泛的模式,从而区分恶意代码和良性代码”的系统。网络安全服务通常使用机器学习来帮助分析恶意软件,例如,识别类似的恶意样本集,并将其与已知的恶意软件进行匹配。传统的防病毒系统很难跟上攻击者更新代码的速度,而在理想情况下,启用机器学习型系统将能通过识别更深层次的模式(这些模式具有恶意代码的特征)来检测未被发现的恶意软件。
机器学习不仅具有自动检测的潜力,还具有主动防御攻击的潜力。从理论上讲,机器学习可以通过动态调整来干扰或减轻攻击。被称为“蜜罐”的诱饵数据或诱饵网络早即有之,但机器学习可以使它们适应持续不断的攻击,更有效地引诱攻击者,使他们暴露自己的能力。研究人员正在试验一种系统,可以动态地对网络进行自动重新配置,以阻止攻击者的操作。
防御性应用程序可以消除攻击者长期以来享有的不对称优势,包括攻击者能够仔细规划作战并突袭防御者,一旦进入网络,恶意软件就能在可预测的目标环境下实现自适应,并不断调整能力以突破防御。机器学习型防御系统可以预见未来的攻击并立即做出反应,其能意识到防御者潜在的“主场优势”,并对攻击者采取突然袭击和欺骗手段。
然而,机器学习面临的真正考验是能否应对攻击者不断调整战术的攻击方式(包括针对机器学习模型本身缺陷的攻击)。高水平的攻击者甚至利用机器学习本身发起攻击。例如,攻击者可能利用机器学习功能,研究如何在目标环境中隐藏攻击或伪装与命令和控制服务器之间的通信,以达到欺骗入侵检测系统的目的。因此,机器学习能否为网络防御创造公平的对抗环境,关键取决于它是否有能力抵御系统性的攻击。
即使是最复杂的机器学习型系统,也常常容易受到欺骗。攻击者可以通过将恶意软件伪装成正常软件来规避基于机器学习的恶意软件分析,或者通过模仿正常的用户行为来欺骗入侵检测系统。因此,基于机器学习型防御必须具有抵抗能力,这意味着它们在面对这种欺骗时仍能可靠地执行,与此同时,机器学习应用于网络防御也会面临诸多问题。
机器学习型系统会在数据中寻找对预测有用的模式或统计规律。为了最大限度地提高其预测的准确性,系统将寻找任何有用的模式,不管它们是否会导致错误。例如,一种图像分类器可根据图像中是否有雪来学习如何区分狼和哈士奇。准确分类训练数据集的最有效方法就是在数据集中纳入许多有雪的狼图像和没有雪的哈士奇图像。但是,当遇到更具代表性的训练集或蓄意欺骗时,这种关联性可能会导致系统出错。攻击者可以发现此漏洞,从而创建一个欺骗性输入项,例如,在哈士奇图像中添加像雪一样的图像以混淆识别。在机器学习的研究中充满了这样的“对抗性样例”,研究人员为了改变模型的预测结果而创建欺骗性输入项。越来越多的文献证明这类攻击蔓延到了垃圾邮件过滤器、恶意软件及入侵检测系统等一系列网络安全应用程序。
机器学习型系统易受到写入代码中的错误、软件漏洞等欺骗。更准确地说,机器学习型系统依赖于识别关联性,而不是理解因果关系,但在数据中常常充斥着虚假关联(例如“雪”和“狼”之间的关联),这些关联虽然源于有用的经验法则,但并不总是准确的。事实上,一些研究人员将对抗性示例描述为机器学习的“特性而非漏洞”,因为它们证明了系统已经学会了一种可供预测的模式。即使被攻击者利用的图像可以欺骗机器学习型系统,系统也在做它应该做的事情——根据关联进行预测。
由于某种程度上,基于识别关联性进行预测是机器学习型系统的固有特性,因此,当前还未研究出容易的方法来防止这些漏洞的出现。在实践中,很难看出机器学习型系统何时学会了虚假关联(例如“雪”和“狼”之间的关联),但可能欺骗系统的输入项组合数不胜数,因此也不可能通过测试每一组合来找出漏洞。这些挑战促使人们寻找可靠的方法来抵御“对抗性样例”,但收效甚微。
研究人员找到了各种方法来清除虚假关联,从而产生一个更能抵御攻击的模型。然而,这样做是以牺牲模型的总体准确性为代价的。这似乎是因为前述特性有助于在不确定的情况下进行预测。对于机器学习型系统来说,像区分狼和哈士奇这样的任务是艰巨的。开发者可以专门制作数据让训练系统不要依赖雪作为指标,但如果没有这个指标,系统就很难识别狼和哈士奇。换句话说,这个系统可能不太容易受到欺骗,但在执行主要任务时其效率也较低。
为了稳固性牺牲一些准确性可能是值得的,但在某些情况下,这会造成两难的局面。设想一个与自动驾驶汽车有关的案例,开发人员需要在两套系统之间做出选择,一套是每百万英里(在正常情况下)发生一次事故的系统,另一个是每十万英里发生一次事故但更能抵御网络攻击的系统。后者可能更稳固,因为它避免依赖某些模式,使攻击者更难实施欺骗,但同时也增加了系统在这些条件下出错的风险。鉴于此,如果开发人员评估认为,某一威胁行为体不太可能有高明的手段和充分的动机发动攻击,那么开发人员可能会合理地选择前一套系统;如果在面临严重的恶意攻击威胁时,那么为了提升稳固性而牺牲一些准确性也未尝不可。
但如果模型所要预测的正是对手的反预测行为呢?在这种情况下,在准确性与稳固性之间取舍相当于对不同类型的恶意威胁进行优先级排序。例如,负责检测恶意软件、恶意命令和控制服务器之间的通信的机器学习型系统可能容易受到恶意软件流量攻击,而这些恶意软件流量经过攻击者更改可以规避模型预测。开发人员可以通过对抗性样例来训练系统,使其不受此类攻击的影响,但这实际上可能会使系统在检测未更改的恶意软件流量方面表现得更加糟糕。
最大限度地提高防病毒系统的准确性可能会提高其总体检出率,同时又难免使其更容易受到欺骗性攻击(例如试图将恶意软件伪装成合法文件的攻击)。研究人员成功演示了对高度准确、部署了机器学习功能的防病毒系统进行攻击,同时对该防病毒系统进行了逆向工程研究,结果发现该模型已经学会了将某些字符序列与良性文件牢牢关联到一起的强烈关联。他们只需将这些序列附加到恶意文件中,就可以欺骗系统将其归类为良性文件。为消除此类盲点而精心设计的系统可能不易受到此类欺骗,但通常也更容易发生漏报(系统未检出某一恶意软件)或误报(系统将良性文件错误标记为恶意文件)。
即使在有利的条件下,也很难在不同的系统风险之间做出足够平衡的取舍。面对不断演变的网络威胁,这将成为一个特别棘手的问题,原因如下文所述。
第一,攻击者可以不断地试探防御,以搜索机器学习型系统中的漏洞。如果进行多次尝试,他们很可能利用漏洞成功地避开高准确度的机器学习型系统。此外,网络安全领域有许多攻击者会相互观察和学习彼此的成败经验。由于针对某一机器学习模型的欺骗性输入项通常也能欺骗为执行同一任务而训练的其他模型,因此,攻击者可能对一个机器学习型系统进行反复攻击,并从中吸取有用的经验教训,进而研究出能欺骗其他系统的手段。换句话说,防御者不能仅仅因为攻击者没有试探过他们的机器学习型系统,就认为攻击者无法对其进行欺骗和攻击。
第二,攻击者塑造了用于训练系统以检测恶意行为的数据。攻击者可以通过输入数据来“毒害”机器学习型系统,这些数据将导致机器学习型系统学习某种关联,而这种关联会使该系统在日后难以抵御相应的攻击。例如,攻击者可能试图通过使机器学习型系统习惯于网络中存在攻击者,以此来误导入侵检测系统。在部署中不断学习的机器学习型系统必须既能适应对手的行为,又能识破对手的欺骗。
第三,不断变化的进攻能力等因素使得环境变得更加复杂。就像识别狼和哈士奇一样,用于描述正常网络行为或常见恶意软件的数据很快就会过时。为应对持续威胁而部署的大规模网络防御系统可能需要在部署时进行不断学习和适应,这意味着要通过不断地接受新的培训数据来动态更新模型,达到应对持续威胁的效果,同时攻击者也在试图智取此类系统或积极扰乱其适应过程。
机器学习将是网络防御者应对网络攻击的重要武器之一。但是,安全地部署机器学习型系统需要网络防御者持续管理此类系统的动态平衡行为。相关的政策和战略应帮助网络防御者有理有据地对机器学习的特性进行取舍。政府希望塑造新兴的机器学习型网络安全生态系统的发展轨迹,从而改善网络防御者的处境,对此,本节提出以下3点建议以供参考。
一般来说,机器学习型应用程序的开发是以最有效的方式、最大限度地提高准确性为目标的。为实现网络安全,机器学习型系统不仅需要做出准确的预测,还需要在不断变化的环境条件和对抗性干扰的持续压力下进行可靠的预测。要想克服这些挑战,就要创造一种适应于网络安全背景下的“动态—对抗性学习模式”。在设计、测试到部署和更新的过程中,始终将安全性视为“循环往复的过程”的整体方法,而稳固性和准确性均是其优先考虑的因素。
将这一方法付诸实施需要融合机器学习安全和网络安全来进行研究,主要体现在3个研究领域。一是通过为特定的网络安全应用程序开发现实的威胁模型来理解威胁。防御者需要评估相对威胁,例如,一些攻击者能够直接试探已部署的机器学习型系统,与之相对的是另一些攻击者可能只能间接了解上述模型。二是确定关键的稳固性,并开发度量和验证它们的方法。具体来说,开发人员需要通过各种技术来证明“全局”的稳固性不会因部署过程中的模型学习变化而失效。一位专家将机器学习的安全现状与20世纪20年代的密码学进行了比较:不仅最安全的系统很容易被打破,研究人员甚至缺乏正确评估安全性的指标。三是开发更广泛的系统级防御,以检测或防止可能破坏模型的攻击。这些措施包括检测试图试探系统的行为,并防止系统向试图对其进行逆向工程研究的攻击者“泄露”信息。整体防御方法既需要减少模型中的漏洞,又需要采取措施防止攻击者发现和利用仍然存在的漏洞。
网络防御将受益于对机器学习创新方法的进一步研究,这些创新方法在系统的设计和实施中融入了多样性和冗余性。例如,网络安全供应商F-Secure的“BlackfinProject”寻求开发多个机器学习型智能体,对网络环境的不同方面进行建模,并通过协同工作以识别网络入侵。通过把依赖于不同模式或不同感知方式的多个模型组合在一起,所产生的系统可能比检视相同数据的一堆模型更不易受到欺骗。
即使有了更好的工具来提高稳固性,机器学习型系统也不会万无一失。如上所述,供应商通常依赖多种工具和技术,包括基于机器学习的工具和技术。但是,随着对机器学习型系统的日益依赖,决策者必须确立各种风险容忍阈值,以指导在何处如何依赖机器学习型系统,以及何时使用非机器学习工具和保障措施以作为补充。
网络防御者对机器学习的依赖将大大吸引对手(尤其是试图利用机器学习展开网络行动的国家行为体)设法扰乱机器学习的发展过程。即使只知道目标模型的参数、体系结构或训练数据和方法的一部分,也将会降低攻击机器学习型系统的难度。
在技术层面上,网络攻击者将设法获取培训数据集,渗透进商业项目或开源项目,或者简单地通过购买产品进行逆向工程研究,以此寻找机会获取有关机器学习型系统内部工作方式的情报。他们甚至可能在模型中插入后门,而这些后门会随模型进入部署的防御系统中,从而破坏机器学习型系统。
在战术层面上,防御的成功与否将取决于政府和私营部门之间的协调,更具体地说,将取决于能否通过这种协调,在部署防御系统之前就预测和挫败旨在那些极具破坏性的攻击行动。供应商必须仔细检查和保护对其服务完整性至关重要的数据和组件。政府机构应探讨如何努力确保供应链的安全,并防止网络攻击者获取包括机器学习能力在内的敏感技术和数据。
人工智能不是网络安全的灵丹妙药,但却可能成为网络安全中不可或缺的一环。现有的机器学习方法不是为保障安全性而设计的,更不是为一个以不断变化和欺骗为特征的环境而设计的。机器学习在网络安全方面发挥着日益重要的作用,同时也提出了一个严重的问题:当前在机器学习的设计和实现方面所做的选择,或多或少会影响网络防御者所处的局面。
要想赢得这一挑战,就得开展协同合作,以便使机器学习安全领域和网络安全领域的各类研究及从业人员能够跨越彼此间的鸿沟。与此同时,决策者需要考虑如何引导开发和使用机器学习功能的利益相关者不要仅着眼于效率,而是优先考虑安全问题。若能积极主动地管理大规模的机器学习型网络防御问题,就能为网络防御者开创更好的局面。