Stealing Machine Learning Models via Prediction APIs研读报告
Stealing Machine Learning Models via Prediction APIs
摘要:
机器学习(ML)模型可能因其敏感的训练数据、商业价值或在安全应用中的应用而被视为机密。越来越多的情况是,机器学习(ML)模型使用公开可访问的查询接口部署。机器学习即服务系统就是一个例子:这些系统允许用户使用潜在敏感数据对模型进行训练,并向其他用户收取按查询付费的访问费用。
模型机密性和公共访问之间的紧张关系激发了人们对模型窃取攻击的研究。在这种攻击中,一个拥有黑箱访问权限但却不知道机器学习模型的参数或训练数据等先验知识的对手,旨在复制(即“窃取”)模型的功能。与经典学习理论设置不同,机器学习即服务提供可以接受部分特征向量作为输入,并包含预测的置信度值。基于这些实践,我们展示了简单、有效的攻击方法,可以对流行的模型类(包括逻辑回归、神经网络和决策树)提取具有近乎完美保真度的目标机器学习模型。我们演示了这些针对BigML和Amazon机器学习在线服务的攻击。我们进一步表明,从模型输出中忽略置信度值的自然对策仍然存在遭受潜在的有害的模型提取攻击的可能。我们的结果强调了谨慎的ML模型部署和新的模型提取对策的必要性。
1 Introduction
在本文中,我们探讨了模型窃取攻击,它利用了机器学习模型中公共查询与机密性之间的张力。我们考虑一个可以查询机器学习模型以获得模型对输入特征向量的预测的攻击者。这个模型可以被看做一个黑盒模型。攻击者可能知道也可能不知道模型类型(逻辑回归、决策树等)或模型数据数据的分布情况。攻击者的目的是窃取等价或近似等价的机器学习模型。
我们验证了针对各种机器学习模型类型(包括决策树、逻辑回归、支持向量机和深度神经网络)的成功的模型窃取攻击。在某些情况下,我们的攻击可以窃取到莫表模型的精确参数(例如,线性分类器的系数或决策树的路径)。对于一些使用攻击者未知的模型类型、参数或特征的目标,我们还展示了一个成功的初步攻击步骤,包括对这些模型特征进行反向工程。
我们的最成功的攻击依赖于我们调研的所有基于云服务的机器学习及服务平台所返回的丰富信息输出。Google、Amazon、Microsoft和BigML返回的类标签都包含高精度置信度值。他们还可以响应缺乏一个或多个特征的部分查询。
我们通过在一系列适合作为专有数据的公共数据集上训练模型来实验性地评估我们的攻击。我们使用标准的机器学习库在本地验证了这些攻击,然后给出了在机器学习即服务平台(如BigMl和Amazon)的案例研究。对于这两个机器学习即服务平台,我们展示了使用少量查询提取与100%测试输入的目标模型匹配的模型的计算快速攻击,其结果如下表:
在展示了模型窃取攻击对现有服务的广泛适用性之后,我们考虑了机器学习服务可能采用的最明显的潜在对抗策略:忽略置信值,即只输出类标签。
总之,我们探索了模型窃取攻击方法,这是一种实用的学习任务:
(1) 简单的方程求解模型窃取攻击方法:使用非自适应、随机查询来求解目标模型的参数。这些攻击会影响那些输出置信值的各种机器学习模型。
(2) 一种用于窃取决策树模型的新的寻径算法
(3) 针对只输出类别标签的模型窃取攻击,依赖置信值是一个明显对策。
2 Extraction with Confidence Values
我们通过关注返回置信值的预测API来开始模型窃取攻击的研究。我们首先在4.1节介绍一种适用于所有逻辑模型(LR和神经网络)的通用方程求解攻击方法。然后在4.2节,我们提出了两种针对决策树的寻径攻击。
2.1 Equation-Solving Attacks
在本例中,机器学习模型预测API为攻击者提供了示例(x; f(x)),可以看成是未知模型参数中的方程。对于有大量数据的模型,可以有效地求解这些方程系统,从而恢复f(或它的一些良好的近似)。
我们通过实验来评估设计的攻击方法。使用一套合成的或公开可用的数据集作为专有数据的替代品,这些专有数据可能称为提取攻击的目标。下表显示了本节使用的数据集。
2.1.1 Binary logistic regression
作为一个简单的起点,我们考虑logistic回归(LR)的情况。LR模型基于若干独立特征,通过估计二进制响应的概率来执行二进制分类(c = 2)。形式上,LR模型由参数ω∈R^d和
β∈R定义,并输出概率f_1 (x)=σ(ω∙x+β),其中σ_t=1⁄((1+e^(-t)))。LR是一个线性分类器:它在分隔两个类的特征空间X(由(ω∙x+β=0)定义)中定义了一个超平面。
给出一个示例(x;F(x)),得到线性方程ω∙x+β=σ^(-1) (f_1 (x))。因此,对于恢复ω和β,d+1个样本即是必要的也是充分的(如果查询的x是线性无关的)。
2.1.2 Multiclass LRs and Multilayer Perceptrons
我们现在表明,这种方程求解攻击方法可以扩展到具有“逻辑”层的所有模型类,包括多类(c > 2) LR和更深层次的神经网络。
多类逻辑回归模型(MLR)结合c个二元逻辑回归模型,其中每个模型都有参数ω_i,β_i,共同组成了一个多类逻辑回归模型。一个MLR模型f由参数ω∈R^cd 和β∈R^c定义。每一个样本(x,f(x))可以提供c个关于ω和β的方程。所有样本提供的方程组是非线性的,没有解析解。解决此类系统的一个常用方法是最小化适当的损失函数,例如logistic Loss。有了正则化项,损失函数是强凸的,因此可以收敛到全局最小值。因此,可以很容易地通过方程求解方法对任何MLR实现进行模型窃取攻击。
这个方法也可以扩展到深度神经网络。如多层感知机(MLP)
2.1.4 Model Inversion Attacks on Extracted Models
对模型的访问可以推断模型的隐私信息,特别是关于训练集的信息。模型反转攻击就是通过访问分类器f来找到使第i个类的分类概率最大化的输出x_opt。
然而这种攻击在白盒设置中工作良好,因为攻击者知道f及其参数。但在黑盒设置中,对预测API进行远程查询,并结合数值逼近技术,虽然可以成功地进行攻击,但效率要低得多。而且,黑盒攻击本质上要求自适应地查询f。
本文中提出了一种新的攻击方式,首先尝试窃取一个替代模型f^~≈f,然后将其与白盒反转攻击一起使用。该方法将自适应查询替换为对f的非自适应“批处理”查询,然后进行局部计算。我们证明了模型窃取于模型反转结合比直接执行黑盒反转攻击需要的查询和时间更少。
2.2 Decision Tree Path-Finding Attacks
与逻辑回归模型不同,决策树模型并不将类别概率作为其输入的连续函数来计算。相关,决策树将输入控件划分为离散区域,每个区域都有一个标签和置信度。我们提出了一种新的寻径攻击,他利用API的特殊性来提取决策树在对输入进行分类时所采取的“决策”
我们定义的决策树模型允许对分类特征进行二元和队员分割,在数字特征上进行二元分割。树的每个叶子都有一个类标签和一个置信度分数。
我们提出的攻击方法的关键思想是使用API在预测查询上提供的丰富信息,作为输入在书中遍历的路径的伪标识符。通过改变每一个输入特性的值,我们找到要满足的谓词,以使输出遵循树中的给定路径。我们还将利用查询不完整输入的能力,其中每个特征x_i属于空间X_i∪{⊥}。处理这种输入的一种方法是用输出值标记树中的每个节点。在一个输入上,我们遍历树,直到到达一个叶子或内部节点,该叶子或内部节点在缺失的特性上进行分割,然后输出该叶子或内部节点的值。
现在我们提出了寻径攻击(如下图算法1),它假设一个叶子表示oracle返回每个叶子的唯一标识符。我们将进一步放宽唯一性假设。攻击从一个随即输出x开始,并从oracle返回叶子id。然后我们使用下面描述的LINE SEARCH (for continuous features) 和 CAT SPLIT (for categorical features)程序搜索为使x保持在该叶子节点中所必须满足的所有约束条件。然后,我们根据这些信息为未访问的叶子创建新的查询。一旦找到了所有的叶子节点,算法将返回每个叶子节点对应的x的约束条件。
2.2.2 Attack Evaluation
在我们的实验中,我们从BigML下载了八棵公共决策树(如下表所示),并使用可用的API在本地访问他们。
为了模拟黑盒访问,我们首先向BigML发出在线查询,以确定服务响应中包含的信息。具体来说,我们在查询响应中使用以下字段:
(1)Prediction: 这个条目包含预测的类标签(分类)或实值输出(回归)
(2)Confidence: 对于分类和回归树,BigML基于每个节点[11]预测的置信区间计算置信得分。预测值和置信度构成了节点的id。
(3)Fields: 对黑盒查询的响应包含一个“fields”属性,该属性列出了输入查询中或树中所遍历的路径上出现的所有特性。如果一个部分查询x到达一个内部节点v,这个条目告诉我们v在哪个特征上分裂(特征在’ fields '条目中,但不在输入x中)。我们利用这个属性来进行自顶向下攻击变体。
下表显示了我们的攻击结果。对于每棵树,我们给出它的叶子数量、唯一叶子id的数量和树的深度。我们展示了算法1和不完整查询的“自顶向下”变量的成功率。查询部分输入极大地改善了我们的攻击:我们需要更少的查询(除了Steak Survey模型,算法1只访问了所有叶子的一小部分,因此成功率很低),并且对具有重复叶子id的树实现了更高的准确性。正如预期的那样,当所有叶子都有唯一的id时,这两种攻击都实现了完美提取。虽然分类树并不总是如此,但回归树更可能如此,因为在回归树中,标签和置信度得分都取真实值。也许令人惊讶的是,自顶向下的方法也完全提取了一些具有大量重复叶子id的树。这种攻击也很有效:自顶向下的方法提取树的时间不到10秒,算法1提取最大的树的时间不到6分钟。对于针对ML服务的在线攻击(下面将讨论),这个代价被发出的固有自适应预测查询的延迟所抵消。
3 Online Model Extraction Attacks
3.3 Discussion
额外的特征提取器。在我们考虑的一些ML服务中,用户可能会启用进一步的特征提取器。常见的转换是特征缩放或归一化。如果可以访问训练数据统计结果,则在本地应用转换是较为容易的。更普遍的是,对于具有线性输入层的模型(即logistic回归、线性支持向量机、MLPs),缩放或归一化可以被视为应用于学习权值,而不是输入特征。
学习未知的模型类或超参数。对于我们的在线攻击,我们直接从ML服务或其文档中获得关于f的模型类、启用的特征提取ex和其他超参数的信息。更一般的说,如果A对某些模型特征没有完全确定性,他可能会将猜测范围缩小到一个较小的范围。
我们对Amazon服务的攻击采用的方法是:我们首先对文档中未知名的模型特征进行猜测(例如,我们没有发现提到一次性编码,或者缺少的输入是如何处理的)。然后我们通过连续的提取尝试来评估我们的假设。我们的结果表明,Amazon使用softmax回归,并没有未缺失值创建二元预测器。
4 Extraction Given Class Labels Only
上两节给出的成功的攻击显示了返回置信值的危险性。因此我们建议只返回标签
再训练的方法。引入一种基于给定的输入-输出对对模型进行局部再训练的策略。非正式地,我们希望通过提取一个在查询样本上实现低训练误差的模型,可以有效地逼近目标模型的决策边界。以下是三种再训练策略。
1. 使用统一查询进行再训练:随机均匀采样m个点,然后查询oracle,并在这些样本上训练一个模型f^~。
2. 线性搜索再训练:使用行搜索技术向oracle发出m个自适应查询,以找到接近模型决策边界的样本。然后在m个查询样本上训练一个模型f^~。
3. 适应性再训练:该策略应用了主动学习技术。给定查询轮数r和查询预算m,首先在m/r均匀点上查询oracle,并训练一个模型f^~。在查询r轮中,他会沿着模型的决策边界选择新的点,并在再训练模型之前将这些点发送给oracle。
4.1 Linear Binary Models
我们首先探讨在low-meek攻击可以用用的情况下,各种方法的工作效果如何。我们评估了他们的攻击和我们的三种逻辑回归模型再训练策略。
结果表明,搜索决策边界附近点的再训练策略明显优于简单的统一再训练策略。适应性策略是三种策略中最有效的。在预算相对比较低的情况下,他甚至优于low-meek攻击。然后,如果预算足够大,可以在每个维度上进行线性搜索,那么low-meek攻击显然是最有效的。
4.2 Multiclass LR Models
Low-meek攻击并不适用于多类LR模型,即使决策边界是线性边界的组合。因此,我们将重点评估我们引入的三种再训练策略攻击方法,以评估我们期望在现实应用中发现的ML模型类型。
我们这里重点关注softmax模型。因为当只提供类标签时,softmax和onevs-rest模型具有相同的输出行为:在这两种情况下,输入x的类标签由〖argmax〗_i (ω_i∙x+ β_i)给出。
结果表明:自适应策略明显表现最好,而线性搜索策略再统一的再训练中并没有改进,可能是因为线性搜索必须跨越多个决策边界。
5 Extraction Countermeasures
在以上各节中,我们展示了给定预测API,可以有效地窃取到ML模型。在第6节中,我们分析了针对攻击最明显的防御:最小化预测API。然而,我们进一步实验表明,即使一个API仅提供类标签,成功的模型窃取攻击仍然可能发生,尽管查询成功很高。下面我们谈论进一步的对抗策略。
降低预测数据精度。一种可能的防御方法是将预测结果四舍五入到一定精度。在上几节的实验中可以看到,ML API在回答查询时已经具有一定的精度。例如,BigML报告的置信值为5位小数,而Amazon提供的值为16位有效数字。
差分隐私(DP)。差分隐私及其变体已被探索作为保护机制,特别是ML训练数据的隐私。DP学习已被应用于回归分析、支持向量机、决策树和神经网络。
集成方法。像随机森林这样的几何方法返回的是由许多单个模型的预测的集合。虽然我们还没有将集成方法作为目标进行实验,但这种方法可能对窃取攻击更为有效。
6 Conclusion
本文演示了当前MLaas提供商公开的灵活预测API如何支持新的模型窃取攻击。通过本地实验和对两大提供商BigML和Amazon的在线攻击,我们展示了利用通过API特性进行攻击的效率和广泛适用性。
本文的核心在于提出了一种具有逻辑输出层模型的泛型方程求解攻击方法和一种新的决策树模型寻径算法。我们进一步探讨了应对这些攻击的潜在对策,最明显的是限制ML API提供的信息。在学习理论的基础上,我们展示了一个攻击者如何在只能获得自适应选择输入的类别标签的情况下,发起较低效的、但潜在有害的再训练攻击。
Stealing Machine Learning Models via Prediction APIs研读报告相关推荐
- 【全文翻译】Membership Inference Attacks Against Machine Learning Models
针对机器学习模型的成员推理攻击 I. INTRODUCTION II. MACHINE LEARNING BACKGROUND (机器学习背景) III. PRIVACY IN MACHINE LEA ...
- 【文章思路、算法分析】Membership Inference Attacks Against Machine Learning Models
白菜苗 1.成员推理攻击目的 2.阴影模型构建 3.攻击模型的构造 4.算法分析 5.总结 如果你不小心又亦或是专门寻找这篇文献相关知识,那么很高兴能和你们分享这篇文章. 何谓成员推理攻击,陌生而又抽 ...
- Explaining complex machine learning models with LIME
(This article was first published on Shirin's playgRound, and kindly contributed to R-bloggers) 272 ...
- 机器学习肝炎预测模型machine learning for hepatitis prediction model
作者Toby,来自机器学习肝炎预测模型 肝炎是由细菌.病毒.寄生虫.酒精.药物.化学物质.自身免疫等多种致病因素引起的肝脏炎症的统称.儿童及成年人均可患病,病毒感染导致的病毒性肝炎较为常见. 由于过度 ...
- DECISION-BASED ADVERSARIAL ATTACKS: RELIABLE ATTACKS AGAINST BLACK-BOX MACHINE LEARNING MODELS 论文解读
Abstract 这篇文章中我们介绍了Boundary Attack, a decision-based attack that starts from a large adversarial per ...
- Get a Model! Model Hijacking Attack Against Machine Learning Models
文章目录 一.概要 二.介绍Introduction 模型劫持攻击 数据集 贡献 三.前置内容 机器学习分类设置 数据中毒攻击 问题陈述 四.几种模型攻击方式 普通攻击管道 模型劫持vs后门vs数据中 ...
- CloudLeak: Large-Scale Deep Learning Models一种黑盒的攻击方法
background state of the art(已有的对比项) solution/contribution(系统还是算法贡献) evaluation conclusion/future wor ...
- 如何使用Apache的Prediction IO Machine Learning Server构建推荐引擎
by Vaghawan Ojha 通过瓦哈万·欧哈(Vaghawan Ojha) 如何使用Apache的Prediction IO Machine Learning Server构建推荐引擎 (How ...
- AI:Algorithmia《2020 state of enterprise machine learning—2020年企业机器学习状况》翻译与解读
AI:Algorithmia<2020 state of enterprise machine learning-2020年企业机器学习状况>翻译与解读 目录 <2020 state ...
- Paper:《Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类》翻译与解读
Paper:<Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类>翻译与解读 目录 <Multimoda ...
最新文章
- 网络故障排除连载之一:常用排除方法综述
- 计算机的发展英语600词,急求一份有关计算机“存储器”的英语作文,600词左右可以多加分!...
- python 学习之输出流重定向
- windows远程桌面连接提示发生身份验证错误,要求的函数不受支持
- typedef 与 define
- Nacos源码BeatInfo
- 2019一起走,健康幸运全都有
- 华硕服务器显示模块,华硕远程管理模块 ASMB4-iKVM 华硕服务器主板专用 现货 IPMI...
- html手机网站font-size:16em,px、em、rem
- SpringCloud 从菜鸟到大牛之六 消息和异步 MQ
- 文件服务器的未分页内存
- el-dropdown 事件
- python里常用的正则表达式
- mysql数据恢复某一时间点_mysql时间点数据恢复
- Vue-pdf预览pdf文档
- Android LayoutInflater源码分析
- 腾讯云 + picgo图床功能
- 网吧还原软件测试简历,测试人员-斯普林网吧客户服务系统.doc
- 有教学用计算机,在计算机教学中运用有效教学方法初探
- 将本地项目上传至码云仓库