使用软件会暴露容易受到攻击并造成严重后果的漏洞。虽然存在许多不同的漏洞,但其后果分为少数几类。本文解释了攻击机器学习 (ML) 漏洞的后果如何归入这些相同类别。然后将这些后果与特定于 ML 的攻击、它们发生的上下文以及已建立的缓解它们的方法保持一致。这些防御性对策可以支持系统 ML 元素的安全性,并更大程度地保证使用 ML 的系统将按计划运行。
本文提供了一种系统方法来解决使用 ML 的系统的攻击、后果和缓解措施。它解释了 ML 技术生命周期中的每一个问题,清楚地解释了要担心什么、何时担心以及如何减轻它,同时假设对 ML 细节了解很少。
描述了软件系统通常面临的损害类型,并将它们与采用机器学习的系统所特有的公认后果类别联系起来。然后,我们解释导致这些后果的攻击向量。然后,我们在最广泛的类别中描述 ML 本身,包括从开始到部署和执行的生命周期。然后,我们确定生命周期中存在哪些漏洞,这些漏洞允许威胁对系统发起针对 ML 的攻击。然后,我们通过不同的示例对 ML 漏洞、攻击和缓解措施进行更深入的检查。
了解 ML 系统的生命周期(其中漏洞存在于生命周期中)以及攻击利用这些漏洞可能造成的损害,可以对采用 ML 所产生的风险进行明智的评估。我们对 ML 漏洞、攻击和缓解措施的讨论利用了 NISTIR 8269 文件中中开发的分类法。主要出发点在于将这些概念映射到我们在第 6 节中阐述的 ML 生命周期以及我们对 ML 安全性的系统方法的讨论。