通过预测API窃取机器学习模型
作者:媒体转发 时间:2018-04-25 01:34
由于机器学习可能涉及到训练数据的隐私敏感信息、机器学习模型的商业价值及其安全中的应用,所以机器学习模型在一定程度上是可以认为是机密的。但是越来越对机器学习服务提供商将机器学习作为一种服务部署在云上。笔者认为:这样部署机器学习即服务是存在安全隐患的,攻击者利用对模型的API可以窃取模型。
1.问题描述由于机器学习可能涉及到训练数据的隐私敏感信息、机器学习模型的商业价值及其安全领域中的应用(垃圾邮件过滤、恶意软件检测、流量分析等),所以机器学习模型在一定程度上是可以认为是机密的。但是,机器学习模型不断地被部署,通过公共访问接口访问模型, 例如机器学习即服务( Machine Learning as a service, MLaaS):用户可以在MLaaS 平台利用隐私敏感数据训练机器学习模型,并且将访问接口发布给其他用户使用,同时收取一定的费用。针对机器学习模型机密性和其公共访问的矛盾上,笔者提出了机器学习模型提取攻击:攻击者在没有任何关于该模型的先验知识(训练数据,模型参数,模型类型等)情况下,只利用公共访问接口对该模型的黑盒访问,从而构造出和目标模型相似度非常高的模型。
MLaaS提供商 白盒(其他用户是否可以付费下载模型) 是否商业化(用户发布模型其他用户使用) API是否输出置信度亚马逊 √
微软 √
BigML √ √ √
PredictionIO √
Google √ √
表1 MLaaS提供商的主要特点

图1 机器学习即服务商业化模式
2.攻击模型当用户在MLaaS平台上训练了自己的机器学习模型,并发布该模型给其他用户使用,并利用其他用户每次对模型的访问收取一定的费用,赚回自己在训练模型和标定数据投入时的成本。如果利用API访问目标模型的是攻击者,该攻击者利用对目标模型的尽量少地访问,试图在本地构造一个与目标模型相近甚至一致的模型。
笔者认为攻击可能出于以下目的窃取目标模型:
1. 想免费使用模型:模型训练者将模型托管在云上,通过提供API的方式来提供对模型的访问,通过对每次调用 API 的方式来收费,恶意的用户将企图偷取这个模型免费使用。这将破坏MLaaS的商业化模式,同时很可能存在这种情况:攻击者窃取模型所花的费用是低于模型训练者标定训练集和训练模型的成本。
2. 破坏训练数据隐私性:模型提取攻击会泄露训练数据的隐私,越来越多的研究工作表明:利用对模型的多次访问可以推断出训练数据信息,因为模型本身就是由训练数据所得到的,分析所提取到的模型,必然可以推断训练数据。具体可以参考这篇文章:Membership Inference Attacks against Machine Learning Models .
3.绕过安全检测:在越来越多的场景中,机器学习模型用于检测恶意行为,例如垃圾邮件过滤,恶意软件检测,网络异常检测。攻击者在提取到目标模型后,可以根据相关知识,构造相应的对抗样本,以绕过安全检测。参考文章:Evading Classifiers by Morphing in the Dark

图2 模型提取攻击场景
3.模型提取攻击笔者首先将引入针对输入返回置信度输出的场景,然后利用二分类让大家明白如何实现解方程攻击,进而讲解多分类场景中的方程求解攻击。由于决策树算法的置信度计算和逻辑回归(LR)、支持向量机(SVM)、神经网络(NN)算法不同,笔者还将讲解如何提取决策树模型。同时还进一步讨论当预测API隐藏置信度,只输出分类标签场景下的模型提取攻击。
3.1方程求解攻击



