AI/ML 转到安全开发生命周期 bug 栏

作者:Andrew Marshall、Jugal Parikh、Emre Kiciman 和 Ram Shankar Siva Kumar

2019 年 11 月

本文档是 Microsoft AETHER 工程实践针对人工智能工作组的一项交付成果,作为对传统安全漏洞进行分类的现有 SDL bug 栏的补充。 它旨在用作 AI/ML 相关安全问题分类的参考。 有关威胁分析和缓解的更多详细信息,请参阅威胁建模 AI/ML 系统和依赖关系

本指南围绕并广泛引用了由 Ram Shankar Siva Kumar、David O'Brien、Kendra Albert、Salome Viljoen 和 Jeffrey Snover 创建的对抗机器学习威胁分类,名为“机器学习中的故障模式”。 请注意,虽然此内容所基于的研究是关于 ML 故障模式下的故意/恶意行为和意外行为,但此 bug 栏补充内容完全围绕会导致安全事件和/或修补程序部署的故意/恶意行为。

威胁 Severity 说明/业务风险/示例
数据中毒 重要到关键

破坏训练数据 - 攻击者的最终目标是污染在训练阶段生成的机器模型,以在测试阶段修改对新数据的预测。

在定向中毒攻击中,攻击者试图对特定示例进行错误分类,从而导致采取或忽略特定操作。

将 AV 软件作为恶意软件提交,以强制将其误分类为恶意软件,并消除在客户端系统上使用目标 AV 软件的情况。

一家公司在一个值得信赖的知名网站上搜集期货数据来训练他们的模型。 数据提供方的网站随后通过 SQL 注入攻击遭到破坏。 攻击者可以随意毒害数据集,而正在训练的模型并不知道数据已被感染。

模型偷窃 重要到关键

通过合法查询基础模型进行重新创建。 新模型的功能与基础模型的功能相同。 重新创建模型后,可以对其进行反演以恢复特征信息或对训练数据进行推理。

公式求解 - 对于通过 API 输出返回类概率的模型,攻击者可以创建查询来确定模型中的未知变量。

路径查找 - 一种攻击方式,攻击者利用 API 特殊性来提取目录树在对输入进行分类时所做出的“决策”。

可转移性攻击 - 攻击者可以训练本地模型(可能是通过向目标模型发出预测查询),并用它来创建转移到目标模型的对抗示例。 如果攻击者提取到你的模型并发现其易受某种类型的对抗输入的攻击,则提取模型副本的攻击者可以完全脱机开发针对生产部署模型的新攻击。

在 ML 模型用于检测对抗行为的设置(如识别垃圾邮件、恶意软件分类和网络异常检测)中,模型提取可以辅助逃逸攻击

模型反演 重要到关键

机器学习模型中使用的专用特征可以恢复。 这包括重建攻击者无权访问的专用训练数据。 这是通过查找可最大化返回的置信度的输入来实现的,取决于与目标匹配的分类。

例如:根据猜测或已知名称和 API 访问重建面部识别数据以查询模型。

物理领域中的对抗示例 严重 这些示例可以在物理领域体现出来,例如,就像一辆自动驾驶的汽车由于某种颜色的光线(对抗输入)照射在停车标志上而被骗驶过停车标志,迫使图像识别系统不再将停车标志视为停车标志。
攻击 ML 供应链 严重

由于训练算法需要使用大量资源(数据 + 计算),因此目前的做法是重用大型公司训练的模型,并根据现有任务对已有模型稍加修改(例如:ResNet 是 Microsoft 提供的常用图像识别模型)。

这些模型是通过 Model Zoo(Caffe 托管常用图像识别模型)管理的。

在此类攻击中,攻击者会攻击 Caffe 中托管的模型,进而危及使用该模型的人的安全。

恶意 ML 提供方提供的带有后门的算法 严重

破坏基础算法

恶意的 ML 即服务提供方引入带有后门的算法,可用来恢复专用训练数据。 这使得攻击者能够在仅给出模型的情况下重建敏感数据(例如面部和文本)。

神经网络重新编程 重要到关键

通过攻击者特别设计的查询,ML 系统可被重新编程为一个偏离创建者初衷的任务

面部识别 API 上的弱访问控制使第三方能够合并到旨在损害用户的应用,如深层假脸生成器。

这是一个滥用/帐户撤销应用场景

对抗扰动 重要到关键

在扰动型攻击中,攻击者秘密修改查询以从生产部署模型获得所需响应。 这是对模型输入完整性的破坏,会导致模糊式攻击,最终结果不一定是访问冲突或 EOP,而是损害模型的分类性能。

挑衅者使用 AI 会禁止的某些目标字词,有效地拒绝向名称与“已禁止”字词相匹配的合法用户提供服务,这也证实了这一点。

强制将良性电子邮件归类为垃圾邮件,或使恶意示例无法被检测到。 这也称为模型逃逸或拟态攻击。

攻击者可以设计输入以降低正确分类的置信度,尤其是在高后果应用场景中。 这也可能采用大量误报的形式,这些误报的目的是让管理员或监控系统无法区分合法警报和欺诈警报。

成员资格推理 中等到关键

推断组中用于训练模型的各个成员身份

示例:基于年龄/性别/医院预测手术规程