恶意软件检测(10)Dos and Don'ts of Machine Learning in Computer Security

Dos and Don'ts of Machine Learning in Computer Security

改github的主页信息

USENIX Security '22:https://www.usenix.org/conference/usenixsecurity22/presentation/arp

Why not( ? )Use AI in Cyber Security

摘要

随着计算系统处理能力的不断增强和海量数据集的日益可用,机器学习算法在许多不同领域取得了重大突破。这一发展影响了计算机安全,催生了一系列基于机器学习的安全系统的工作,例如恶意软件检测、漏洞发现和二进制代码分析。尽管机器学习在安全领域有着巨大的潜力,但它容易出现一些微妙的缺陷,这些缺陷会破坏其性能,并使基于学习的系统可能不适合安全任务和实际部署。

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

一、说明

没有一天不阅读机器学习的成功故事。对专业计算资源和大型数据集的广泛访问,以及用于深度学习的新概念和架构,为机器学习在几个领域的突破铺平了道路,例如自然语言的翻译[13,31,125]和图像内容的识别[62,78,117]。这一发展自然影响了安全研究:虽然过去主要局限于特定应用[53、54、132],但机器学习现在已成为研究和解决多个应用领域中普遍存在的安全相关问题的关键促成因素之一,包括入侵检测[43、93]、恶意软件分析[69、88]、漏洞发现[83、142],和二进制代码分析[42、114、140]。

然而,机器学习没有洞察力,需要在相当精细的工作流程中对数据的统计特性进行推理:错误的假设和实验偏见可能会对这一过程产生怀疑,以至于不清楚我们是否可以信任使用学习算法得出的科学发现[56]。二十年前[11、119、126]开始尝试识别特定安全领域(如网络入侵检测)中的挑战和限制,最近扩展到其他领域,如恶意软件分析和网站指纹识别[3、72、104、112]。然而,与这项工作垂直的是,我们认为存在与机器学习相关的一般陷阱,这些陷阱影响所有安全领域,迄今为止几乎没有受到关注。这些缺陷可能导致结果过于乐观,甚至影响整个机器学习工作流,削弱假设、结论和经验教训。因此,人们感觉到一种虚假的成就感,阻碍了学术界和工业界采用研究进展。健全的科学方法是支持直觉和得出结论的基础。我们认为,这一需求在安全性方面尤其重要,在安全性领域,过程往往受到积极绕过分析并破坏系统的对手的破坏。

在本文中,我们确定了十个常见但微妙的陷阱,这些陷阱对研究结果的有效性构成威胁,并阻碍了对其的解释。为了支持这一说法,我们分析了过去十年中30篇依靠机器学习解决不同问题的顶级安全论文中这些陷阱的普遍性。令我们惊讶的是,每篇论文至少有三个陷阱;更糟糕的是,有几个陷阱影响了大多数论文,这表明这个问题是多么普遍和微妙。尽管这些陷阱很普遍,但了解它们在多大程度上削弱了结果并导致过于乐观的结论可能更为重要。最后我们对四个不同安全领域中的陷阱进行了影响分析。这些发现支持了我们的假设,回应了社区更广泛的关注。

贡献:

  • 陷阱识别。我们确定了机器学习在安全性方面的十个陷阱,并提出了可行的建议,以支持研究人员尽可能避免这些陷阱。此外,要确定无法轻松缓解的开放性问题,需要进一步研究。
  • 流行率分析。我们分析了在过去十年中发表的30份具有代表性的顶级证券报纸中发现的陷阱的普遍性。此外,我们进行了一项广泛的调查,其中我们获得并评估了这些论文作者关于已识别缺陷的反馈。
  • 影响分析。在四个不同的安全领域,我们通过实验分析了此类缺陷在多大程度上导致了实验偏差,以及我们如何通过应用建议的建议来有效克服这些问题。

评论 : 这项工作不应被解释为指手画脚的练习。相反,这是一种反思性的努力,表明了微妙的陷阱会对安全研究的进展产生多大的负面影响,以及我们作为一个社区如何充分缓解它们。

二、机器学习中的陷阱

尽管机器学习取得了巨大的成功,但在实践中应用机器学习通常并不简单,而且容易出现一些缺陷,从明显的缺陷到微小的瑕疵。忽视这些问题可能会导致实验偏差或错误结论,尤其是在计算机安全方面。在本节中,我们介绍了在security research中经常出现的十个常见陷阱。虽然这些陷阱乍一看似乎显而易见,但它们根源于安全研究中普遍存在的细微缺陷,甚至在ATOP会议上发表的论文中也是如此。

我们根据典型机器学习工作流的各个阶段对这些缺陷进行分类,如图1所示。对于每个缺陷,我们提供了简短的描述,讨论了其对安全领域的影响,并提出了建议。此外,彩色条显示了我们分析中遭受陷阱的论文比例,较暖的颜色表示存在陷阱(见图3)

image-20220804131643885

2.1 数据收集与标记

基于学习的系统的设计和开发通常从获取代表性数据集开始。显然,使用不切实际的数据进行实验会导致错误估计方法的能力。以下两个陷阱经常导致这个问题,因此在开发基于学习的计算机安全系统时需要特别注意。

2.2.1 Sampling Bias : 样本偏差(1)

收集的数据不足以代表潜在安全问题的真实数据分布。

描述:除了少数例外,研究人员开发基于学习的方法时没有确切了解输入空间的真实潜在分布。相反,他们需要依赖于包含固定数量样本的数据集,这些样本旨在与实际分布相似。虽然在大多数情况下不可避免地存在一些偏见,但理解特定问题固有的特定偏见对于限制其在实践中的影响至关重要。如果数据不能有效地表示输入空间,甚至不能遵循不同的分布,那么从训练数据中得出有意义的结论就变得很有挑战性。

安全影响采样偏差与安全高度相关,因为数据采集尤其具有挑战性,通常需要使用多个质量不同的源。例如,对于用于Android恶意软件检测的合适数据集的收集,只有少数公共来源可用于获取此类数据[6, 134]。因此,依赖合成数据或组合来自不同来源的数据是常见的做法,正如我们在第4节中通过最先进的入侵和恶意软件检测方法的例子所证明的那样,这两种方法都会引入偏差。

建议:在许多安全应用程序中,从真实分布中采样极其困难,有时甚至不可能。因此,这种偏差通常只能得到缓解,但不能完全消除。在§4中,我们表明,在某些情况下,一个合理的策略是构造真实分布的差分集并对其进行单独分析。进一步的策略包括使用合成数据扩展数据集[例如,28,60,137]或使用转移学习[See99,135,145,147]。然而,应避免来自不兼容源的数据混合,因为这是额外偏差的常见原因。无论如何,应该公开讨论所用数据集的局限性,让其他研究人员更好地理解潜在采样偏差的安全含义。

2.2.1 Label Inaccuracy:标签不准确(2)

分类任务所需的地面真实值标签不准确、不稳定或错误,影响基于学习的系统的整体性能[85,144]

描述:许多基于AI的安全系统是为分类任务而构建的。为了训练这些系统,每次观测都需要一个 ground-truth label。不幸的是,这种标记很少是完美的,研究人员必须考虑不确定性和噪声,以防止他们的模型受到固有偏差的影响。

安全影响:对于许多相关的安全问题,如检测网络攻击或恶意软件,通常无法获得可靠的标签,从而导致鸡和蛋的问题。作为补救措施,研究人员通常采用启发式方法,例如使用无法提供可靠基础真相的外部来源。例如,像 virustotal 这样的服务通常用于获取恶意软件的标签信息,但这些服务并不总是一致的[144]。此外,随着时间的推移,对手行为的改变可能会改变不同等级之间的比例[3,92,144],引入一种称为标签偏移的偏差[85]。无法适应这些变化的系统一旦部署,性能将下降。

建议:通常,应尽可能验证标签,例如,通过手动调查假阳性或随机样本[例如,122]。如果不排除噪声,则可以通过(i)使用稳健模型或损失函数,(ii)在学习过程中积极建模标签噪声,或(iii)清除训练数据中的噪声标签来减少其对学习模型的影响[见55,67,84]。为了证明这些方法的适用性,我们主要采用附录a中的清理方法。请注意,标签不确定的实例不得从测试数据中删除。这代表了采样偏差(P1)和数据窥探(P3)的变化,这是我们在§2.2中详细讨论的一个陷阱。由于标签可能会随时间变化,因此有必要采取预防措施,防止标签移动[85],例如延迟标签,直到获得稳定的地面真相为止[见144]。

2.2 系统设计和学习

一旦收集到足够的数据,就可以训练基于学习的安全系统。这个过程包括从数据预处理到提取有意义的特征和建立有效的学习模型。不幸的是,这些步骤中的每一步都可能引入缺陷和弱点。

2.2.1 Data Snooping:数据窥探(3)

学习模型是用实践中通常不可用的数据训练的。数据窥探可以以多种方式发生,其中一些非常细微,难以识别[1]。

描述:在生成学习模型之前,通常将收集的数据拆分为单独的训练集和测试集。虽然分割数据似乎很简单,但测试数据或其他通常不可用的背景信息有许多微妙的方式可以影响训练过程,从而导致数据窥探。虽然附录中提供了数据监听示例的详细列表(见表8),但我们大致区分了三种类型的数据监听:测试、临时和选择性监听。当测试集用于最终评估之前的实验时,会发生测试窥探。这包括识别有用特征、参数和学习算法的准备工作。如果忽略数据中的时间依赖性,则会发生时间监听。这是一个常见的陷阱,因为许多与安全相关的问题的潜在分布都处于不断变化的状态[例如,87,104]。最后,选择性监听描述了基于实践中不可用的信息清理数据。一个例子是基于完整数据集(即,训练和测试)的统计数据删除外部LIER,这些数据集通常在训练时不可用。

安全影响:在安全方面,由于新的攻击或技术,数据分布是非平稳的,并且不断变化。因此,窥探未来或外部数据源的数据是一种普遍现象,导致结果过于乐观。例如,一些研究人员已经在基于学习的恶意软件检测系统中发现了时间窥探[4,8,104]。在所有这些情况下,由于混合了过去和现在的样本,这些方法的能力被高估。同样,在安全研究中也存在测试和选择性窥探事件,导致结果出现无意偏差(见§3)。

建议:虽然训练、验证和测试数据应该严格分开似乎很明显,但在预处理阶段,这种数据隔离往往会被无意中违反。例如,我们观察到,在整个数据集上计算tf-idf权重或神经嵌入是一个常见错误(见§3)。为了避免这个问题,测试数据应该在数据收集期间尽早分割,并单独存储,直到最终评估。此外,在创建数据时,应考虑数据内的时间依赖性,数据集被拆分[4,87,104]。然而,其他类型的数据窥探很难解决。例如,随着公开数据集的特征日益暴露,使用该数据开发的方法隐含地从测试数据中获取年龄知识[见1,90]。因此,对知名数据集的实验应与对来自考虑适应应用领域的较新数据的实验相补充。

2.2.2 Spurious Correlations:假相关性(4)

与安全问题无关的工件创建了用于分类的快捷模式。因此,学习模型适应这些工件,而不是解决实际任务

描述:伪相关性是由与要解决的任务相关但实际上与之无关的产生的,从而导致错误关联。考虑一个网络入侵检测系统的例子,其中数据集中的大部分攻击来自某个网络区域。该模型可以学习检测特定IP范围而不是一般攻击模式。请注意,虽然抽样偏差是产生虚假相关性的常见原因,但这些偏差也是由其他因素造成的,我们在附录a.对此进行了更详细的讨论

安全影响机器学习通常应用于安全领域的黑盒。因此,虚假的相关性往往无法确定。一旦结果被解释并用于得出一般结论,这些相关性就会带来问题。如果不知道虚假相关性,则存在高估方法能力和误判其实际局限性的高风险。例如,§4.2报告了我们对漏洞发现系统的分析,表明基础数据中存在明显的虚假相关性。

建议为了更好地了解基于学习的系统的能力,我们通常建议应用机器学习的解释技术[见59、79、133]。尽管存在一些限制[例如,66,75127],这些技术可以揭示虚假的相关性,并允许从业者评估其对系统能力的影响。作为一个例子,我们在§4中展示了不同安全相关问题的可解释学习如何有助于识别该问题。请注意,根据基于学习的系统的目标,一种设置中的虚假相关性可能被视为另一种设置的有效信号。因此,我们建议提前明确定义该目标,并验证系统学习的相关性是否符合该目标。例如,一个强大的恶意软件检测系统应该检测与恶意活动相关的特征,而不是数据中存在的其他无关信息

2.2.3 Biased Parameter Selection :有偏参数选择(5)

基于学习的方法的最终参数在训练时并不完全固定。相反,它们间接依赖于测试集

描述:在整个学习过程中,通常通过改变参数生成不同的模型。选择性能最佳的模型,并给出其在测试集上的性能。虽然这种设置通常是合理的,但它仍然会受到参数选择偏差的影响。例如,通过调整超参数或校准测试数据(而不是训练数据)上的阈值,可以很容易产生过于乐观的结果。

安全影响:参数在训练时未完全校准的安全系统在现实环境中的性能可能会有所不同。虽然网络入侵检测系统的检测阈值可以使用测试集上获得的ROC曲线来确定,但由于现实世界流量的多样性,在实践中很难选择相同的操作点[119]。与原始实验设置相比,这可能导致系统性能下降。请注意,此陷阱与数据窥探(P3)有关,但应明确考虑,因为它很容易导致夸大的结果。

建议:这种陷阱构成了数据窥探的一种特殊情况,因此适用相同的对策。然而,在实践中,通过使用分离的评估集进行模型选择和参数调整,可以很容易地固定有偏差的参数选择。与通常难以缓解的一般数据窥探相比,严格的数据隔离已经足以排除确定超参数和阈值时的问题。

2.3 Performance Evaluation

性能评估典型机器学习工作流的下一个阶段是系统性能评估。在下文中,我们将展示不同的陷阱如何在评估此类系统时导致不公平的比较和有偏见的结果。

2.3.1 Inappropriate Baseline: 不适当的基线(6)

评估不使用或使用有限的基线方法进行。结果是,不可能证明对现有技术和其他安全机制的改进;

描述:为了说明一种新方法在多大程度上提高了技术水平,将其与先前提出的方法进行比较至关重要。在选择基线时,重要的是要记住,不存在优于一般[136]中所有其他方法的通用学习算法。因此,仅提供所提出方法的结果或与基本相同的学习模型进行比较,并没有提供足够的背景来评估其影响。

安全影响过于复杂的学习方法会增加过度拟合的可能性,还会增加运行时开销、攻击面以及部署的时间和成本。为了证明与传统方法相比,机器学习技术提供了显著的改进,因此有必要对这些系统进行并排比较。

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

2.3.2 Inappropriate Performance Measures:不适当的性能衡量标准(7)

精选的性能度量没有考虑到应用场景的限制,例如数据不平衡或需要保持较低的误报率。

描述:可提供范围广泛的性能指标,但并非所有这些指标都适用于安全环境。例如,在评估检测系统时,仅报告一个性能值(如精度)通常是不够的,因为真阳性和假阳性判断是不可观察的。然而,更先进的测量方法,如ROC曲线,在某些应用环境中可能会模糊实验结果。图2显示了不平衡数据集上的ROC曲线和精度召回曲线(分类比率1:100)。仅考虑ROC曲线,性能看起来非常出色,但低精度揭示了分类器的真实性能,这对于许多安全应用来说是不切实际的;此外,各种与安全相关的问题涉及两个以上的类,需要多类度量。这一套可能会引入更多的微妙陷阱。众所周知,常用的策略,如”macro-averagingormicro-averaging “会过度估计和低估小类[51]。

安全影响:不适当的性能度量是安全研究中的一个长期问题,特别是在检测任务中。例如,虽然真阳性和假阳性可以更详细地描述系统的性能,但当攻击发生率较低时,它们也可以掩盖实际精度。在机器学习中,性能指标的选择非常具体。因此,我们无法提供一般指南。相反,我们建议考虑基于学习的系统的实际部署,并确定有助于实践评估其性能的措施。请注意,这些度量通常与标准度量(如精度或误差)不同,因为它们更符合系统的日常操作。为了给读者一种直觉,在§4.1中,我们展示了Android恶意软件检测器的不同性能测量如何导致对其性能的矛盾解释。

2.3.3 Base Rate Fallacy:基本利率谬误(8)

在解释性能指标时,忽略了较大的类别不平衡,导致对绩效的高估。

描述:如果不考虑负类的基本速率,类不平衡很容易导致对性能的错误预测。如果这一类占主导地位,即使是极低的假阳性率也会导致意外的高假阳性率。请注意与先前陷阱的不同之处:P7指的是对绩效的不恰当描述,而基本利率谬误则是对结果的错误解释。这种特殊情况在实践中很容易被忽视(见§3)。考虑图2中的示例,其中99%的真阳性可能为1%的假阳性。然而,如果我们考虑1:100的分类比率,这实际上对应于每99个真阳性对应100个假阳性。

安全影响:基本速率谬误与各种安全问题有关,例如入侵检测和网站指纹识别[11, 72, 100]。因此,现实地量化攻击者构成的安全和先验威胁是一项挑战。类似地,安装恶意软件的概率通常远低于恶意软件检测实验[104]

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

2.4 部署和操作

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

2.4.1 Lab-Only Evaluation:仅实验室评估(9)

基于学习的系统在实验室环境中进行了简单的评估,没有讨论其实际局限性

描述:与所有经验学科一样,在某些假设下进行实验以证明方法的有效性是很常见的。虽然执行受控实验是检验某一方法特定方面的合法方法,但应在现实环境中进行评估,以透明地评估其能力,并展示将促进进一步研究的开放挑战。

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

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

2.4.2 Inappropriate Threat Model:不恰当的威胁模型(10)

没有考虑机器学习的安全性,使系统面临各种攻击,如中毒和逃避攻击;

描述:基于学习的安全系统在一个恶劣环境中运行,在设计这些系统时应考虑到这一点。先前在对抗式学习方面的工作表明,在工作流程的各个阶段,机器学习本身都引入了相当大的攻击面[见18,101]。其广泛的攻击面使这些算法容易受到各种类型的攻击,例如对抗性预处理、中毒和逃避[19、20、25、105、108]。

安全影响:在威胁模型和评估中包括对抗性影响通常至关重要,因为攻击的系统不能保证输出可信和有意义的结果。因此,除了传统的安全问题外,还必须考虑与机器学习相关的攻击。例如,与考虑到安全因素而设计的适当规范化模型相比,攻击者可能更容易避开仅依赖少数功能的模型[40],尽管还应考虑特定领域的影响[105]。此外,机器学习工作流程中的语义漏洞可能会造成攻击盲点。例如,不精确的解析和特征提取可能会使对手隐藏恶意内容[131]。

建议:在使用基于学习的系统的大多数安全领域中,我们在一个动态的环境中操作。因此,应准确定义威胁模型,并根据这些模型评估系统。在大多数情况下,有必要假设一个适应性强的对手专门针对拟议的系统,并将搜索和利用弱点进行规避或操纵。类似地,考虑机器学习工作流的所有阶段并调查可能的漏洞也是至关重要的[见18、26、39、101]。对于该分析,我们建议尽可能关注白盒策略,遵循Kerckhoff的原则[73]和安全最佳实践。最后,我们要强调的是,对对抗性方面的评估不是附加内容,而是安全研究中的一个强制性组成部分。

三、流行性分析

一旦我们了解了基于学习的安全系统所面临的陷阱,就有必要评估其普遍性并调查其对科学进步的影响。为此,我们对过去十年在ACM CCS、IEEE S&P、USENIX Security和NDSS上发表的30篇论文进行了研究,这是我们社区中与安全相关研究的四大会议。这些论文被选为我们研究的代表性例子,因为它们涉及大量不同的安全主题,并成功地将机器学习应用于相应的研究问题。

特别是,我们选择的顶级论文涵盖以下主题:

  • 恶意软件检测[9,34,88,104,121,138];
  • 网络入侵检测[43,93,113,115];
  • 漏洞发现[42、49、50、83];
  • tacks网站指纹识别[44100110116];
  • 社交网络滥用[22,95,120];
  • 二进制代码分析[14,32,114];
  • 代码归属[2,23];
  • 隐写术[17];
  • 网上诈骗[74];
  • 游戏机器人[80];
  • [68]

评估标准:对于每一篇论文,陷阱大致分为存在、不存在、文本不清楚或不适用。在没有补救(存在)的实验中,陷阱可能完全存在,也可能不存在。如果作者纠正了任何偏见或缩小了他们的主张范围以适应陷阱,这也被视为不存在。此外,我们还介绍了一个类别,以说明确实存在陷阱的实验,但其影响已经得到了特别处理。如果目前或部分出现了一个陷阱,但在文本中得到了承认,我们将按照讨论的方式对分类进行调整。如果审稿人无法排除由于信息缺失而出现的陷阱,我们会将出版物与文本区分开来。最后,在P10的特殊情况下,如果陷阱不适用于纸张的设置,则将其视为单独的类别;

观察普适性分析的汇总结果如图3所示。条形图的颜色表示存在陷阱的程度,其宽度表示具有该分类的论文的比例。受影响纸张的数量记录在条形图的中心。最普遍的缺陷是抽样偏差(P1)和数据窥探(P3),这两种情况至少部分出现在90%和73%的论文中。在超过50%的论文中,我们发现至少部分存在不适当的威胁模型(第10页)、仅实验室评估(第9页)和不适当的性能度量(第7页)。每一份报纸都会受到至少三个陷阱的影响,这突出了这些问题在最近的计算机安全研究中的普遍性。特别是,我们发现数据集的收集仍然非常具有挑战性:我们作为社区开发的一些最具权威性和扩展性的开放数据集仍然不完善(见§4.1)

<img src="pic/Dos and Don'ts of Machine Learning in Computer Security

改github的主页信息

USENIX Security '22:https://www.usenix.org/conference/usenixsecurity22/presentation/arp

Why not( ? )Use AI in Cyber Security

摘要

随着计算系统处理能力的不断增强和海量数据集的日益可用,机器学习算法在许多不同领域取得了重大突破。这一发展影响了计算机安全,催生了一系列基于机器学习的安全系统的工作,例如恶意软件检测、漏洞发现和二进制代码分析。尽管机器学习在安全领域有着巨大的潜力,但它容易出现一些微妙的缺陷,这些缺陷会破坏其性能,并使基于学习的系统可能不适合安全任务和实际部署。

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

一、说明

没有一天不阅读机器学习的成功故事。对专业计算资源和大型数据集的广泛访问,以及用于深度学习的新概念和架构,为机器学习在几个领域的突破铺平了道路,例如自然语言的翻译[13,31,125]和图像内容的识别[62,78,117]。这一发展自然影响了安全研究:虽然过去主要局限于特定应用[53、54、132],但机器学习现在已成为研究和解决多个应用领域中普遍存在的安全相关问题的关键促成因素之一,包括入侵检测[43、93]、恶意软件分析[69、88]、漏洞发现[83、142],和二进制代码分析[42、114、140]。

然而,机器学习没有洞察力,需要在相当精细的工作流程中对数据的统计特性进行推理:错误的假设和实验偏见可能会对这一过程产生怀疑,以至于不清楚我们是否可以信任使用学习算法得出的科学发现[56]。二十年前[11、119、126]开始尝试识别特定安全领域(如网络入侵检测)中的挑战和限制,最近扩展到其他领域,如恶意软件分析和网站指纹识别[3、72、104、112]。然而,与这项工作垂直的是,我们认为存在与机器学习相关的一般陷阱,这些陷阱影响所有安全领域,迄今为止几乎没有受到关注。这些缺陷可能导致结果过于乐观,甚至影响整个机器学习工作流,削弱假设、结论和经验教训。因此,人们感觉到一种虚假的成就感,阻碍了学术界和工业界采用研究进展。健全的科学方法是支持直觉和得出结论的基础。我们认为,这一需求在安全性方面尤其重要,在安全性领域,过程往往受到积极绕过分析并破坏系统的对手的破坏。

在本文中,我们确定了十个常见但微妙的陷阱,这些陷阱对研究结果的有效性构成威胁,并阻碍了对其的解释。为了支持这一说法,我们分析了过去十年中30篇依靠机器学习解决不同问题的顶级安全论文中这些陷阱的普遍性。令我们惊讶的是,每篇论文至少有三个陷阱;更糟糕的是,有几个陷阱影响了大多数论文,这表明这个问题是多么普遍和微妙。尽管这些陷阱很普遍,但了解它们在多大程度上削弱了结果并导致过于乐观的结论可能更为重要。最后我们对四个不同安全领域中的陷阱进行了影响分析。这些发现支持了我们的假设,回应了社区更广泛的关注。

贡献:

  • 陷阱识别。我们确定了机器学习在安全性方面的十个陷阱,并提出了可行的建议,以支持研究人员尽可能避免这些陷阱。此外,要确定无法轻松缓解的开放性问题,需要进一步研究。
  • 流行率分析。我们分析了在过去十年中发表的30份具有代表性的顶级证券报纸中发现的陷阱的普遍性。此外,我们进行了一项广泛的调查,其中我们获得并评估了这些论文作者关于已识别缺陷的反馈。
  • 影响分析。在四个不同的安全领域,我们通过实验分析了此类缺陷在多大程度上导致了实验偏差,以及我们如何通过应用建议的建议来有效克服这些问题。

评论 : 这项工作不应被解释为指手画脚的练习。相反,这是一种反思性的努力,表明了微妙的陷阱会对安全研究的进展产生多大的负面影响,以及我们作为一个社区如何充分缓解它们。

二、机器学习中的陷阱

尽管机器学习取得了巨大的成功,但在实践中应用机器学习通常并不简单,而且容易出现一些缺陷,从明显的缺陷到微小的瑕疵。忽视这些问题可能会导致实验偏差或错误结论,尤其是在计算机安全方面。在本节中,我们介绍了在security research中经常出现的十个常见陷阱。虽然这些陷阱乍一看似乎显而易见,但它们根源于安全研究中普遍存在的细微缺陷,甚至在ATOP会议上发表的论文中也是如此。

我们根据典型机器学习工作流的各个阶段对这些缺陷进行分类,如图1所示。对于每个缺陷,我们提供了简短的描述,讨论了其对安全领域的影响,并提出了建议。此外,彩色条显示了我们分析中遭受陷阱的论文比例,较暖的颜色表示存在陷阱(见图3)

image-20220804131643885

2.1 数据收集与标记

基于学习的系统的设计和开发通常从获取代表性数据集开始。显然,使用不切实际的数据进行实验会导致错误估计方法的能力。以下两个陷阱经常导致这个问题,因此在开发基于学习的计算机安全系统时需要特别注意。

2.2.1 Sampling Bias : 样本偏差(1)

收集的数据不足以代表潜在安全问题的真实数据分布。

描述:除了少数例外,研究人员开发基于学习的方法时没有确切了解输入空间的真实潜在分布。相反,他们需要依赖于包含固定数量样本的数据集,这些样本旨在与实际分布相似。虽然在大多数情况下不可避免地存在一些偏见,但理解特定问题固有的特定偏见对于限制其在实践中的影响至关重要。如果数据不能有效地表示输入空间,甚至不能遵循不同的分布,那么从训练数据中得出有意义的结论就变得很有挑战性。

安全影响采样偏差与安全高度相关,因为数据采集尤其具有挑战性,通常需要使用多个质量不同的源。例如,对于用于Android恶意软件检测的合适数据集的收集,只有少数公共来源可用于获取此类数据[6, 134]。因此,依赖合成数据或组合来自不同来源的数据是常见的做法,正如我们在第4节中通过最先进的入侵和恶意软件检测方法的例子所证明的那样,这两种方法都会引入偏差。

建议:在许多安全应用程序中,从真实分布中采样极其困难,有时甚至不可能。因此,这种偏差通常只能得到缓解,但不能完全消除。在§4中,我们表明,在某些情况下,一个合理的策略是构造真实分布的差分集并对其进行单独分析。进一步的策略包括使用合成数据扩展数据集[例如,28,60,137]或使用转移学习[See99,135,145,147]。然而,应避免来自不兼容源的数据混合,因为这是额外偏差的常见原因。无论如何,应该公开讨论所用数据集的局限性,让其他研究人员更好地理解潜在采样偏差的安全含义。

2.2.1 Label Inaccuracy:标签不准确(2)

分类任务所需的地面真实值标签不准确、不稳定或错误,影响基于学习的系统的整体性能[85,144]

描述:许多基于AI的安全系统是为分类任务而构建的。为了训练这些系统,每次观测都需要一个 ground-truth label。不幸的是,这种标记很少是完美的,研究人员必须考虑不确定性和噪声,以防止他们的模型受到固有偏差的影响。

安全影响:对于许多相关的安全问题,如检测网络攻击或恶意软件,通常无法获得可靠的标签,从而导致鸡和蛋的问题。作为补救措施,研究人员通常采用启发式方法,例如使用无法提供可靠基础真相的外部来源。例如,像 virustotal 这样的服务通常用于获取恶意软件的标签信息,但这些服务并不总是一致的[144]。此外,随着时间的推移,对手行为的改变可能会改变不同等级之间的比例[3,92,144],引入一种称为标签偏移的偏差[85]。无法适应这些变化的系统一旦部署,性能将下降。

建议:通常,应尽可能验证标签,例如,通过手动调查假阳性或随机样本[例如,122]。如果不排除噪声,则可以通过(i)使用稳健模型或损失函数,(ii)在学习过程中积极建模标签噪声,或(iii)清除训练数据中的噪声标签来减少其对学习模型的影响[见55,67,84]。为了证明这些方法的适用性,我们主要采用附录a中的清理方法。请注意,标签不确定的实例不得从测试数据中删除。这代表了采样偏差(P1)和数据窥探(P3)的变化,这是我们在§2.2中详细讨论的一个陷阱。由于标签可能会随时间变化,因此有必要采取预防措施,防止标签移动[85],例如延迟标签,直到获得稳定的地面真相为止[见144]。

2.2 系统设计和学习

一旦收集到足够的数据,就可以训练基于学习的安全系统。这个过程包括从数据预处理到提取有意义的特征和建立有效的学习模型。不幸的是,这些步骤中的每一步都可能引入缺陷和弱点。

2.2.1 Data Snooping:数据窥探(3)

学习模型是用实践中通常不可用的数据训练的。数据窥探可以以多种方式发生,其中一些非常细微,难以识别[1]。

描述:在生成学习模型之前,通常将收集的数据拆分为单独的训练集和测试集。虽然分割数据似乎很简单,但测试数据或其他通常不可用的背景信息有许多微妙的方式可以影响训练过程,从而导致数据窥探。虽然附录中提供了数据监听示例的详细列表(见表8),但我们大致区分了三种类型的数据监听:测试、临时和选择性监听。当测试集用于最终评估之前的实验时,会发生测试窥探。这包括识别有用特征、参数和学习算法的准备工作。如果忽略数据中的时间依赖性,则会发生时间监听。这是一个常见的陷阱,因为许多与安全相关的问题的潜在分布都处于不断变化的状态[例如,87,104]。最后,选择性监听描述了基于实践中不可用的信息清理数据。一个例子是基于完整数据集(即,训练和测试)的统计数据删除外部LIER,这些数据集通常在训练时不可用。

安全影响:在安全方面,由于新的攻击或技术,数据分布是非平稳的,并且不断变化。因此,窥探未来或外部数据源的数据是一种普遍现象,导致结果过于乐观。例如,一些研究人员已经在基于学习的恶意软件检测系统中发现了时间窥探[4,8,104]。在所有这些情况下,由于混合了过去和现在的样本,这些方法的能力被高估。同样,在安全研究中也存在测试和选择性窥探事件,导致结果出现无意偏差(见§3)。

建议:虽然训练、验证和测试数据应该严格分开似乎很明显,但在预处理阶段,这种数据隔离往往会被无意中违反。例如,我们观察到,在整个数据集上计算tf-idf权重或神经嵌入是一个常见错误(见§3)。为了避免这个问题,测试数据应该在数据收集期间尽早分割,并单独存储,直到最终评估。此外,在创建数据时,应考虑数据内的时间依赖性,数据集被拆分[4,87,104]。然而,其他类型的数据窥探很难解决。例如,随着公开数据集的特征日益暴露,使用该数据开发的方法隐含地从测试数据中获取年龄知识[见1,90]。因此,对知名数据集的实验应与对来自考虑适应应用领域的较新数据的实验相补充。

2.2.2 Spurious Correlations:假相关性(4)

与安全问题无关的工件创建了用于分类的快捷模式。因此,学习模型适应这些工件,而不是解决实际任务

描述:伪相关性是由与要解决的任务相关但实际上与之无关的产生的,从而导致错误关联。考虑一个网络入侵检测系统的例子,其中数据集中的大部分攻击来自某个网络区域。该模型可以学习检测特定IP范围而不是一般攻击模式。请注意,虽然抽样偏差是产生虚假相关性的常见原因,但这些偏差也是由其他因素造成的,我们在附录a.对此进行了更详细的讨论

安全影响机器学习通常应用于安全领域的黑盒。因此,虚假的相关性往往无法确定。一旦结果被解释并用于得出一般结论,这些相关性就会带来问题。如果不知道虚假相关性,则存在高估方法能力和误判其实际局限性的高风险。例如,§4.2报告了我们对漏洞发现系统的分析,表明基础数据中存在明显的虚假相关性。

建议为了更好地了解基于学习的系统的能力,我们通常建议应用机器学习的解释技术[见59、79、133]。尽管存在一些限制[例如,66,75127],这些技术可以揭示虚假的相关性,并允许从业者评估其对系统能力的影响。作为一个例子,我们在§4中展示了不同安全相关问题的可解释学习如何有助于识别该问题。请注意,根据基于学习的系统的目标,一种设置中的虚假相关性可能被视为另一种设置的有效信号。因此,我们建议提前明确定义该目标,并验证系统学习的相关性是否符合该目标。例如,一个强大的恶意软件检测系统应该检测与恶意活动相关的特征,而不是数据中存在的其他无关信息

2.2.3 Biased Parameter Selection :有偏参数选择(5)

基于学习的方法的最终参数在训练时并不完全固定。相反,它们间接依赖于测试集

描述:在整个学习过程中,通常通过改变参数生成不同的模型。选择性能最佳的模型,并给出其在测试集上的性能。虽然这种设置通常是合理的,但它仍然会受到参数选择偏差的影响。例如,通过调整超参数或校准测试数据(而不是训练数据)上的阈值,可以很容易产生过于乐观的结果。

安全影响:参数在训练时未完全校准的安全系统在现实环境中的性能可能会有所不同。虽然网络入侵检测系统的检测阈值可以使用测试集上获得的ROC曲线来确定,但由于现实世界流量的多样性,在实践中很难选择相同的操作点[119]。与原始实验设置相比,这可能导致系统性能下降。请注意,此陷阱与数据窥探(P3)有关,但应明确考虑,因为它很容易导致夸大的结果。

建议:这种陷阱构成了数据窥探的一种特殊情况,因此适用相同的对策。然而,在实践中,通过使用分离的评估集进行模型选择和参数调整,可以很容易地固定有偏差的参数选择。与通常难以缓解的一般数据窥探相比,严格的数据隔离已经足以排除确定超参数和阈值时的问题。

2.3 Performance Evaluation

性能评估典型机器学习工作流的下一个阶段是系统性能评估。在下文中,我们将展示不同的陷阱如何在评估此类系统时导致不公平的比较和有偏见的结果。

2.3.1 Inappropriate Baseline: 不适当的基线(6)

评估不使用或使用有限的基线方法进行。结果是,不可能证明对现有技术和其他安全机制的改进;

描述:为了说明一种新方法在多大程度上提高了技术水平,将其与先前提出的方法进行比较至关重要。在选择基线时,重要的是要记住,不存在优于一般[136]中所有其他方法的通用学习算法。因此,仅提供所提出方法的结果或与基本相同的学习模型进行比较,并没有提供足够的背景来评估其影响。

安全影响过于复杂的学习方法会增加过度拟合的可能性,还会增加运行时开销、攻击面以及部署的时间和成本。为了证明与传统方法相比,机器学习技术提供了显著的改进,因此有必要对这些系统进行并排比较。

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

2.3.2 Inappropriate Performance Measures:不适当的性能衡量标准(7)

精选的性能度量没有考虑到应用场景的限制,例如数据不平衡或需要保持较低的误报率。

描述:可提供范围广泛的性能指标,但并非所有这些指标都适用于安全环境。例如,在评估检测系统时,仅报告一个性能值(如精度)通常是不够的,因为真阳性和假阳性判断是不可观察的。然而,更先进的测量方法,如ROC曲线,在某些应用环境中可能会模糊实验结果。图2显示了不平衡数据集上的ROC曲线和精度召回曲线(分类比率1:100)。仅考虑ROC曲线,性能看起来非常出色,但低精度揭示了分类器的真实性能,这对于许多安全应用来说是不切实际的;此外,各种与安全相关的问题涉及两个以上的类,需要多类度量。这一套可能会引入更多的微妙陷阱。众所周知,常用的策略,如”macro-averagingormicro-averaging “会过度估计和低估小类[51]。

安全影响:不适当的性能度量是安全研究中的一个长期问题,特别是在检测任务中。例如,虽然真阳性和假阳性可以更详细地描述系统的性能,但当攻击发生率较低时,它们也可以掩盖实际精度。在机器学习中,性能指标的选择非常具体。因此,我们无法提供一般指南。相反,我们建议考虑基于学习的系统的实际部署,并确定有助于实践评估其性能的措施。请注意,这些度量通常与标准度量(如精度或误差)不同,因为它们更符合系统的日常操作。为了给读者一种直觉,在§4.1中,我们展示了Android恶意软件检测器的不同性能测量如何导致对其性能的矛盾解释。

2.3.3 Base Rate Fallacy:基本利率谬误(8)

在解释性能指标时,忽略了较大的类别不平衡,导致对绩效的高估。

描述:如果不考虑负类的基本速率,类不平衡很容易导致对性能的错误预测。如果这一类占主导地位,即使是极低的假阳性率也会导致意外的高假阳性率。请注意与先前陷阱的不同之处:P7指的是对绩效的不恰当描述,而基本利率谬误则是对结果的错误解释。这种特殊情况在实践中很容易被忽视(见§3)。考虑图2中的示例,其中99%的真阳性可能为1%的假阳性。然而,如果我们考虑1:100的分类比率,这实际上对应于每99个真阳性对应100个假阳性。

安全影响:基本速率谬误与各种安全问题有关,例如入侵检测和网站指纹识别[11, 72, 100]。因此,现实地量化攻击者构成的安全和先验威胁是一项挑战。类似地,安装恶意软件的概率通常远低于恶意软件检测实验[104]

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

2.4 部署和操作

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

2.4.1 Lab-Only Evaluation:仅实验室评估(9)

基于学习的系统在实验室环境中进行了简单的评估,没有讨论其实际局限性

描述:与所有经验学科一样,在某些假设下进行实验以证明方法的有效性是很常见的。虽然执行受控实验是检验某一方法特定方面的合法方法,但应在现实环境中进行评估,以透明地评估其能力,并展示将促进进一步研究的开放挑战。

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

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

2.4.2 Inappropriate Threat Model:不恰当的威胁模型(10)

没有考虑机器学习的安全性,使系统面临各种攻击,如中毒和逃避攻击;

描述:基于学习的安全系统在一个恶劣环境中运行,在设计这些系统时应考虑到这一点。先前在对抗式学习方面的工作表明,在工作流程的各个阶段,机器学习本身都引入了相当大的攻击面[见18,101]。其广泛的攻击面使这些算法容易受到各种类型的攻击,例如对抗性预处理、中毒和逃避[19、20、25、105、108]。

安全影响:在威胁模型和评估中包括对抗性影响通常至关重要,因为攻击的系统不能保证输出可信和有意义的结果。因此,除了传统的安全问题外,还必须考虑与机器学习相关的攻击。例如,与考虑到安全因素而设计的适当规范化模型相比,攻击者可能更容易避开仅依赖少数功能的模型[40],尽管还应考虑特定领域的影响[105]。此外,机器学习工作流程中的语义漏洞可能会造成攻击盲点。例如,不精确的解析和特征提取可能会使对手隐藏恶意内容[131]。

建议:在使用基于学习的系统的大多数安全领域中,我们在一个动态的环境中操作。因此,应准确定义威胁模型,并根据这些模型评估系统。在大多数情况下,有必要假设一个适应性强的对手专门针对拟议的系统,并将搜索和利用弱点进行规避或操纵。类似地,考虑机器学习工作流的所有阶段并调查可能的漏洞也是至关重要的[见18、26、39、101]。对于该分析,我们建议尽可能关注白盒策略,遵循Kerckhoff的原则[73]和安全最佳实践。最后,我们要强调的是,对对抗性方面的评估不是附加内容,而是安全研究中的一个强制性组成部分。

三、流行性分析

一旦我们了解了基于学习的安全系统所面临的陷阱,就有必要评估其普遍性并调查其对科学进步的影响。为此,我们对过去十年在ACM CCS、IEEE S&P、USENIX Security和NDSS上发表的30篇论文进行了研究,这是我们社区中与安全相关研究的四大会议。这些论文被选为我们研究的代表性例子,因为它们涉及大量不同的安全主题,并成功地将机器学习应用于相应的研究问题。

特别是,我们选择的顶级论文涵盖以下主题:

  • 恶意软件检测[9,34,88,104,121,138];
  • 网络入侵检测[43,93,113,115];
  • 漏洞发现[42、49、50、83];
  • tacks网站指纹识别[44100110116];
  • 社交网络滥用[22,95,120];
  • 二进制代码分析[14,32,114];
  • 代码归属[2,23];
  • 隐写术[17];
  • 网上诈骗[74];
  • 游戏机器人[80];
  • [68]

评估标准:对于每一篇论文,陷阱大致分为存在、不存在、文本不清楚或不适用。在没有补救(存在)的实验中,陷阱可能完全存在,也可能不存在。如果作者纠正了任何偏见或缩小了他们的主张范围以适应陷阱,这也被视为不存在。此外,我们还介绍了一个类别,以说明确实存在陷阱的实验,但其影响已经得到了特别处理。如果目前或部分出现了一个陷阱,但在文本中得到了承认,我们将按照讨论的方式对分类进行调整。如果审稿人无法排除由于信息缺失而出现的陷阱,我们会将出版物与文本区分开来。最后,在P10的特殊情况下,如果陷阱不适用于纸张的设置,则将其视为单独的类别;

观察普适性分析的汇总结果如图3所示。条形图的颜色表示存在陷阱的程度,其宽度表示具有该分类的论文的比例。受影响纸张的数量记录在条形图的中心。最普遍的缺陷是抽样偏差(P1)和数据窥探(P3),这两种情况至少部分出现在90%和73%的论文中。在超过50%的论文中,我们发现至少部分存在不适当的威胁模型(第10页)、仅实验室评估(第9页)和不适当的性能度量(第7页)。每一份报纸都会受到至少三个陷阱的影响,这突出了这些问题在最近的计算机安全研究中的普遍性。特别是,我们发现数据集的收集仍然非常具有挑战性:我们作为社区开发的一些最具权威性和扩展性的开放数据集仍然不完善(见§4.1)

此外,文本中存在的一些陷阱比其他陷阱更容易被忽略。我们观察到,当没有对参数的描述时,这种有偏参数选择(P5),给出了超参数或调谐过程;对于伪相关(P4),当没有试图解释模型的决定时;以及当文本中未明确描述数据集分割或归一化过程时的数据窥探(P3)。这些问题还表明,由于缺乏信息,实验设置更难复现;

作者的反馈:为了促进我们社区内的讨论,我们联系了所选论文的作者,并收集了对我们研究结果的反馈。我们对135位有联系方式的作者进行了调查。为了保护作者的隐私并鼓励公开讨论,所有回复均匿名。调查包括一系列关于已识别缺陷的一般和具体问题。首先,我们询问作者是否阅读过我们的作品,并认为它对社区有帮助。其次,对于每一个陷阱,我们收集反馈信息,说明他们是否同意(a)他们的出版可能受到影响,(b)安全文件中经常出现陷阱,以及(c)在大多数情况下很容易避免。为了量化评估回答,我们对每个问题使用五点Likert量表,范围从强烈不同意到强烈同意。此外,我们提供了一个不回答的选项,并允许作者省略问题。我们收到了49位作者的反馈,回复率为36%。这些作者对应于30篇选定论文中的13篇,因此占考虑研究的43%。关于一般性问题,46(95%)的作者阅读了我们的论文,48(98%)同意这有助于提高对已识别缺陷的认识。对于具体的陷阱问题,作者和我们的发现之间的总体一致性平均为63%,这取决于安全区域和陷阱。所有的作者都认为他们的论文至少有一个缺陷。平均而言,他们指出他们的工作中存在2.77个陷阱,标准偏差为1.53,涵盖了所有十个陷阱。在评估总体缺陷时,作者特别同意,仅实验室评估(92%)、基本比率谬误(77%)、不适当的绩效衡量(69%)和抽样偏差(69%)经常发生在安全人员中。此外,他们指出,不适当的性能测量(62%)、不适当的参数选择(62%)和基准利率谬误(46%)在实践中可以很容易地避免,而其他陷阱需要更多的努力。我们在附录B中提供了关于该调查的更多信息。总之,我们从该调查中得出了三个中心观察结果。首先,大多数作者都同意,我们的社区缺乏对已识别缺陷的意识。第二,他们确认,这些陷阱在安全文献中很普遍,有必要减轻它们。第三,仍然缺乏对已识别缺陷的一致理解。例如,几位作者(44%)既不同意也不反对数据窥探是否容易避免,强调了明确定义和建议的重要性。我们发现§2中引入的所有陷阱在安全研究中都很普遍,影响了17%到90%的选定论文。每篇论文至少有三个陷阱,只有22%的实例与本文中的讨论相关。虽然作者在某些情况下甚至可能故意省略了对陷阱的讨论,但我们的患病率分析结果总体上表明,我们的社区缺乏认识。虽然这些发现指出了研究中的一个严重问题,但我们想指出,所有分析的论文都提供了出色的贡献和宝贵的见解。我们的目标不是责怪研究人员陷入陷阱,而是提高安全领域机器学习研究的意识和实验质量。

四、影响分析

在前几节中,我们介绍了计算机安全文献中普遍存在的缺陷。然而,到目前为止,尚不清楚单个陷阱会在多大程度上影响实验结果及其结论。在本节中,我们估计了机器学习在安全领域的流行应用中的一些缺陷的实验影响。同时,我们展示了§2中讨论的建议如何帮助识别和解决这些问题。在我们的讨论中,我们考虑了计算机安全领域的四个热门研究主题:

  • 移动恶意软件检测: (P1, P4, and P7)
  • 漏洞发现: (P2, P4, and P6)
  • 源代码作者归属:(P1和P4)
  • 网络入侵检测:(P6和P9)

评论对于该分析,我们考虑了每个安全域的最先进方法。我们注意到,本节中的结果并不意味着具体批评这些方法;我们选择它们是因为它们代表了陷阱如何影响不同领域。值得注意的是,我们能够复制这些方法的事实高度赞扬了他们的学术水平;

4.1 移动恶意软件检测

使用机器学习自动检测Android恶意软件是一个特别活跃的研究领域。这种方法的设计和评估是微妙的,可能会显示出一些先前讨论的缺陷。在下文中,我们讨论了采样偏差(P1)、伪相关性(P4)和不适当的性能度量(P7)对基于学习的检测的影响

数据集集合:最近移动数据的一个常见来源是AndroZoop项目[6],该项目从各种来源收集Android应用程序,包括Official 谷歌市场和几个中国app软件市场。在撰写本文时,它包括来自18个不同来源的超过1100万个Android应用程序。除了样本本身,它还包括元信息,如抗病毒检测的数量。虽然AndroZoo是获取移动应用的优秀来源,但我们证明,如果不考虑数据集的特性,实验可能会出现严重的抽样偏差(P1)。请注意,以下讨论不限于AndroZoo数据,而是与Android数据集的组成相关。

数据集分析:在第一步中,我们通过考虑应用程序的来源和Android应用程序的防病毒检测数量来分析AndroZoo的数据分布。为了进行分析,我们将各个市场大致分为四个不同的来源:谷歌游戏、中国市场、VirusShare和所有其他市场。图4显示了从特定来源随机采样的概率,这取决于应用程序的防病毒检测数量。例如,当选择一个对检测次数没有限制的样本时,从谷歌游戏中采样的概率大约为80%。如果我们考虑10次检测的结果,我们从中国市场随机选择应用的概率是70%。如果我们忽略数据分布,数据集中的大部分良性应用很可能来自GooglePlay,而大多数恶意应用来自中国市场。请注意,此采样偏差不限于Andro Zoo。我们确定了DredeBin数据集[9]的类似抽样偏差,该偏差通常用于评估基于学习的Android恶意软件检测方法的性能[9、58、146]。

image-20220807135625094

实验装置:为了更好地理解这一发现,我们使用两个数据集进行了实验:

  • 对于第一个数据集(D1),我们将来自Google Play的10000个良性应用程序与来自中国市场的1000个恶性应用程序(安齐安达应用程序中国)合并。
  • 然后,我们使用相同的10000个良性应用程序创建第二个数据集(D2),但将它们与Google Play独家提供的1000个软件样本相结合。所有合法的应用程序都至少被10个病毒扫描程序检测到。接下来,我们使用来自最先进分类器的两个特征集(DREBIN[9]和OPSEQS[91]),在这些数据集上训练线性支持向量机[47]。

实验结果:在数据集D1和D2之间,DREBIN 和 OPSDEQS的召回率(真阳性率)分别超过10%和15%,而准确性仅受到轻微影响(见表1)。因此,性能度量的选择至关重要(P7)。有趣的是,URLplay.google.Com 被证明是良性类的五个最具歧视性的特征之一,这表明分类者已经学会区分Android apps的起源,而不是恶意软件和benign apps 之间的区别(P4)。虽然我们的实验装置通过故意忽略时间相关性(P3)高估了分类器的性能,但我们仍然可以清楚地观察到陷阱的影响。请注意,在以前的工作[4, 104]中已经证明了在这种情况下时间窥探的效果。

image-20220807211200980

4.2 漏洞发现

源代码中的漏洞可能导致权限提升和远程代码执行,使其成为主要威胁。由于手动搜索漏洞复杂且耗时,近年来提出了基于机器学习的检测方法[57,83,141]。在下面的内容中,我们展示了用于漏洞检测的数据集包含仅在一个类(P4)中发生的事件。我们还发现,用于检测脆弱性的神经网络Vuldeepecker[83]使用伪影进行分类,并且简单的线性分类器在相同的数据集上获得更好的结果(P6)。最后,我们讨论了forVulDeePecker提出的预处理步骤如何使我们无法确定某些代码片段是否包含漏洞(P2)

数据集集合:在我们的分析中,我们使用了Li等人[83]发布的数据集,其中包含来自国家漏洞数据库[36]和SARD项目[37]的源代码。我们关注与缓冲区(CWE-119)相关的漏洞,并获得了39757个源代码片段,其中10444(26%)被标记为包含漏洞。

4.3 源代码作者归属

基于源代码识别开发人员的任务称为作者归属[23]。编程习惯具有多种风格模式,因此

4.4 网络入侵检测检测

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

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

数据集分析:首先,我们分析捕获的网络流量的传输量。图8显示了捕获过程中良性和恶意数据包的频率,划分为10秒。这表明在分组频率中有一个强信号,这高度指示了一个持续攻击。此外,所有良性活动似乎都随着袭击的开始而停止。74分钟后,尽管网络上有很多设备。这表明个体观测可能已经合并,并可能进一步导致系统受益于虚假相关性(P4)

image-20220807213124529

图:Mirai数据集中良性与恶意数据包的频率93。灰色虚线显示了定义使用简单基线计算的正常流量的阈值(箱线图法[129])。用于校准的数据范围由浅蓝色阴影区域突出显示.

实验设置:为了说明这些缺陷的严重程度,我们考虑了Kitsune93,这是一种基于深度学习的最先进入侵检测器,构建在一组au-toencoders上。对于每个数据包,提取115个特征,输入到12个自动编码器,这些自动编码器本身反馈到另一个作为异常检测器运行的最终自动编码器。

作为与Kitsune进行比较的简单基线,我们选择了箱线图法[129],这是一种识别异常值的常用方法。我们使用10秒滑动窗口处理分组,并使用每个窗口的分组频率作为唯一特征。接下来,我们从干净的校准分布推导出一个上下阈值:τlow=Q1−1.5·IQRand ,τ高=Q3+1.5·IQR。在测试期间,如果滑动窗口的数据包频率在τ低和τ高之间,则数据包被标记为良性,否则为恶意。在图8中,这些阈值用灰色虚线表示。

后果:表5显示了与箱线图方法相比,自动编码器集成的分类性能。虽然两种方法在ROC AUC方面表现相似,但简单箱线图法在低误报率(FPR)下优于自动编码器集成。除了其优越的性能外,箱线图方法与集成的特征提取和测试程序相比,重量非常轻。这一点尤其重要,因为集成设计用于在低延迟的资源受限设备(如物联网设备)上运行。

image-20220807220205015

表5:比较Kitsune93,一种自动编码器集成NIDS,相比于一个简单基线,箱线图法[129],用于检测Mirai感染。

注意本实验的目的不是证明箱图法可以检测到野外操作的Mirai实例,也不是证明Kitsuneis无法检测到其他攻击,而是证明没有适当基线(P6)的实验不足以证明集成的复杂性和过度性。箱线图法的成功还表明,简单的方法可以揭示仅用于实验室评估的数据产生的问题(第9页)。在Mirai数据集中,感染过于明显;在野外进行的攻击很可能只占网络流量的一小部分。

五、总结

我们识别并系统地评估了机器学习在安全领域的应用中的十个细微缺陷。这些问题会影响研究的有效性,并导致高估安全系统的性能。我们发现这些陷阱在安全研究中非常普遍,并展示了这些陷阱在不同安全应用中的影响。为了支持研究人员避免这些问题,我们提供了适用于所有安全领域的建议,从入侵和恶意软件检测到漏洞发现。最终,我们努力提高安全领域机器学习实验工作的科学质量。在Sommer和Paxson[119]的开创性研究十年后,weagain鼓励社区深入封闭的世界,探索将机器学习嵌入现实世界安全系统的挑战和机遇。AI安全的十大缺陷/image-20220806171411086.png" alt="image-20220806171411086" style="zoom:50%;" />

此外,文本中存在的一些陷阱比其他陷阱更容易被忽略。我们观察到,当没有对参数的描述时,这种有偏参数选择(P5),给出了超参数或调谐过程;对于伪相关(P4),当没有试图解释模型的决定时;以及当文本中未明确描述数据集分割或归一化过程时的数据窥探(P3)。这些问题还表明,由于缺乏信息,实验设置更难复现;

作者的反馈:为了促进我们社区内的讨论,我们联系了所选论文的作者,并收集了对我们研究结果的反馈。我们对135位有联系方式的作者进行了调查。为了保护作者的隐私并鼓励公开讨论,所有回复均匿名。调查包括一系列关于已识别缺陷的一般和具体问题。首先,我们询问作者是否阅读过我们的作品,并认为它对社区有帮助。其次,对于每一个陷阱,我们收集反馈信息,说明他们是否同意(a)他们的出版可能受到影响,(b)安全文件中经常出现陷阱,以及(c)在大多数情况下很容易避免。为了量化评估回答,我们对每个问题使用五点Likert量表,范围从强烈不同意到强烈同意。此外,我们提供了一个不回答的选项,并允许作者省略问题。我们收到了49位作者的反馈,回复率为36%。这些作者对应于30篇选定论文中的13篇,因此占考虑研究的43%。关于一般性问题,46(95%)的作者阅读了我们的论文,48(98%)同意这有助于提高对已识别缺陷的认识。对于具体的陷阱问题,作者和我们的发现之间的总体一致性平均为63%,这取决于安全区域和陷阱。所有的作者都认为他们的论文至少有一个缺陷。平均而言,他们指出他们的工作中存在2.77个陷阱,标准偏差为1.53,涵盖了所有十个陷阱。在评估总体缺陷时,作者特别同意,仅实验室评估(92%)、基本比率谬误(77%)、不适当的绩效衡量(69%)和抽样偏差(69%)经常发生在安全人员中。此外,他们指出,不适当的性能测量(62%)、不适当的参数选择(62%)和基准利率谬误(46%)在实践中可以很容易地避免,而其他陷阱需要更多的努力。我们在附录B中提供了关于该调查的更多信息。总之,我们从该调查中得出了三个中心观察结果。首先,大多数作者都同意,我们的社区缺乏对已识别缺陷的意识。第二,他们确认,这些陷阱在安全文献中很普遍,有必要减轻它们。第三,仍然缺乏对已识别缺陷的一致理解。例如,几位作者(44%)既不同意也不反对数据窥探是否容易避免,强调了明确定义和建议的重要性。我们发现§2中引入的所有陷阱在安全研究中都很普遍,影响了17%到90%的选定论文。每篇论文至少有三个陷阱,只有22%的实例与本文中的讨论相关。虽然作者在某些情况下甚至可能故意省略了对陷阱的讨论,但我们的患病率分析结果总体上表明,我们的社区缺乏认识。虽然这些发现指出了研究中的一个严重问题,但我们想指出,所有分析的论文都提供了出色的贡献和宝贵的见解。我们的目标不是责怪研究人员陷入陷阱,而是提高安全领域机器学习研究的意识和实验质量。

四、影响分析

在前几节中,我们介绍了计算机安全文献中普遍存在的缺陷。然而,到目前为止,尚不清楚单个陷阱会在多大程度上影响实验结果及其结论。在本节中,我们估计了机器学习在安全领域的流行应用中的一些缺陷的实验影响。同时,我们展示了§2中讨论的建议如何帮助识别和解决这些问题。在我们的讨论中,我们考虑了计算机安全领域的四个热门研究主题:

  • 移动恶意软件检测: (P1, P4, and P7)
  • 漏洞发现: (P2, P4, and P6)
  • 源代码作者归属:(P1和P4)
  • 网络入侵检测:(P6和P9)

评论对于该分析,我们考虑了每个安全域的最先进方法。我们注意到,本节中的结果并不意味着具体批评这些方法;我们选择它们是因为它们代表了陷阱如何影响不同领域。值得注意的是,我们能够复制这些方法的事实高度赞扬了他们的学术水平;

4.1 移动恶意软件检测

使用机器学习自动检测Android恶意软件是一个特别活跃的研究领域。这种方法的设计和评估是微妙的,可能会显示出一些先前讨论的缺陷。在下文中,我们讨论了采样偏差(P1)、伪相关性(P4)和不适当的性能度量(P7)对基于学习的检测的影响

数据集集合:最近移动数据的一个常见来源是AndroZoop项目[6],该项目从各种来源收集Android应用程序,包括Official 谷歌市场和几个中国app软件市场。在撰写本文时,它包括来自18个不同来源的超过1100万个Android应用程序。除了样本本身,它还包括元信息,如抗病毒检测的数量。虽然AndroZoo是获取移动应用的优秀来源,但我们证明,如果不考虑数据集的特性,实验可能会出现严重的抽样偏差(P1)。请注意,以下讨论不限于AndroZoo数据,而是与Android数据集的组成相关。

数据集分析:在第一步中,我们通过考虑应用程序的来源和Android应用程序的防病毒检测数量来分析AndroZoo的数据分布。为了进行分析,我们将各个市场大致分为四个不同的来源:谷歌游戏、中国市场、VirusShare和所有其他市场。图4显示了从特定来源随机采样的概率,这取决于应用程序的防病毒检测数量。例如,当选择一个对检测次数没有限制的样本时,从谷歌游戏中采样的概率大约为80%。如果我们考虑10次检测的结果,我们从中国市场随机选择应用的概率是70%。如果我们忽略数据分布,数据集中的大部分良性应用很可能来自GooglePlay,而大多数恶意应用来自中国市场。请注意,此采样偏差不限于Andro Zoo。我们确定了DredeBin数据集[9]的类似抽样偏差,该偏差通常用于评估基于学习的Android恶意软件检测方法的性能[9、58、146]。

image-20220807135625094

实验装置:为了更好地理解这一发现,我们使用两个数据集进行了实验:

  • 对于第一个数据集(D1),我们将来自Google Play的10000个良性应用程序与来自中国市场的1000个恶性应用程序(安齐安达应用程序中国)合并。
  • 然后,我们使用相同的10000个良性应用程序创建第二个数据集(D2),但将它们与Google Play独家提供的1000个软件样本相结合。所有合法的应用程序都至少被10个病毒扫描程序检测到。接下来,我们使用来自最先进分类器的两个特征集(DREBIN[9]和OPSEQS[91]),在这些数据集上训练线性支持向量机[47]。

实验结果:在数据集D1和D2之间,DREBIN 和 OPSDEQS的召回率(真阳性率)分别超过10%和15%,而准确性仅受到轻微影响(见表1)。因此,性能度量的选择至关重要(P7)。有趣的是,URLplay.google.Com 被证明是良性类的五个最具歧视性的特征之一,这表明分类者已经学会区分Android apps的起源,而不是恶意软件和benign apps 之间的区别(P4)。虽然我们的实验装置通过故意忽略时间相关性(P3)高估了分类器的性能,但我们仍然可以清楚地观察到陷阱的影响。请注意,在以前的工作[4, 104]中已经证明了在这种情况下时间窥探的效果。

image-20220807211200980

4.2 漏洞发现

源代码中的漏洞可能导致权限提升和远程代码执行,使其成为主要威胁。由于手动搜索漏洞复杂且耗时,近年来提出了基于机器学习的检测方法[57,83,141]。在下面的内容中,我们展示了用于漏洞检测的数据集包含仅在一个类(P4)中发生的事件。我们还发现,用于检测脆弱性的神经网络Vuldeepecker[83]使用伪影进行分类,并且简单的线性分类器在相同的数据集上获得更好的结果(P6)。最后,我们讨论了forVulDeePecker提出的预处理步骤如何使我们无法确定某些代码片段是否包含漏洞(P2)

数据集集合:在我们的分析中,我们使用了Li等人[83]发布的数据集,其中包含来自国家漏洞数据库[36]和SARD项目[37]的源代码。我们关注与缓冲区(CWE-119)相关的漏洞,并获得了39757个源代码片段,其中10444(26%)被标记为包含漏洞。

4.3 源代码作者归属

基于源代码识别开发人员的任务称为作者归属[23]。编程习惯具有多种风格模式,因此

4.4 网络入侵检测检测

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

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

数据集分析:首先,我们分析捕获的网络流量的传输量。图8显示了捕获过程中良性和恶意数据包的频率,划分为10秒。这表明在分组频率中有一个强信号,这高度指示了一个持续攻击。此外,所有良性活动似乎都随着袭击的开始而停止。74分钟后,尽管网络上有很多设备。这表明个体观测可能已经合并,并可能进一步导致系统受益于虚假相关性(P4)

image-20220807213124529

图:Mirai数据集中良性与恶意数据包的频率93。灰色虚线显示了定义使用简单基线计算的正常流量的阈值(箱线图法[129])。用于校准的数据范围由浅蓝色阴影区域突出显示.

实验设置:为了说明这些缺陷的严重程度,我们考虑了Kitsune93,这是一种基于深度学习的最先进入侵检测器,构建在一组au-toencoders上。对于每个数据包,提取115个特征,输入到12个自动编码器,这些自动编码器本身反馈到另一个作为异常检测器运行的最终自动编码器。

作为与Kitsune进行比较的简单基线,我们选择了箱线图法[129],这是一种识别异常值的常用方法。我们使用10秒滑动窗口处理分组,并使用每个窗口的分组频率作为唯一特征。接下来,我们从干净的校准分布推导出一个上下阈值:τlow=Q1−1.5·IQRand ,τ高=Q3+1.5·IQR。在测试期间,如果滑动窗口的数据包频率在τ低和τ高之间,则数据包被标记为良性,否则为恶意。在图8中,这些阈值用灰色虚线表示。

后果:表5显示了与箱线图方法相比,自动编码器集成的分类性能。虽然两种方法在ROC AUC方面表现相似,但简单箱线图法在低误报率(FPR)下优于自动编码器集成。除了其优越的性能外,箱线图方法与集成的特征提取和测试程序相比,重量非常轻。这一点尤其重要,因为集成设计用于在低延迟的资源受限设备(如物联网设备)上运行。

image-20220807220205015

表5:比较Kitsune93,一种自动编码器集成NIDS,相比于一个简单基线,箱线图法[129],用于检测Mirai感染。

注意本实验的目的不是证明箱图法可以检测到野外操作的Mirai实例,也不是证明Kitsuneis无法检测到其他攻击,而是证明没有适当基线(P6)的实验不足以证明集成的复杂性和过度性。箱线图法的成功还表明,简单的方法可以揭示仅用于实验室评估的数据产生的问题(第9页)。在Mirai数据集中,感染过于明显;在野外进行的攻击很可能只占网络流量的一小部分。

五、总结

我们识别并系统地评估了机器学习在安全领域的应用中的十个细微缺陷。这些问题会影响研究的有效性,并导致高估安全系统的性能。我们发现这些陷阱在安全研究中非常普遍,并展示了这些陷阱在不同安全应用中的影响。为了支持研究人员避免这些问题,我们提供了适用于所有安全领域的建议,从入侵和恶意软件检测到漏洞发现。最终,我们努力提高安全领域机器学习实验工作的科学质量。在Sommer和Paxson[119]的开创性研究十年后,weagain鼓励社区深入封闭的世界,探索将机器学习嵌入现实世界安全系统的挑战和机遇。