机器学习中的故障模式

Microsoft Corporation 哈佛大学伯克曼互联网与社会研究中心

Ram Shankar Siva Kumar

David O’Brien

Jeffrey Snover

Kendra Albert

Salome Viljoen

2019 年 11 月

简介与背景

在过去的两年里,有关机器学习 (ML) 如何因算法和数据的对抗攻击而出现故障的主题文章就有 200 多篇;如果我们将非对抗故障模式也考虑在内,相关文章的数量还会更多。 大量的文献使得 ML 专业人员都难以跟上对 ML 系统的攻击和防御的节奏,更不用说工程师、律师和决策者们。 然而,随着这些系统变得越来越普遍,了解其故障原因(无论是由攻击者还是由系统固有设计造成)的必要性只会变得更加紧迫。 本文档旨在将这两种故障模式以表格的形式一起加以说明。

  • 有意故障:这种故障是由主动攻击者试图破坏系统以实现其目标而造成的 - 对结果错误分类、推断专用训练数据或窃取底层算法。

  • 无意故障:这种故障是由 ML 系统输出了形式上正确但非常不安全的结果造成的。

我们想要指出的是,还有其他分类和框架分别重点介绍了有意故障模式[1][2] 和无意故障模式[3][4]。 我们的分类将这两种不同的故障模式汇总在一处,并解决以下需求:

  1. 需要为软件开发人员、安全事件响应方、律师和决策者提供一个通用的标准来讨论此问题。 自去年开发该分类的初始版本后,我们与 Microsoft 安全与 ML 团队、23 个外部合作伙伴、标准组织及政府合作,以了解利益干系人如何使用我们的框架。 根据此可用性研究和利益干系人反馈,我们对该框架进行了迭代。

    结果:出现 ML 故障模式时,我们常常发现软件开发人员和律师在心理上将 ML 故障模式归咎于传统的软件攻击,如数据泄露。 因此,在整篇文章中,我们尝试从技术和策略角度来重点介绍机器学习故障模式与传统软件故障的实际不同之处。

  2. 需要一个通用平台,使工程师能够在其上构建和集成现有软件开发和安全实践。 总的来说,我们希望该分类不仅仅是一种教育工具 - 我们还希望它能实现有形的工程成果。

    结果:Microsoft 以该分类作为标准,为整个组织修改了其安全开发生命周期流程。 具体而言,Microsoft 的数据科学家和安全工程师现在共享此分类的通用语言,从而能够更高效地在将 ML 系统部署到生产环境之前对其进行威胁建模;安全事件响应方还提供一个 bug 栏,用于对特定于 ML 的这些全新威胁进行会审(Microsoft 安全响应中心和所有 Microsoft 产品团队使用的漏洞分类和响应的标准流程)。

  3. 需要使用通用词汇在决策者和律师之间描述这些攻击。 我们相信,描述不同的 ML 故障模式并分析如何约束其危害是制定明智政策的良好开端。

    结果:该分类是面向广泛的跨学科受众编写的,因此,无论决策者是从常规的 ML/AI 角度看问题,还是从特定领域看问题(如错误消息/医疗保健),都会发现该故障模式目录很有帮助。 我们还重点介绍了解决故障模式所适用的任何法律干预。

另请参阅 Microsoft 的威胁建模 AI/ML 系统和依赖项以及机器学习漏洞的 SDL Bug 栏透视

如何使用本文档

首先我们要承认,这是一个“活”文档,其内容会随着威胁形势的演变而不断变化。 我们也不会在这里对这些故障模式提供技术缓解措施,因为采取何种防御措施需针对特定场景,且应综合考虑威胁模型和系统体系结构。 威胁缓解方案基于当前的研究提出的,希望这些防御措施也会随着时间的推移而发展。

对于工程师,我们建议浏览可能的故障模式概述,并跳转到威胁建模文档。 这样一来,工程师就可以识别威胁、攻击和漏洞,并使用该框架来规划可用的对策。 接下来,我们将向你介绍 bug 栏,该栏将分类中的这些新漏洞与传统软件漏洞编排在一起,并为每个 ML 漏洞提供评级(如关键、重要)。 可将此 bug 栏轻松地集成到现有事件响应流程/操作手册中。

对于律师和决策者,此文档将 ML 故障模式组织在一起,并引入一个框架,用于分析与任何探索政策选择的人相关的关键问题,例如此处所做的工作[5][6]。 具体来说,我们对故障和后果进行了分类,以便决策者能够开始对原因加以区分,这可促使公共政策计划提升 ML 安全和安全性。 我们希望决策者能够利用这些分类,以开始详细说明现有法律制度可能(不可能)充分约束的新出现的问题、哪些历史法律制度或政策解决方案可能处理过类似危害、以及我们应在哪些方面格外注意公民自由问题。

文档结构

在有意故障模式和无意故障模式这两个部分中,我们提供了攻击的简要定义,以及从文献中引用的说明性示例。

在有意故障模式部分,我们还提供了其他字段:

  1. 攻击试图威胁 ML 系统中的哪些方面 - 机密性、完整性或可用性? 我们将机密性定义为保证 ML 系统的组件(数据、算法、模型)只能由授权方访问;将完整性定义为保证 ML 系统只能由授权方修改;将可用性定义为保证 ML 系统可由授权方访问。 机密性、完整性和可用性统称为 CIA 三元组。 对于每种有意故障模式,我们都尝试识别 CIA 三元组的哪一方面会受到损害。

  2. 发动此攻击需要掌握多少知识 - 黑盒还是白盒? 在黑盒型攻击中,攻击者无法直接访问训练数据、不知道所使用的 ML 算法,也无法访问模型源代码。 攻击者只查询模型并观察响应。 在白盒型攻击中,攻击者知道 ML 算法或能够访问模型源代码。

  3. 关于攻击者是否违反传统的访问/授权技术概念的注释。

有意故障摘要

场景编号
攻击
概述
是否违反传统的访问/授权技术概念?
1
扰动攻击
攻击者修改查询以获取适当的响应
2
中毒攻击
攻击者污染 ML 系统的训练阶段以获得预期结果
3
模型反演
攻击者通过仔细查询恢复模型中使用的机密功能
4
成员资格推理
攻击者可以推断给定的数据记录是否是模型的训练数据集的一部分
5
模型偷窃
攻击者可以通过精心设计的查询恢复模型
6
重编程 ML 系统
重新调整 ML 系统的用途以执行没有为其编程的活动
7
物理领域中的对抗示例
攻击者将对抗性示例引入物理域来破坏 ML 系统,例如:佩戴 3D 打印特殊眼镜来骗过面部识别系统
8
恶意 ML 提供方恢复训练数据
恶意 ML 提供方可查询客户使用的模型,并恢复客户的训练数据
9
攻击 ML 供应链
攻击者在下载要使用的 ML 模型时破坏该模型
10
后门 ML
恶意 ML 提供方利用特定触发器激活后门算法
11
利用软件依赖关系
攻击者利用传统软件漏洞(例如缓冲区溢出)来迷惑/控制 ML 系统

无意故障摘要

场景 #
故障
概述
12
奖励攻击
强化学习 (RL) 系统由于既定奖励与实际奖励不匹配而以非预期方式运行
13
副作用
RL 系统在试图达到其目标时破坏环境
14
分配转移
系统在一种环境下进行了测试,但无法适应另一种环境中的变化
15
自然对抗示例
在没有攻击者扰动的情况下,ML 系统由于难例挖掘而失败
16
常见损坏
系统无法处理常见损坏和扰动,例如,将图像倾斜、缩放或向其添加噪声。
17
测试不完整
ML 系统并未在要进行实际操作的环境中进行测试。

有意故障详细信息

场景 # 攻击类 说明 危害类型 方案
1 扰动攻击 在扰动型攻击中,攻击者秘密修改查询以获得所需响应 完整性 图像:向 X 射线图像添加噪声,使预测从扫描正常变为扫描异常 [1][黑盒]

文本翻译:操纵特定字符,导致翻译不正确。 攻击可禁止显示特定单词,甚至可以完全删除该单词[2][黑盒和白盒]

语音:研究人员展示了在给定一个语音波形的情况下,另一个波形可以进行完全复制,但转录成完全不同的文本 [3][白盒,但可扩展至黑盒]

2 中毒攻击 攻击者的目标是污染在训练阶段生成的机器模型,以在测试阶段修改对新数据的预测

定向:在定向中毒攻击中,攻击者试图对特定示例进行错误分类

无差别:目的是造成类似 DoS 的效果,使系统不可用。

完整性 在一个医学数据集中,其目标是使用人口信息等预测抗凝血药物沃法林的剂量等。研究人员以 8% 的中毒率引进了恶意样本,其中一半的患者的剂量增加了75.06% [4][黑盒]

在 Tay 聊天机器人中,未来对话被污染,因为过去对话中有一小部分用于训练系统反馈 [5][黑盒]

3 模型反演 机器学习模型中使用的专用功能可以恢复 保密性; 研究人员能够恢复用于训练算法的专用训练数据 [6]。作者通过名字即可重建人脸,并可访问模型,其中 Mechanical Turk 能够使用照片从人群中识别出某人,且准确率达 95%。 作者还能够提取特定信息。 [白盒和黑盒][12]
4 成员资格推理攻击 攻击者可以确定给定的数据记录是否是模型的训练数据集的一部分 保密性 研究人员能够根据各种属性(例如年龄、性别、医院)预测患者的主要手术(例如:患者经历的外科手术)[7][黑盒]
5 模型偷窃 攻击者通过合法查询模型来重新创建底层模型。 新模型的功能与基础模型的功能相同。 保密 研究人员成功模拟了 Amazon BigML 的底层算法。 以 BigML 为例,研究人员可使用 1,150 个查询在 10 分钟内恢复用于预测某人是否应有良好/不良信用风险的模型(德国信用卡数据集)[8]
6 重编程深层神经网络 通过攻击者特别设计的查询,机器学习系统可能被重新编程为一个偏离创建者初衷的任务 完整性、可用性 演示了 ImageNet(用于对几类图像中的一类进行分类的系统)是如何被重新利用来计算方块数量的。 作者以一个假设场景结束了该文章:攻击者通过将 Captcha 图像发送至云托管照片服务中的计算机视觉分类器来破解图像 Captcha,以创建垃圾邮件帐户 [9]
7 物理域中的对抗示例 对抗示例是来自恶意实体的输入/查询,发送它的唯一目的是误导机器学习系统。这些示例可以在物理域中说明 完整性 研究人员利用 3D 技术打印出一支带有定制纹理的步枪,以让图像识别系统误以为它是一只乌龟 [10]

研究人员构造出经特殊设计的太阳镜,用以欺骗图像识别系统,使其无法再正确识别人脸[11]

8 可恢复训练数据的恶意 ML 提供方 恶意 ML 提供方可查询客户使用的模型,并恢复客户的训练数据 保密性 研究人员展示恶意提供方如何引入带有后门的算法,使专用训练数据得以恢复。 他们仅凭模型就能复原人脸和文本。 [12]
9 攻击 ML 供应链[13] 由于训练算法需要使用大量资源(数据 + 计算),因此目前的做法是重用大型公司训练的模型,并根据现有任务对已有模型稍加修改(例如:ResNet 是 Microsoft 提供的常用图像识别模型)。 这些模型是通过 Model Zoo(Caffe 托管常用图像识别模型)管理的。 在此类攻击中,攻击者会攻击 Caffe 中托管的模型,进而危及使用该模型的人的安全。 完整性 研究人员展示了攻击者如何将恶意代码签入一个常用模型中。 不知情的 ML 开发人员下载此模型,并在代码中将其作为图像识别系统的一部分使用[14]。 作者展示了在 Caffe 中存在一个模型,该模型的 SHA1 哈希与作者摘要不匹配,这表明存在篡改。 其中有 22 个模型的 SHA1 哈希没有进行任何完整性检查。
10 后门机器学习 与“攻击 ML 供应链”中类似,在此类攻击场景中,训练过程被全部或部分外包给恶意方,而恶意方企图向用户提供包含后门的定型模型。 带有后门的模型在大多数输入场景中都能正常工作(包括最终用户可能作为验证集保留的输入),但会导致目标分类错误,或降低对于满足某些机密、攻击者选择的属性(我们称之为后门触发器)的输入的模型准确性 机密性、完整性 研究人员创建了一个带有后门的美国路标分类器,该分类器仅在停车标志添加了特殊贴纸后(后门触发器)就将停车标志识别为 20 限速标志。他们现在正在将这项工作扩展到文本处理系统,在该系统中,特定单词将替换为说话人口音的触发器[15]
11 利用 ML 系统的软件依赖关系 在此类攻击中,攻击者不会操纵算法, 而是利用传统软件漏洞,如缓冲区溢出。 保密性、完整性、可用性、 攻击者将已损坏的输入发送至图像识别系统,通过利用其中一个依赖项中的软件 bug 造成该系统错误分类。

无意故障的详细信息

场景 # 攻击类 说明 危害类型 场景
12 奖励攻击 强化学习系统由于指定的奖励和实际预期奖励不一致而以非预期方式运行。 系统安全性 这里汇总了有关 AI 游戏示例的大量文献[1]
13 副作用 RL 系统在试图达到其目标时破坏环境 系统安全性 场景,作者在[2]中的原话:“假设设计师希望 RL 代理(例如我们的清洁机器人)实现某个目标,比如将一个盒子从房间一侧移到另一侧。有时实现这一目标最为有效的方法是执行一些与环境其他部分无关且具有破坏性的操作,比如打翻该路线上装有水的花瓶。 如果只要移动盒子,代理就会得到奖励,那么它可能就会打翻这个花瓶。”
14 分配转移 系统在一种环境下进行了测试,但无法适应另一种环境中的变化 系统安全性 研究人员训练了两个最先进的 RL代理,Rainbow DQN 和 A2C 并模拟避开熔岩。 在训练过程中,RL 代理可成功避开熔岩并实现其目标。 在测试期间,他们略微移动了熔岩的位置,但 RL 代理无法避开它[3]
15 自然对抗示例 系统无法正确识别使用难例挖掘发现的输入 系统安全性 在这里,作者展示了如何通过一个简单的难例挖掘过程[4],通过转发示例来迷惑 ML 系统。
16 常见损坏 系统无法处理常见损坏和扰动,例如,将图像倾斜、缩放或向其添加噪声。 系统安全性 作者 [5] 展示了常见损坏(如对亮度、对比度的更改,向图像添加雾化或噪声)使图像识别指标明显下降
17 实际条件下的测试不完整 ML 系统并未在要进行实际操作的环境中进行测试 系统安全性 [25]中的作者强调,虽然防御者通常会依赖于 ML 算法的可靠性,但他们忽略了实际情况。 例如,与攻击者试图干扰系统的输入相比,他们更容易忽略被风吹走的停车标志(更为实际的情况)。

致谢

我们想要感谢微软人工智能伦理委员会 (AETHER) 的安全工作流成员 Andrew Marshall、Magnus Nystrom、John Walton、John Lambert、Sharon Xia、Andi Comissoneru、Emre Kiciman、Jugal Parikh、Sharon Gillet,以及伯克曼克莱恩的人工智能安全保障工作组成员 Amar Ashar、Samuel Klein、Jonathan Zittrain 为我们提供的有益反馈。 我们还要感谢来自 23 个外部合作伙伴、标准组织和政府组织的评审人员对该分类的形成所做的贡献。

参考文献

[1] Li, Guofu, et al. "Security Matters: A Survey on Adversarial Machine Learning." arXiv preprint arXiv:1810.07339 (2018).

[2] Chakraborty, Anirban, et al. "Adversarial attacks and defences: A survey." arXiv preprint arXiv:1810.00069 (2018).

[3] Ortega, Pedro, and Vishal Maini. "Building safe artificial intelligence: specification, robustness, and assurance." DeepMind Safety Research Blog (2018).

[4] Amodei, Dario, et al. "Concrete problems in AI safety." arXiv preprint arXiv:1606.06565 (2016).

[5] Shankar Siva Kumar, Ram, et al. "Law and Adversarial Machine Learning." arXiv preprint arXiv:1810.10731 (2018).

[6] Calo, Ryan, et al. "Is Tricking a Robot Hacking?." University of Washington School of Law Research Paper 2018-05 (2018).

[7] Paschali, Magdalini, et al. "Generalizability vs. Robustness: Adversarial Examples for Medical Imaging." arXiv preprint arXiv:1804.00504 (2018).

[8] Ebrahimi, Javid, Daniel Lowd, and Dejing Dou. "On Adversarial Examples for Character-Level Neural Machine Translation." arXiv preprint arXiv:1806.09030 (2018)

[9] Carlini, Nicholas, and David Wagner. "Audio adversarial examples: Targeted attacks on speech-to-text." arXiv preprint arXiv:1801.01944 (2018).

[10] Jagielski, Matthew, et al. "Manipulating machine learning: Poisoning attacks and countermeasures for regression learning." arXiv preprint arXiv:1804.00308 (2018)

[11] [https://blogs.microsoft.com/blog/2016/03/25/learning-tays-introduction/]

[12] Fredrikson M, Jha S, Ristenpart T. 2015. Model inversion attacks that exploit confidence information and basic countermeasures

[13] Shokri R, Stronati M, Song C, Shmatikov V. 2017. Membership inference attacks against machine learning models. In Proc. of the 2017 IEEE Symp. on Security and Privacy (SP), San Jose, CA, 22–24 May 2017, pp. 3–18. New York, NY: IEEE.

[14] Tramèr, Florian, et al. "Stealing Machine Learning Models via Prediction APIs." USENIX Security Symposium. 2016.

[15] Elsayed, Gamaleldin F., Ian Goodfellow, and Jascha Sohl-Dickstein. "Adversarial Reprogramming of Neural Networks." arXiv preprint arXiv:1806.11146 (2018).

[16] Athalye, Anish, and Ilya Sutskever. "Synthesizing robust adversarial examples." arXiv preprint arXiv:1707.07397(2017)

[17] Sharif, Mahmood, et al. "Adversarial Generative Nets: Neural Network Attacks on State-of-the-Art Face Recognition." arXiv preprint arXiv:1801.00349 (2017).

[19] Xiao, Qixue, et al. "Security Risks in Deep Learning Implementations." arXiv preprint arXiv:1711.11008 (2017).

[20] Gu, Tianyu, Brendan Dolan-Gavitt, and Siddharth Garg. "Badnets: Identifying vulnerabilities in the machine learning model supply chain." arXiv preprint arXiv:1708.06733 (2017)

[21] [https://www.wired.com/story/machine-learning-backdoors/]

[22] [https://docs.google.com/spreadsheets/d/e/2PACX-1vRPiprOaC3HsCf5Tuum8bRfzYUiKLRqJmbOoC-32JorNdfyTiRRsR7Ea5eWtvsWzuxo8bjOxCG84dAg/pubhtml]

[23] Amodei, Dario, et al. "Concrete problems in AI safety." arXiv preprint arXiv:1606.06565 (2016).

[24] Leike, Jan, et al. "AI safety gridworlds." arXiv preprint arXiv:1711.09883 (2017).

[25] Gilmer, Justin, et al. "Motivating the rules of the game for adversarial example research." arXiv preprint arXiv:1807.06732 (2018).

[26] Hendrycks, Dan, and Thomas Dietterich. "Benchmarking neural network robustness to common corruptions and perturbations." arXiv preprint arXiv:1903.12261 (2019).