顶会论文: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]。然而,与这一工作正交的是,我们认为存在与机器学习相关的通用缺陷,影响所有安全领域,迄今为止很少受到关注。

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

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

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

  • 陷阱识别。我们确定了安全方面机器学习的十大缺陷,并提出了可行的建议,以支持研究人员在可能的情况下避免陷阱。此外,我们还确定了无法轻易缓解的开放性问题,需要进一步的研究努力(2)。
  • 缺陷率分析。我们分析了在过去十年中发表的30篇具有代表性的顶级安全论文中发现的缺陷的流行程度。此外,我们进行了一项广泛的调查,其中我们获得并评估了这些论文的作者关于已确定的缺陷的反馈(3)。
  • 影响分析。在四个不同的安全领域中,我们通过实验分析了这些缺陷引入实验偏差的程度,以及我们如何通过应用所提出的建议来有效地克服这些问题(4)。

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


图1:计算机学习在计算机安全中的常见缺陷

2、机器学习中的10个陷阱

尽管机器学习取得了巨大的成功,但它在实践中的应用往往很重要,而且容易出现一些缺陷,从明显的缺陷到小的缺陷。忽略这些问题可能会导致实验偏差或不正确的结论,特别是在计算机安全方面。在本节中,我们将介绍在安全研究中经常出现的10个常见陷阱。尽管这些陷阱乍一看可能有些显而易见,但它们的根源在于安全研究中普遍存在的细微缺陷——甚至是在顶级会议上发表的论文中(见3和4)。

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

2.1数据收集和标签

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

P1-抽样偏差。收集的数据并不足以代表底层安全问题[1,30,33]的真实数据分布

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

安全影响。抽样偏差与安全性高度相关,因为数据的获取特别具有挑战性,而且通常需要使用多个不同质量的来源。例如,对于收集适合用于安卓恶意软件检测的数据集,只有少数公共来源可以从中获得这样的数据[6,134]。因此,依赖合成数据或组合来自不同来源的数据是常见的做法,这两种方法都可能引入偏差,正如我们在4中展示的入侵和恶意软件检测方法的例子。

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

P2-标签不准确。分类任务所需的基本真实标签是不准确的、不稳定的或错误的,这影响了基于学习的系统[85,144]的整体性能。

描述。 许多基于学习的安全系统都是为分类任务而构建的。为了训练这些系统,每个观测都需要一个地面真实的标签。不幸的是,这种标签很少是完美的,研究人员必须考虑到不确定性和噪音,以防止他们的模型遭受固有的偏见。
安全影响。 对于许多相关的安全问题,如检测网络攻击或恶意软件,通常可靠的标签不可用,导致鸡和蛋的问题。作为一种补救措施,研究人员经常诉诸启发式方法,例如使用不能提供可靠的基本事实的外部来源。例如,virutotal等服务通常用于获取恶意软件的标签信息,但这些并不总是一致的[144]。此外,对手行为的变化可能会随着时间的推移而改变不同类之间的比例,从而引入一种被称为标签移位[85]的偏差。一个不能适应这些变化的系统一旦部署,将会经历性能下降。
建议。 一般来说,标签应该尽可能地进行验证,例如,通过人工调查假阳性或随机样本[例如,122]。如果不能排除噪声标签及其对学习模型的影响,可以通过(i)使用鲁棒模型或损失函数,(ii)在学习过程中积极建模标签噪声,或(iii)清理训练数据中的噪声标签[见55,67,84]来减少。为了证明这些方法的适用性,我们在附录a中应用了一种清理方法。注意,不能从测试数据中删除具有不确定标签的实例。这代表了抽样偏差(P1)和数据窥探(P3)的变化,我们将在2.2中详细讨论了这个陷阱。此外,由于标签可能会随着时间的推移而变化,有必要采取预防措施,防止标签转移[85],例如推迟标签,直到一个稳定的地面真相可用[见144]。

2.2系统设计与学习

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

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

描述。 在生成学习模型之前,通常会将收集到的数据分成单独的训练集和测试集。虽然分割数据看起来很简单,但也有许多微妙的方式表明,测试数据或其他通常不可用的背景信息会影响训练过程,从而导致数据窥探。虽然附录中提供了数据窥探例子的详细列表(见表8),但我们大致区分了三种类型的数据窥探:测试、时间搜索和选择性窥探。

当测试集在最终评估之前将测试集用于实验时,就会发生测试窥探。这包括识别有用的特征、参数和学习算法的准备工作。如果忽略了数据中的时间依赖关系,就会发生时间窥探。这是一个常见的陷阱,因为在许多与安全相关的问题中的底层分布都在不断变化[例如,87,104]。最后,选择性窥探描述了基于实践中没有的信息对数据的清理。一个例子是基于完整数据集的统计数据(即训练和测试)来去除通常在训练时不可用的异常值。
安全影响。 在安全方面,数据分布通常是非平稳的,并且由于新的攻击或技术而不断变化。正因为如此,窥探来自未来或外部数据源的数据是一个普遍的陷阱,会导致过于乐观的结果。例如,一些研究人员已经在基于学习的恶意软件检测系统中发现了时间窥探[例如,4,8,104]。在所有这些情况下,由于混合了过去和现在的样本,这些方法的能力被高估了。同样,在安全研究中也会出现测试和选择性窥探的事件,从而导致无意中偏向于的结果(见3)。

建议。 虽然训练、验证和测试数据应该严格分离,但在预处理阶段经常无意中违反数据隔离。例如,我们观察到,在整个数据集上计算tf-idf权值或神经嵌入是一个常见的错误(见3)。为了避免这个问题,应该在数据收集期间尽早分割测试数据,并单独存储,直到最终评估。此外,在创建数据集分割[4,87,104]时,应该考虑数据内的时间依赖性。然而,处理其他类型的数据窥探也具有挑战性。例如,随着公开可用数据集的特征越来越被暴露出来,使用这些数据开发的方法隐式地利用了来自测试数据的知识[见1,90]。因此,在著名数据集上的实验应该与来自考虑的应用领域的最新数据的实验来补充。

P4-虚假的相关性。与安全问题无关的工件将创建用来分离类的快捷方式模式。因此,学习模型适应了这些伪影,而不是解决实际的任务。

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

安全影响。 机器学习通常在安全方面作为一个黑盒来应用。因此,虚假的相关性往往仍未被确认。一旦结果被解释并用于得出一般结论,这些相关性就会产生一个问题。在不知道虚假相关性的情况下,有很高高估方法的能力和错误判断其实际局限性的风险。例如,4.2报告了我们对一个漏洞发现系统的分析,该系统表明在底层数据中存在显著的虚假相关性。

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

P5-有偏差的参数的选择。一种基于学习的方法的最终参数在训练时并不是完全固定的。相反,它们间接地依赖于测试集。

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

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

建议。 这一缺陷构成了数据窥探的一种特殊情况,因此也适用同样的对策。然而,在实践中,通过使用单独的模型选择和参数调整,通常可以通过使用单独的验证集来确定有偏差的参数选择。与一般的数据窥探相比,严格的数据隔离已经足以在确定超参数和阈值时排除问题。

2.3绩效评价

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

图2:ROC和精确-召回率曲线作为相同分数的两个性能度量,在一个类比率不平衡的人工数据集上创建。只有精确度-召回率曲线才能传达真实的表现。

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篇论文进行了研究,这是我们社区中安全相关研究的四大会议。我们选择这些论文作为我们研究的代表性例子,因为它们解决了大量的安全主题,并成功地将机器学习应用于相应的研究问题。


图3:堆叠柱状图显示了所分析的30篇论文中每篇论文所遭受的缺陷。每个条形图的颜色显示了陷阱出现的程度,而宽度显示了该组中纸张的比例。每个条形图中心的数字表示每个组的基数。

特别是,我们选择的顶级论文涵盖以下主题:恶意软件检测[9,34,88,104,121,138];网络入侵检测[43,93,113,115];漏洞发现[42,49,50,83];网站指纹攻击[44100110116];社交网络滥用[22,95,120];二进制代码分析[14,32,114];代码归属[2,23];隐写术[17];网络诈骗[74];游戏机器人[80];和广告屏蔽[68]。
审查过程。 每篇论文都被分配了两名独立的审稿人,他们评估文章并识别所描述的缺陷的实例。评审人由6名研究人员组成,他们之前在至少一次考虑过的安全会议上发表过机器学习和安全主题的工作。审稿人不考虑在被分析的论文之外呈现的任何材料(除了附录和相关的工件,如数据集或源代码)。一旦两个审稿人都完成了他们的任务,他们就会在第三个审稿人面前讨论论文,以解决任何争议。在不确定的情况下,作者被给予怀疑的好处(例如,在部分在场和在场之间的争议中,我们指定部分在场)。

在整个过程中,所有的评审人定期开会,以讨论他们的发现,并确保陷阱标准之间的一致性。此外,这些会议还被用来根据审查员的经验来完善缺陷的定义和范围。在对标准进行任何调整后,所有完成的评审都由原始审稿人重新评估——这在我们的分析中发生了两次。虽然很麻烦,但这种整合评审者反馈的自适应过程确保了在描述整个技术状态的核心问题时,缺陷是全面的。我们注意到,在争议解决之前,审查的评估者之间的可靠性是α=0.832,使用克里彭多夫的alpha,其中α>0.800表示自信可靠的评级[77]。

评估标准。 对于每一篇论文,陷阱都被粗略地分为存在、不存在、从文本中不清楚或不适用。一个陷阱可能在整个实验过程中完全存在,没有补救(存在),也可能不存在(不存在)。如果作者已经纠正了任何偏见或缩小了他们的主张范围以适应陷阱,这也被视为不存在。此外,我们引入了部分作为一个类别来呈现,以解释确实存在缺陷的实验,但影响已经部分解决。如果一个陷阱存在或部分存在,但在文本中被承认,我们将调节所讨论的分类。如果审稿人无法排除由于信息缺失而存在的陷阱,我们将该出版物标记为从文本中不清楚。最后,在P10的特殊情况下,如果该陷阱不适用于论文的设置,这将被视为一个单独的类别。

观察。 流行率分析的汇总结果如图3所示。条形图的颜色表示陷阱存在的程度,它的宽度表示具有该分类的论文的比例。受影响的论文的数量被记录在条形图的中心。最普遍的缺陷是抽样偏差(P1)和数据窥探(P3),它们至少部分地分别出现在90%和73%的论文中。在超过50%的论文中,我们确定了不适当的威胁模型(P10)、仅实验室评估(P9)和不适当的绩效指标(P7)至少部分存在。每一篇论文都受到至少三个缺陷的影响,这凸显了在最近的计算机安全研究中,这类问题的普遍性。特别是,我们发现数据集收集仍然非常具有挑战性:我们作为一个社区开发的一些最现实和最广泛的开放数据集仍然不完善(见4.1)。

此外,一些陷阱的存在从文本中更有可能比其他的更不清楚。当没有给出超参数或调优过程的描述时,我们观察到有偏参数选择(P5);当没有试图解释模型的决定时,虚假相关性(P4);对于数据监听,当数据集分裂或标准化过程在文本中没有明确描述时,数据窥探(P3)。这些问题还表明,由于缺乏信息,实验设置更难复制。
来自作者的反馈。 为了在我们的社区中促进讨论,我们已经联系了所选论文的作者,并收集了对我们的发现的反馈。我们对135位作者进行了一项调查。为了保护作者的隐私并鼓励公开讨论,所有的回应都是匿名的。

该调查包括一系列关于已确定的缺陷的一般的和具体的问题。首先,我们询问作者,他们是否读过我们的作品,并认为它对社区有帮助。其次,对于每一个陷阱,我们收集关于他们是否同意(a)他们的发布可能会受到影响的反馈,(b)这个陷阱经常发生在安全文件中,而©在大多数情况下很容易避免。为了定量地评估回答,我们对每个问题使用李克特五点量表,范围从强烈不同意到强烈同意。此外,我们还提供了一个宁愿不愿意回答的选择,并允许作者省略问题。

我们收到了来自49位作者的反馈,回复率为36%。这些作者对应于30篇被选论文中的13篇,因此代表了被考虑的研究的43%。关于一般问题,46(95%)作者读过我们的论文,48(98%)同意这有助于提高对已确定的缺陷的认识。对于具体的陷阱问题,作者和我们的研究结果之间的总体一致性平均为63%,根据安全区域和陷阱而不同。所有的作者都同意,他们的论文可能至少有一个缺陷。平均而言,他们表明在他们的工作中存在2.77个缺陷,标准偏差为1.53,涵盖了所有10个缺陷。

在评估总体缺陷时,作者特别同意,仅进行实验室评估(92%)、基础率谬误(77%)、不适当的性能测量(69%)和抽样偏差(69%)经常出现在安全论文中。此外,他们指出,不适当的性能度量(62%)、不适当的参数选择(62%)和基本率谬误(46%)在实践中很容易避免,而其他陷阱需要更多的努力。我们在附录B中提供了有关该调查的进一步信息。

总之,我们从这个调查中得出了三个中心的观察结果。首先,大多数作者都认为,我们的社区对已发现的缺陷缺乏认识。其次,他们证实了这些缺陷在安全文献中普遍存在,并且有必要减轻这些缺陷。第三,对已确定的缺陷仍然缺乏一致的理解。例如,一些作者(44%)对数据监听是否容易避免既不同意也不不同意,他们强调了明确的定义和建议的重要性。

我们发现,在2中引入的所有缺陷在安全研究中都是普遍存在的,影响了17%到90%的所选论文。每一篇论文都至少有三个缺陷,只有22%的实例在文本中伴随着一个讨论。虽然作者甚至可能故意省略了对某些情况下的缺陷的讨论,但我们的流行率分析的结果总体上表明,我们的社区缺乏意识。

虽然这些发现指出了研究中的一个严重问题,但我们想指出的是,所有被分析的论文都提供了优秀的贡献和有价值的见解。我们在这里的目标不是为了责怪研究人员陷入了陷阱,而是为了提高意识,提高安全领域机器学习研究的实验质量

4、影响分析

在前面几节中,我们介绍了计算机安全文献中广泛存在的缺陷。然而,到目前为止,目前还不清楚这些个体缺陷会对实验结果和结论产生多大的影响。在本节中,我们将估计在机器学习在安全方面的流行应用中,其中一些缺陷的实验影响。同时,我们将演示在2中讨论的建议如何帮助识别和解决这些问题。在我们的讨论中,我们考虑了四个流行的计算机安全研究主题:

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

备注。对于此分析,我们考虑了针对每个安全领域的最新方法。我们注意到,本节中的结果并不意味着具体批评这些方法;我们选择它们,因为它们代表了陷阱如何影响不同的领域。值得注意的是,我们已经能够重现这些方法的事实高度说明了他们的学术标准。

4.1移动恶意软件检测

利用机器学习自动检测安卓恶意软件是一个特别活跃的研究领域。这些方法的设计和评价是微妙的,可能会表现出前面讨论过的一些缺陷。在下面,我们将讨论在此背景下,抽样偏差(P1)、虚假相关性(P4)和不适当的性能度量(P7)对基于学习的检测的影响。

数据集集合。最近移动数据的一个常见来源是AndroZoo项目[6],该项目从各种渠道收集安卓应用程序,包括官方谷歌游戏商店和几个中国市场。在撰写本文时,它包含了来自18个不同来源的1100多万个安卓应用程序。除了样本本身之外,它还包括元信息,如防病毒检测的数量。虽然AndroZoo是获取移动应用程序的极好来源,但我们证明,如果不考虑到数据集的特性,实验可能会出现严重的采样偏差(P1)。请注意,下面的讨论并不局限于AndroZoo的数据,而是与一般安卓数据集的一般组成有关。


图4:从中国市场抽样恶意软件的概率明显高于谷歌游戏。这可能会导致在安卓恶意软件检测的实验设置中的采样偏差。

数据集分析。在第一步中,我们通过考虑应用程序的来源和安卓应用程序的防病毒检测数量来分析AndroZoo的数据分布。在我们的分析中,我们将各个市场大致分为四个不同的来源:谷歌游戏、中国市场、病毒份额和所有其他市场。

图4显示了根据应用程序的防病毒检测数量从特定来源进行随机采样的概率。例如,当选择一个没有检测数量限制的样本时,从谷歌游戏中采样的概率大约是80%。如果我们考虑一个10个检测的阈值,我们从中国市场随机选择一个应用程序的概率是70%。如果我们忽略数据分布,很可能有很大一部分良性应用程序来自googglePlay,而大多数恶意应用程序来自中国市场。

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

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


表1:将来自GooglePlay的良性应用程序与中国恶意软件(D1)合并与单独从GooglePlay(D2)合并时的结果比较。对于这两种分类器,当只考虑谷歌gleplay中的应用程序时,检测性能会显著下降。结果的标准偏差范围在0-3%之间。

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

4.2漏洞发现

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

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

数据分析。 我们通过手工对代码片段的一个随机子集进行分类来开始分析,以发现数据集中可能存在的工件。我们发现,在所考虑的样本中,某些大小的缓冲区似乎只存在于一个类中。为了进行研究,我们提取了在数据集中初始化的字符数组的缓冲区大小,并计算在每个类中出现的次数。我们在表2中报告了类0(没有漏洞的代码片段)的结果,并观察到某些缓冲区大小几乎只出现在这个类中。如果该模型依赖于缓冲区大小作为分类的鉴别特征,这将是一个虚假的相关性(P4)。

实验设置。 我们训练基于循环神经网络[65]的虚拟人[83]对代码片段进行自动分类。为此,我们用通用标识符(例如INT2)替换变量名,并将片段截断为50个标记,如论文[83]中提出的。在图5中可以看到这个过程的一个示例,其中原始的代码片段(顶部)被转换为一个通用的代码片段(底部)。我们使用一个线性支持向量机和基于n克的袋字特征(SVM)作为虚拟者的基线。为了了解虚拟佩克学到了什么,我们遵循了沃内克等人[133]的工作,并使用分层相关性传播(LRP)方法[12]来解释预测,并给每个标记分配一个相关性分数,表明其对分类的重要性。图5(底部)显示了这些分数的一个例子,其中蓝色令牌支持分类,而橙色令牌反对分类。

实验结果。 为了查看VulDeePecker是否依赖于工件,我们使用了整个训练集的相关性值,并为每个代码片段提取了10个最重要的标记。然后,我们提取在这个前10个选择中最常出现的标记,并按出现次数的降序报告表3中的结果。

虽然对人类的解释仍然难以解释,但我们注意到两件事:首先,像“(”,“]”,和“,”是整个训练数据中最重要的特性之一,尽管它们经常出现在这两个类的代码中,作为函数调用或数组初始化的一部分。其次,有许多通用的INT*值,它们经常对应于缓冲区的大小。由此我们得出结论,VulDeePecker依赖于数据集中的工件组合,因此存在虚假的相关性(P4)。


表2:Li等人[83]使用的脆弱性数据集中有不同的缓冲区大小,以及它们在类0中的出现次数和相对频率。


图5:顶部:来自数据集的代码片段。底部:VulDeePecker预处理步骤后相同的代码片段。着色表明了根据LRP[12]方法进行分类的重要性。


表3:数据集中样本中最常见的10个标记。

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

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

4.3源代码作者归属

基于源代码识别开发人员的任务被称为作者归属[23]。编程习惯具有各种风格模式的特征,因此,最先进的归因方法使用了一组表达性的这样的特征。这些方法的范围从简单的布局属性到使用语法和控制流中更不寻常的习惯。与抽样偏差(P1)相结合,这种表达性可能会在当前的归因方法中产生虚假的相关性(P4),从而导致对准确性的过高估。


表4:支持向量机和虚拟数据机对看不见数据的性能。真阳性率被确定为2.9%的假阳性。


图6:在每个作者的所有文件上的共享源代码。大多数人倾向于跨挑战复制代码片段,从而导致学习到的工件。

数据集集合。最近的方法已经在谷歌代码Jam(GCJ)编程竞赛[2,7,23]的数据上进行了测试,其中的参与者在不同的回合中解决了相同的挑战。该数据集的一个优点是,它确保了分类器学习分离样式模式,而不仅仅是对不同的挑战进行过拟合。我们使用了2017年的GCJ数据集[107],它由来自204位作者的1,632个C++文件组成,解决了相同的8个挑战。

数据集分析。我们首先分析每个各自程序员的所有文件之间的平均相似性得分,其中得分是由不同的序列匹配器[106]计算的。图6显示了大多数参与者跨挑战复制代码,也就是说,他们重用了个性化的编码模板。可以理解的是,这源于比赛的性质,参与者被鼓励快速解决挑战。这些模板通常不用于解决当前的挑战,但只有在可能需要它们的情况下才会出现。由于这偏离了现实世界的设置,我们在数据集中确定了一个抽样偏差。
当前用于作者归属的特征集包括这些模板,这样模型就会非常关注它们作为高度区分的模式。然而,这种未使用的重复代码会导致表示工件的特性,而不是具有虚假相关性的编码风格。

实验设置。我们对这两个缺陷影响的评估建立在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:将自动编码器集成NIDS基特松[93]与简单的基线箱线图方法[129]进行比较,用于检测Mirai感染。
实验设置。为了说明这些缺陷有多严重,我们考虑了秋松[93],一个最先进的基于自动编码器集成的基于深度学习的入侵检测器。对于每个包,提取115个特征,这些特征输入到12个自动编码器,这些编码器本身提供给另一个作为异常检测器的最终自动编码器。
作为与基特松进行比较的简单基线,我们选择了箱线图方法[129],这是一种识别异常值的常用方法。我们使用一个10秒的滑动窗口来处理数据包,并使用每个窗口的数据包频率作为唯一的特性。接下来,我们从干净的校准分布中推导出一个下限和上限阈值:τlow=Q1−1.5·IQR和τhigh=Q3+1.5·IQR。在测试期间,如果滑动窗口的包频率在τlow和τhigh之间,则标记为良性,否则标记为恶意。在图8中,这些阈值用灰色虚线表示。
结果 。 与箱线图方法相比,自动编码器集成的分类性能如表5所示。虽然这两种方法在ROCAUC方面表现相似,但简单箱线图方法在低假阳性率(FPR)下优于自动编码器集成。与集成的特征提取和测试程序相比,箱线图方法的性能是极其轻量级的。这尤其相关,因为集成被设计为在具有低延迟的资源受限设备上操作(例如,物联网设备)。

注意这个实验并不打算表明箱线图方法可以检测Mirai操作的实例,也无法检测其他攻击,但证明一个实验没有一个适当的基线(P6)不足以证明集成的复杂性和开销。箱线图方法的成功也显示了简单的方法如何揭示仅为实验室评估生成的数据的问题(P9)。在Mirai数据集中,感染过于明显;野外的攻击可能由一小部分网络流量表示。

4.5 Takeaways

这四个案例研究清楚地证明了在四种不同的安全场景中所考虑的陷阱的影响。我们的研究结果表明,在一种方法的设计和实验设置中的细微错误可能导致误导或错误的结果。尽管这项研究总体上做出了有价值的贡献,但在顶级论文中发现的缺陷的频率和严重程度清楚地表明,需要有更多的认识。此外,我们还展示了陷阱是如何跨多个域应用的,从而指出了一个不能仅归因于其中一个安全区域的一般问题。


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

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

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

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

影响分析。从本文作者也发表过研究的安全领域中选择了四个示范性的研究作品。然而,这种有偏差的选择应该是可以接受的,因为我们打算通过经验来证明缺陷会如何影响实验结果。

6、相关工作

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

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

在一项类似的研究中,Rossow等人[112]推导了进行恶意软件实验的指导方针。虽然本研究没有明确地研究机器学习,但它指出了与本文中讨论的一些问题相关的实验问题。该研究通过一系列检查恶意软件分析(P1)中抽样偏差的变量,如时间不一致的数据分割和标签[例如,4,92,104,144]以及不现实的好软件与恶意软件比率[例如,5,104]。阿格哈哈尼等人[3]研究了在存在包装样本的情况下,恶意软件分类的静态特征的局限性。

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提供了论文的补充材料

基于AI的恶意样本分析(2)相关推荐

  1. [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  2. 首个完整利用WinRAR漏洞传播的恶意样本分析

    背景 WinRAR是一款流行的压缩工具,据其官网上发布的数据,全球有超过5亿的用户在使用WinRAR. 2019年2月20日,安全厂商checkpoint发布了名为<<Extracting ...

  3. [网络安全自学篇] 五十一.恶意样本分析之HGZ进程和网络行为动态分析及防御

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文讲解了虚拟机基础知识,包括XP操作系统安装.文件共享设置.网络快照及网络设置 ...

  4. 新变种Emotet恶意样本分析

    样本信息 表1.1 样本信息表 文件 1.doc 大小  190976 字节 修改时间  2021年12月2日, 10:30:02 MD5 2EFBE18F2ED8AE0D4648B68596DFA0 ...

  5. Go语言恶意样本分析

    样本信息 样本MD5 6BC5F53D4082F12DD83ACA45BAE81E64 样本编译语言 go语言 样本行为分析 通过对样本运行的动态行为进行分析,样本主要行为如下: 创建进程获取系统信息 ...

  6. 基于AI+大数据技术的恶意样本分析(一)

    阅读Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware翻译及笔记 使 ...

  7. 学术派 | 基于AI的视频精彩度分析技术

    前 言 随着视频数量的爆发式增长,特别是近年来短视频领域的迅速崛起,视频已经成为大部分互联网用户娱乐的首要选择,占据了用户大部分娱乐时间.面对如此海量的视频,如何帮助爱奇艺用户从冗长的视频中筛选出更具 ...

  8. 基于机器学习的恶意样本静态检测的代码详解(ember)

    文章目录 1. 类与类之间的关系 2. 每个类的详细分析 2.1 ByteHistogram 2.2 ByteEntropyHistogram 2.3 SectionInfo 2.4 ImportsI ...

  9. 专业级沙箱与恶意样本的自动化分析

    云妹导读: 沙箱的英文为sandbox,也被译作沙盒,通常用来为一些来源不可信.具破坏力或无法判定其意图的程序提供一个隔离的运行环境,甚至很多专业级的沙箱,本质就是一个增强的虚拟机.沙箱通常可以严格控 ...

最新文章

  1. 报名 | 二值化网络 基于素描图的图像检索论坛
  2. ios 改变图片大小缩放方法
  3. WP7之题样式与数据绑定
  4. 很好很强大,这款AI开发神器的图像标注吊打labelme
  5. [leetcode]101.对称二叉树
  6. jQuery Mobile 学习资料
  7. linux 设备驱动阻塞,深入浅出:Linux设备驱动中的阻塞和非阻塞I/O
  8. jsp android 交互,Android中HTTP几种请求和响应的代码实现
  9. spring源码:@Bean注解解析
  10. Caffe框架-入门浅谈及碰到的坑
  11. 二冲程发动机均值模型仿真
  12. ps2改usb接口_如何将PS2接口键盘、鼠标改成USB接口
  13. cordova 指纹验证登录
  14. 计算圆周率可以根据公式如下:请利用Python提供的itertools模块,我们来计算这个序列的前N项和——python
  15. 手机六大操作系统优缺点比较
  16. 手机投屏不是全屏怎么办_手机投屏不满屏怎么办
  17. 分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求
  18. oracle = 中文生效,prm dul恢复oracle数据库数据表 中文最简易说明
  19. 【JS】JavaScript
  20. CSS - Flexbox总结

热门文章

  1. Thymeleaf实现页面静态化
  2. 【图解】Web前端实现类似Excel的电子表格
  3. vue项目中获取当前设备 操作系统及版本,设备型号,ip,地区信息
  4. android通讯录开发(粗糙实现微信通讯录的功能)
  5. 小白怎么快速入门游戏建模软件C4D?
  6. 99%的人都不知道内网、外网、宽带、带宽、流量、网速之间的区别与联系
  7. 高手都具备“向下兼容”的能力
  8. C语言作业——歌手比赛系统
  9. TIA博途_通过PEEK指令在TP900触摸屏上实现监控所有IO地址的具体方法示例
  10. 2019区块链概念股龙头