基于AI的恶意样本分析(2)

顶会论文:Dos and Don’ts of Machine Learning in Computer Security,一篇USENIX2022 关于机器学习用于计算机安全场景的十大缺陷文章阅读笔记
原文链接
Dos and Don’ts of Machine Learning in Computer Security
计算机安全中机器学习的问题

摘要

随着计算系统处理能力的不断增强和大量数据集可用性的不断增加,机器学习算法在许多不同领域带来了重大突破。这一发展影响了计算机安全,在基于学习的安全系统上产生了一系列的工作,如恶意软件检测、漏洞发现和二进制代码分析。尽管在安全方面的机器学习具有巨大的潜力,但它很容易出现微妙的缺陷,从而损害其性能,并使基于学习的系统可能不适合执行安全任务和实际部署。

在这篇论文中,我们用批判的眼光来看待这个问题。首先,我们确定了基于学习的安全系统的设计、实现和评估中的常见缺陷。我们对过去10年里来自顶级安全会议的30篇论文进行了研究,证实了这些陷阱在当前的安全文献中普遍存在。在实证分析中,我们进一步证明了个人缺陷如何导致不切实际的性能和解释,阻碍了对当前安全问题的理解。作为一种补救措施,我们提出了可采取行动的建议,以支持研究人员尽可能避免或减轻陷阱。此外,我们还发现了将机器学习应用于安全领域时存在的开放问题,并为进一步的研究提供了方向。

1、介绍

没有一天不阅读机器学习成功的故事。对专门的计算资源和大型数据集的广泛访问,以及深度学习的新概念和架构,为机器学习在一些领域的突破铺平了道路,如自然语言的翻译和图像内容的识别。这个发展自然影响安全研究:虽然主要局限于特定的应用程序在过去,机器学习现在已经成为一个关键推动研究和解决安全相关问题在几个应用领域,包括入侵检测,恶意软件分析,漏洞发现和二进制代码分析。

机器学习,然而,没有透视能力,需要推理的统计属性的数据在一个相当微妙的工作流程:不正确的假设和实验偏见可能会怀疑这个过程在某种程度上,它变得不清楚我们是否可以信任科学发现使用学习算法[56]。试图识别特定安全领域的这些挑战和限制,如 络入侵检测,开始于20年前的[11,119,126],最近扩展到其他领域,如恶意软件分析和 站指纹[3,72,104,112]。然而,与这一工作正交的是,我们认为存在与机器学习相关的通用缺陷,影响所有安全领域,迄今为止很少受到关注。

这些陷阱可能会导致过度乐观的结果,更糟糕的是,会影响整个机器学习工作流程,削弱假设、结论和经验教训。因此,一种错误的成就感被认为阻碍了学术界和工业界对研究进步的采用。一个健全的科学方法是支持直觉和得出结论的基础。我们认为,这种需求在安全方面尤其重要,在安全方面,流程经常被积极旨在绕过分析和破坏系统的对手破坏。

综上所述,论文做出了以下贡献:

  • 陷阱识别。我们确定了安全方面机器学习的十大缺陷,并提出了可行的建议,以支持研究人员在可能的情况下避免陷阱。此外,我们还确定了无法轻易缓解的开放性问题,需要进一步的研究努力(2)。
  • 影响分析。在四个不同的安全领域中,我们通过实验分析了这些缺陷引入实验偏差的程度,以及我们如何通过应用所提出的建议来有效地克服这些问题(4)。

备注。论文工作不应该被解释为一个手指指向的练习。相反,这是一种反思性的努力,显示了微妙的缺陷如何对安全研究的进展产生负面影响,以及我们作为一个 区如何充分减轻它们。

P6-不适当的基线。评估没有或有有限的基线方法。因此,不可能证明对最先进的技术和其他安全机制的改进。

描述。 为了展示一种新的方法在多大程度上提高了技术水平,将其与以前提出的方法进行比较是至关重要的。在选择基线时,重要的是要记住,在一般[136]中没有优于所有其他方法的通用学习算法。因此,仅提供所提出的方法的结果或与几乎相同的学习模型进行比较,并不能提供足够的背景来评估其影响。
安全影响。 一种过于复杂的学习方法增加了过拟合的机会,也增加了运行时开销、攻击面以及部署的时间和成本。为了证明机器学习技术与传统方法相比提供了显著的改进,因此,并排比较这些系统是必要的。

建议。 在整个评估过程中,也应该考虑简单的模型,而不是只关注复杂的模型来进行比较。这些方法更容易解释,计算要求较低,并且在实践中已被证明是有效的和可扩展的。在4中,我们演示了如何使用理解良好的、简单的模型作为基线来暴露不必要的复杂学习模型。类似地,我们展示了自动机器学习(AutoML)框架[例如,48,70]可以帮助找到适当的基线。虽然这些自动化的方法肯定不能取代有经验丰富的数据分析人员,但它们可以用来设置所提议的方法应该针对的较低的标准。最后,检查非学习方法是否也适用于应用程序场景是至关重要的。例如,对于入侵和恶意软件的检测,存在着多种使用其他检测策略的方法[例如,45,102,111]。

P7-不适当的性能措施。所选择的性能度量没有考虑到应用程序场景的约束条件,例如数据不平衡或需要保持较低的假阳性率。

描述。 有广泛的性能度量可用,但并不是所有的都适用于安全方面。例如,在评估一个检测系统时,通常只 告一个单一的性能值是不够的,例如准确性,因为真阳性和假阳性的决策是不可观察到的。然而,甚至更先进的测量方法,如ROC曲线,可能会掩盖一些应用程序设置中的实验结果。图2显示了一个不平衡的数据集(类比率为1:100)上的ROC曲线和精度-召回率曲线。仅考虑到ROC曲线,性能看起来很好,但低精度显示了分类器的真实性能,这对许多安全应用程序来说是不切实际的。
此外,各种与安全相关的问题处理两个以上的类,需要多类度量。这个设置可能会引入进一步微妙的陷阱。常见的策略,如宏观平均或微观平均被认为高估和低估小班[51]。

安全影响。 不适当的性能措施是安全研究中一个长期存在的问题,特别是在检测任务中。例如,虽然真阳性和假阳性提供了系统性能的更详细的图像,但当攻击的发生率较低时,它们也可以掩盖实际的精度。

建议。 机器学习中性能度量的选择具有高度的应用特殊性。因此,我们不提供一般的准则。相反,我们建议考虑基于学习的系统的实际部署,并识别帮助从业者评估其性能的措施。请注意,这些措施通常与标准指标不同,如准确性或错误,因为它们与系统的日常操作更加一致。为了给读者一个直觉,在4.1中,我们展示了安卓恶意软件检测器的不同性能度量如何导致对其性能的矛盾解释。

P8-基本率谬误。在解释导致性能高估的性能度量时,忽略了一个大的类不平衡。

描述。 如果不考虑负类的基本率,那么类的不平衡很容易导致对性能的误解。如果这类人占主导地位,即使是非常低的假阳性率也会导致惊人的高假阳性率。注意与之前的陷阱的不同:P7指的是对性能的不恰当描述,而基本率谬误是关于对结果的误导性解释。这种特殊情况在实践中很容易被忽视(见3)。考虑图2中的示例,其中99%的真阳性可能是1%的假阳性。然而,如果我们考虑1:100的类比率,这实际上相当于每99个真阳性的100个假阳性。

安全影响。 基本率谬误与各种安全问题有关,如入侵检测和 站指纹识别[例如,11,72,100]。因此,现实地量化攻击者构成的安全和隐私威胁具有挑战性。同样,安装恶意软件的概率通常比恶意软件检测[104]实验中考虑的要低得多。

建议。 安全方面的几个问题围绕着检测罕见事件,如威胁和攻击。对于这些问题,我们提倡使用精度和查全率以及相关的措施,如精度-查全率曲线。与其他度量相比,这些功能解释了类的不平衡,因此类似于关注于少数类[38,118]的检测任务的可靠性能指标。然而,请注意的是,如果少数群体的流行率被夸大了,例如,由于抽样偏差[104],精度和召回率可能会产生误导。在这些情况下,其他措施,如马修斯相关系数(MCC)更适合评估分类器的性能[29](见4)。此外,ROC曲线及其AUC值是比较检测和分类方法的有用指标。为了更多关注实际的约束,我们建议只考虑曲线到可处理的假阳性率,并计算有界的AUC值。最后,我们还建议讨论与阴性类的基本率相关的假阳性,这使读者能够了解由假阳性率所引起的工作量

2.4部署和操作

在一个典型的机器学习工作流的最后阶段,所开发的系统被部署到实践中解决潜在的安全问题。

P9-仅实验室评估。一个基于学习的系统仅在实验室环境中进行评估,而没有讨论其实际的局限性

描述。 正如在所有实证学科中一样,通常在一定的假设下进行实验来证明方法的有效性。虽然进行受控实验是一种检查方法具体方面的合法方法,但它应该在现实的环境中进行评估,以透明地评估其能力,并展示将促进进一步研究的开放挑战。

安全影响。 许多基于学习的安全系统仅在实验室环境中进行评估,夸大了它们的实际影响。一个常见的例子是检测方法仅在多样性有限的封闭世界环境中进行评估,而不考虑非平稳性[15,71]。例如,大量的 站指纹攻击只在跨越有限时间周期[72]的封闭世界设置中进行评估。类似地,一些基于学习的恶意软件检测系统在现实设置下也没有得到充分的检查[见5,104]。

建议。 必须远离实验室的设置,尽可能准确地接近真实世界的设置。例如,应该考虑数据的时间和空间关系,以考虑在野外遇到的典型动态[见104]。类似地,运行时和存储约束应该在实际条件下进行分析[见15,112,130]。理想情况下,提议的系统应该发现在实验室环境中无法观察到的问题,比如现实世界 络流量的多样性[见119]——尽管由于道德和隐私的限制,这并不总是可能的。

P10-不适当的威胁模型。机器学习的安全性没有被考虑在内,这使系统暴露在各种攻击中,如中毒和逃避攻击。

描述。 基于学习的安全系统在敌对的环境中运行,在设计这些系统时应该考虑到这一点。先前在对抗性学习方面的工作已经揭示出,在工作流程的各个阶段,机器学习本身都引入了一个相当大的攻击表面[见18,101]。它们广泛的攻击表面使这些算法容易受到各种类型的攻击,如对抗性的预处理、毒害和逃避[例如,19、20、25、105、108]。
安全影响。 在威胁模型和评估中包括敌对的影响通常是至关重要的,因为容易受到攻击的系统不能保证输出可靠和有意义的结果。因此,除了传统的安全问题之外,还必须考虑与机器学习相关的攻击。例如,攻击者可能更容易逃避仅依赖于少数特性的模型,而不是考虑到安全考虑[40]的适当正规化模型,尽管也应该考虑特定于领域的含义[105]。此外,机器学习工作流程中的语义差距可能会为攻击造成盲点。例如,不精确的解析和特征提取可能使对手能够隐藏恶意内容[131]。

建议。 在大多数使用基于学习的系统的安全领域中,我们在一个敌对的环境中操作。因此,应该精确地定义威胁模型,并对其进行系统评估。在大多数情况下,有必要假设一个自适应的对手,专门针对拟议的系统,并将搜索和利用弱点来逃避或操纵。同样,考虑机器学习工作流程的所有阶段并调查可能存在的漏洞也是至关重要的[见18,26,39,101]。对于此分析,我们建议在可能的情况下集中关注白盒攻击,遵循科克霍夫的[73]原则和安全最佳实践。最后,我们要强调,对对抗性方面的评估不是安全研究的附加部分,而是安全研究的强制性组成部分。

3、流行率分析

一旦我们了解了基于学习的安全系统所面临的缺陷,就有必要评估它们的流行程度,并调查它们对科学进步的影响。为此,我们对过去十年来在ACM中国化学会、IEEES&P、USENIX安全和NDSS上发表的30篇论文进行了研究,这是我们 区中安全相关研究的四大会议。我们选择这些论文作为我们研究的代表性例子,因为它们解决了大量的安全主题,并成功地将机器学习应用于相应的研究问题。

请注意,这种抽样偏差并不局限于AndroZoo。我们在DREBIN数据集[9]中发现了类似的抽样偏差,该数据集通常用于评估基于学习的安卓恶意软件检测方法的性能[例如,9,58,146]。

实验设置。为了更好地理解这一发现,我们使用两个数据集进行了实验:对于第一个数据集(D1),我们将来自谷歌play的10000个良性应用与来自中国市场的1000个(安智和中国应用)的1000个恶意应用合并。然后,我们使用相同的10000个良性应用程序创建第二个数据集(D2),但将它们与谷歌播放的1000个恶意软件样本相结合。所有的恶意应用程序都会被至少10个病毒扫描仪检测到。接下来,我们使用来自最先进的分类器(DREBIN[9]和OPSEQS[91])的两个特征集,在这些数据集上训练一个线性支持向量机[47]。

为了进一步支持这一发现,我们在表4中展示了SVM与SVM和标准模型集合相比的性能,如随机森林和AdaBoost分类器,使用自动技能学习库[48]进行训练。我们发现,3克的SVM与18×的较小模型的性能最好。这很有趣,因为使用了重叠但独立的子字符串(n-g),而不是RNN中所有标记的真正顺序。因此,VulDeePecker很可能并没有利用序列中的关系,而只是结合了特殊的标记——这一点可以通过训练线性分类器来获得(P6)。此外,值得注意的是,两种基线提供的显著更高的真阳性率,尽管所有方法的AUC-ROC仅略有不同。

最后,我们讨论了Li等人[83]提出的预处理步骤,如图5的示例所示。通过将代码片段截断为固定长度的50,就会丢失重要的信息。例如,变量SRC_STRING的值及其长度对 络是未知的。同样地,将数字转换为INT0和INT1也会对数据变量产生相同的问题:在转换之后,不可能知道缓冲区有多大以及内容是否适合其中。根据周围的代码,可能无法确定是否出现缓冲区溢出,从而导致标签不准确的情况(P2)。

实验设置。我们对这两个缺陷影响的评估建立在Abu哈马德等人[2]和卡利斯坎等人[23]的归因方法上。两者都代表了关于性能和特征的全面性的艺术水平。

我们在Clang上实现了一个链接器工具,这是一个用于LLVM编译器框架的开源C/C++前端,用来删除由于模板而出现的未使用的代码。在此基础上,我们设计了以下三个实验:首先,我们在未处理的数据集(Tb)上训练和测试一个分类器。其次,我们从各自的测试集(T1)中删除未使用的代码,这允许我们测试学习方法有多关注未使用的模板代码。最后,我们从训练集中删除未使用的代码,并重新训练分类器(T2)。

实验结果。 图7显示了两种归因方法在不同实验上的准确性。文物对归因的准确性有重大影响。如果我们从测试集(T1)中删除未使用的代码,这两种方法的准确率将下降48%。这表明,这两个系统都非常关注未使用的模板代码。经过再训练(T2)后,Abu哈马德等人[2]和卡利斯坎等人[23]的方法的平均准确率分别下降了6%和7%,证明了归因性能依赖于伪影。

总的来说,我们的实验表明,抽样偏差和虚假相关性的影响被低估了,并大大降低了准确性。与此同时,我们的研究结果也令人鼓舞。在考虑了工件之后,这两种归因方法都选择了允许更可靠的识别的特征。我们将净化后的数据集公开,以促进这个方向的进一步研究。

4.4 络入侵检测

检测 络入侵是安全[41]中最古老的问题之一,对异常 络流量的检测在很大程度上依赖于基于学习的方法[27,81,82,93]也就不足为奇了。然而,[46]在收集真实攻击数据方面面临的挑战常常导致研究人员生成仅用于实验室评估的合成数据(P9)。在这里,我们演示了这些数据如何往往不足以证明复杂模型(例如,神经 络)的使用,以及使用一个更简单的模型作为基线将如何揭示这些缺点(P6)。

数据集集合。我们考虑由Mirsky等人[93]发布的数据集,其中包含了物联 (IoT) 络流量的捕获,模拟Mirai僵尸 络恶意软件的初始激活和传播。该数据包捕获覆盖了一个拥有3台个人电脑和9台物联 设备的Wi-Fi 络上的119分钟的流量。

数据集分析。首先,我们分析了所捕获的 络流量的传输量。图8显示了整个捕获过程中良性和恶意数据包的频率,分为10秒的箱子。这显示了分组频率中的一个强信 ,这高度表明了正在进行的攻击。此外,尽管 络上的设备数量众多,但所有的良性活动似乎都在攻击开始时停止了,即在74分钟后。这表明,个别的观察结果可能已经被合并,并可能进一步导致系统受益于虚假的相关性(P4)。

5.对有效性的限制和威胁

前面对安全文献中常见缺陷的识别和分析是非常谨慎的。然而,这种工作自然也有一些固有的限制。尽管这些不会影响我们分析的总体结论,但为了完整起见,我们将在下面讨论它们。
陷阱。虽然一些陷阱一开始看起来很明显,但我们的流行率分析表明情况恰恰相反。这种意识的缺乏阻碍了进展,这种情况将持续下去,直到 区解决。此外,我们不能详细地涵盖所有的十个陷阱,因为我们的重点是一个全面的概述。最后,一些缺陷不能总是被预防的,如抽样偏差、标签不准确,或仅限实验室设置。例如,由于伦理考虑,可能不可能在真实环境中测试攻击。在这种情况下,模拟是唯一的选择。正如第2所述,纠正措施甚至可能是一个开放的问题,但对缺陷的认识是修改实验实践并最终设计出减轻缺陷的新方法的第一步。
患病率分析。在流行率分析中,我们浏览了过去10年里顶级安全会议的所有论文,并确定了30篇显著使用机器学习的论文(例如,在摘要或介绍中提到的)。尽管这种选择过程并非完全没有偏见,但所确定的缺陷是这个研究分支的典型特征,而且各自的论文经常被高度引用。

此外,只有在文本或相关工件,如代码或数据时,才会计算陷阱。否则,我们决定支持这篇论文,并认为一个陷阱不存在。尽管有这个保守的分配,我们的分析强调了陷阱的普遍存在。

6、相关工作

我们的研究是第一个系统和全面地探索在将机器学习应用于安全时的缺陷。它补充了一系列关于改进实验评价的研究。下面,我们将简要回顾这一相关工作,并指出关键的区别。

安全研究。在过去的二十年里,已经有了几项关于改进特定安全领域的实验的研究。例如,阿克塞尔森[11]、McHugh[90]和卡德纳斯等人[24]调查了入侵检测系统评估的问题,包括抽样偏差(P1)、基本速率谬误(P8)和不适当的性能措施(P7)的特殊情况。Sommer和Paxson[119]扩展了这项工作,并特别关注于机器学习在 络入侵检测中的应用。他们确定了进一步的问题,如异常检测的语义差距(P4)和不现实的评估基线(P6)。

Das等人的[35]表明,依赖于硬件性能计数器的安全防御在现实设置中是无效的(P9)。类似地,对于保护隐私的机器学习,Oya等人的[98]发现,大多数位置隐私方法在应用于真实世界的分布时都失败了(P9)。对于身份验证,Sugrim等人[123]提出了适当的措施来评估基于学习的认证系统(P7),最后,对于系统安全性,vanderKouwe等人[130]指出了频繁的基准测试缺陷(P1、P6和P7)。

我们的研究建立在这一研究的基础上,但提供了一个正交和全面的观点的问题。在将机器学习应用于计算机安全时,我们首先会普遍探索缺陷和建议,而不是专注于特定的领域。因此,我们的工作不仅局限于某些问题,而且适用于所有的安全领域。

对抗性学习研究。另一个研究分支集中在攻击和保护学习算法[18,39,101]。虽然从本研究中出现了许多强大的攻击,如逃避、中毒和推理攻击,但相应的防御往往遭受有限的鲁棒性[10]。为了抵消这种不平衡,Carrini等人的[26]发现了几个影响防御评估的缺陷,并讨论了如何避免它们的建议。同样,Biggio等人[21]提出了一个用于攻击下模式分类符的安全性评估的框架。这两项工作都与陷阱P10密切相关,并为评估防御的稳健性提供了有价值的提示。然而,虽然我们也认为,在提出基于学习的安全解决方案时,必须始终考虑到智能和自适应的对手,但我们的研究更为普遍。

机器学习研究。最后,一个值得注意的工作探索了机器学习的一般使用的建议。本研究包括对不同形式的抽样偏差和数据集位移[94,124,128]的研究,以及偏置参数选择[63]、数据窥探[76]和不恰当的评价方法[38,52,61]的一般含义。莱因哈特[109]提供了应用统计学中问题的直观概述。

我们的工作建立在这种分析之上;然而,我们只关注安全领域普遍存在的陷阱的影响。因此,我们的研究及其建议是根据安全界的需要量身定制的,并旨在推动基于学习的安全系统的最先进水平。

7、结论

我们确定并系统地评估了在安全问题上使用机器学习的10个细微缺陷。这些问题可能会影响研究的有效性,并导致过高估安全系统的性能。我们发现,这些缺陷在安全研究中普遍存在,并演示了这些缺陷在不同安全应用程序中的影响。为了支持研究人员避免使用它们,我们提供了适用于所有安全领域的建议,从入侵和恶意软件检测到漏洞发现。

最终,我们努力提高在安全领域进行机器学习的实证工作的科学质量。在Sommer和Paxson[119]的开创性研究十年后,我们再次鼓励 区接触到封闭的世界之外,探索在现实世界中嵌入安全系统的机器学习的挑战和机会。

附加材料
对于感兴趣的读者,我们在http://dodo-mlsec.org提供了论文的补充材料

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月12日
下一篇 2022年4月12日

相关推荐