AI模型隐私风险及防护技术

2023-05-16

一、背景

随着AI成为新一代关键技术趋势,围绕着AI的服务也越来越普及。特别是结合了云计算以后,机器学习数据的标注、模型训练及预测等服务纷纷上云,为用户提供了强大的算力和优秀的算法,极大方便了广大开发者与企业用户。

但是,随之而来的AI服务隐私泄露风险也日益突显,主要表现在:模型预测服务(白盒or 黑盒)存在泄露训练数据隐私的风险;模型本身在预测服务过程中存在泄露的风险。

二、典型威胁

针对现在流行的MLaaS(Machine-Learning as-a Service)服务模型,一个MLaaS的工作流示意图如下,主要包括了两个阶段: 

  1. 使用数据数据集训练得到模型;
  2. 使用模型提供预测服务。

在这两个阶段中,面临的典型攻击包括: model extraction attack(模型提取攻击)、model inversion attack(模型逆向攻击)和membership inference attack(成员推断攻击)。

1、Model Extraction Attack(模型提取攻击)

模型提取攻击主要指攻击者通过有限次访问预测服务的API接口,从预测值反向推测模型的具体参数或结构,或者结合样本和预测值训练出一个替代模型的过程[1]。

例如,攻击者在使用模型预测服务时,可以通过改变样本中某个特征的值来推测决策树的形态,从而重构一个与模型接近的决策树。Tramèr F等人[1]已经在Amazon,BigML的模型预测服务中进行了攻击,取得了很好的效果。

2、Model Inversion Attack(模型逆向攻击)

模型逆向攻击主要指攻击者从模型预测结果中提取和训练数据有关的信息[2],比如,训练数据的一些敏感特征。

例如,在一个人脸识别的神经网络模型,提供了人脸识别分类的API,对每个人脸的图片,可以输出预测的人名和对应的置信度。攻击者可以随机构建一个图片,以训练数据中某个人名(如Alice)的预测置信度作为目标,采用梯度下降等方法反复根据API预测结果对图片进行修正,从而获得具有较高Alice预测置信度的图片。这个过程间接获取了训练集中关于Alice的隐私图片信息。特别的,在结合了生成对抗网络后,这种攻击手段尤为见效。

3、Membership Inference Attack(成员推断攻击)

成员推断攻击是指攻击者通过访问模型预测API,从预测结果中得知某个特征数据是否包含在模型的训练集中[3]。这类攻击的威胁在于,如果在某个医疗相关的模型中,知道某人的医疗记录参与某个疾病模型的训练,则可能推断出此人患有这种疾病。

如攻击者可以根据输入从预测API得到分类置信度,由此获得高置信度的数据集S(或者是符合预测模型分布的数据集)。随后,攻击者利用S可以训练出一系列shadow models,并使用这些shadow models观测某一数据是否存在S中所引起的预测分类置信度的变化,进而可以训练出一个attack model。最后,对于某个需要推断的成员数据,攻击者用模型预测API得到分类置信度作为attack model的输入,最终可获得这个成员是否在训练数据集中的结果。在这种攻击方式中,攻击者仅需要得到预测分类的置信度,不需要知道模型结构、训练方法、模型参数、训练集数据分布等信息。特别对于过拟合的模型,这种攻击更有效[3]。

三、防御手段

1、模型结构防御

面向模型的防御是通过对模型结构做适当的修改,减少模型泄露的信息,或者 降低模型的过拟合程度,从而完成对模型泄露和数据泄露的保护。

Fredrikson[104] 等人提出当目标模型为决策树时,可使用 CART 决策树的变种, 将样本的敏感特征的优先级调高或调低。他们通过实验证明,当敏感特征在决策树 的根节点和叶子节点层级时,对 Model Inversion 攻击能够达到较好的防御效果,其 中当敏感属性位于根节点时,能达到最好的防御效果。

Shokri[12] 等人和 Ahmed[77] 等人提出可以在目标模型中添加 Dropout 层,或 者使用 Model Stacking 的方法将不同的元学习器聚合在一起,又或者在目标模型中 添加正则项。通过实验,他们发现当目标模型使用上述方法后,能显著地减少成员 推断攻击的准确率。

Nasr[78] 提出了一种基于对抗学习的防御方法,他们认为如果能计算出当前模 型抵抗成员推断攻击的成功率,并将其作为一个对抗正则项加入到损失函数中,那 么在训练过程中使用 MIN-MAX 的对抗训练方式,最终就可以训练出一个有效抵抗 成员推断攻击的模型。该模型受到的成员推断攻击的成功率将存在一个上界,我们 可以使这个上界足够小的同时,让模型仍然保持有较高的分类准确度。

此外,Wang[105] 等人构建了 MIASec,他们提出可以对训练数据在目标模型的 关键特征上进行特定的修改,使模型对成员数据和非成员数据的预测向量的分布难 以区分,进而完成对成员推断攻击的防御。 如前文所说,模型逆向攻击的核心原因是输出向量包含了训练样本的信息,成 第四章 AI 威胁常用防御技术 42 员推断攻击的核心原因是模型对训练样本和测试样本的预测向量的分布不一致。因 此,防御模型逆向攻击就是尽可能地降低输出向量与输入向量之间的关联,防御成 员推断攻击就是尽可能地缩小输出向量的分布差异。面向模型的防御旨在修改模型 的结构和损失函数,使目标模型给出的输出向量中包含尽可能少的信息,从而取得 较好的防御效果。但这种防御方式仍有缺陷,它会对目标模型的性能有较大影响,导 致其分类准确度出现波动。因此,防御方需要在模型的性能与其鲁棒性之间做出平 衡。

2、查询控制防御

现有的模型隐私攻击都依赖于从预测服务API获取预测输出信息。

查询控制防御是指防御方可以根据用户的查询行为进行特征提取,完成对隐私 泄露攻击的防御。攻击者如果想要执行隐私泄露攻击,需要对目标模型发起大量的 查询行为,甚至需要对自己的输入向量进行特定的修饰,从而加快隐私泄露攻击的 实施。用于攻击目的对预测API的访问分布和正常使用模型预测服务的访问分布是有区别的。如果能识别出这种区别,那么可以针对性对攻击访问请求进行阻断,从而防止攻击的发生。

查询控制防御主要包 含两类:异常样本检测和查询行为检测。

优缺点:防御方法的针对性不强,效果不够 好,误分类的概率较大。查询控制防御主要是在攻击模型的训练过程中起作用,对 已训练好的攻击模型无能为力。此外,如果攻击者知道目标模型采用了查询控制防 御,他们也有许多方法可以绕过这种防御方法,比如设计更难以被检测的异常样本, 或者采用虚拟 IP 等方式绕过目标模型的检测。

3、信息混淆防御

面向数据的防御是指对模型的预测结果做模糊操作。通过这些模糊操作,在保 证 AI 模型输出结果正确性的前提下,尽可能地干扰输出结果中包含的有效信息,从 而减少隐私信息的泄露,使得攻击者在试探的过程中难以扑捉到置信度的详细变化,从而提高了攻击收敛的难度[1];

数据模糊操作主要包含两类:

  • 截断混淆,即对 模型返回的结果向量做取整操作,抹除小数点某位之后的信息 [7, 73];
  • 噪声混淆,即对输出的概率向量中添加微小的噪声,从而干扰准确的信息 [75]。

差分隐私技术可以在模型训练过程中或者在最终的模型参数中,为敏感信息添加随机噪声,使得攻击者无法探测到原始训练数据的变化对于模型输出的影响,从而增加了模型提取、训练集探测等攻击的难度[5];

优缺点:种防御方法依然具有局限性。如果对输出 向量的修饰程度较小,则其抵抗攻击的能力也不会很好;如果对输出向量的修饰程 度较大,则会影响分类数据的可用性。也就是说,这里仍然需要保证隐私性与可用 性之间的平衡。

4、集成方法

训练集隐私信息进行探查的攻击方式(如成员推断攻击),所依赖的原理是模型本身的泛化度不够,存在一定过拟合现象。所以,对于具有某些特征的输入,模型的预测输出可以很容易与其它输入的预测结果区别开来。

因此类似于PATE(Private Aggregation of Teacher Ensembles)的方法中,采用了将训练数据集进行切分,单独训练出一批model,随后在预测的时候使用集成学习的方法(ensemble)对这些模型的输出结果进行投票,并利用差分隐私对投票结果进行加噪扰动,使得最终的预测结果屏蔽了模型过拟合现象带来的影响[6]。

参考文献1:

[1]    Tramèr F, Zhang F, Juels A, et al. Stealing machine learning models via prediction apis[C]//25th {USENIX} Security Symposium ({USENIX} Security 16). 2016: 601-618.

[2]    Fredrikson M, Jha S, Ristenpart T. Model inversion attacks that exploit confidence information and basic countermeasures[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. ACM, 2015: 1322-1333.

[3]    Shokri R, Stronati M, Song C, et al. Membership inference attacks against machine learning models[C]//2017 IEEE Symposium on Security and Privacy (SP). IEEE, 2017: 3-18.

[4]    Kesarwani M, Mukhoty B, Arya V, et al. Model extraction warning in mlaas paradigm[C]//Proceedings of the 34th Annual Computer Security Applications Conference. ACM, 2018: 371-380.

[5]    Abadi M, Chu A, Goodfellow I, et al. Deep learning with differential privacy[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2016: 308-318.

[6]    Papernot N, Abadi M, Erlingsson U, et al. Semi-supervised knowledge transfer for deep learning from private training data[C]. arXiv preprint arXiv:1610.05755, 2016.

参考文献2:

[7] Florian Tramèr, Fan Zhang, Ari Juels, Michael K. Reiter, and Thomas Ristenpart. Stealing machine learning models via prediction apis. In 25th USENIX 

[12] Reza Shokri, Marco Stronati, Congzheng Song, and Vitaly Shmatikov. Membership inference attacks against machine learning models. In 2017 IEEE Symposium on Security and Privacy, SP 2017, San Jose, CA, USA, May 22-26, 2017, pages 3–18. IEEE Computer Society, 2017.

[73] Binghui Wang and Neil Zhenqiang Gong. Stealing hyperparameters in machine learning. In 2018 IEEE Symposium on Security and Privacy, SP 2018, Proceedings, 21-23 May 2018, San Francisco, California, USA, pages 36–52. IEEE Computer Society, 2018.

[74] Honggang Yu, Kaichen Yang, Teng Zhang, Yun-Yun Tsai, Tsung-Yi Ho, and Yier Jin. Cloudleak: Large-scale deep learning models stealing through adversarial examples. In Proceedings of Network and Distributed Systems Security Symposium (NDSS), 2020.

[75] Mika Juuti, Sebastian Szyller, Samuel Marchal, and N. Asokan. PRADA: protecting against DNN model stealing attacks. In IEEE European Symposium on Security and Privacy, EuroS&P 2019, Stockholm, Sweden, June 17-19, 2019, pages 512–527. IEEE, 2019.

[77] Ahmed Salem, Yang Zhang, Mathias Humbert, Pascal Berrang, Mario Fritz, and Michael Backes. Ml-leaks: Model and data independent membership inference attacks and defenses on machine learning models. In 26th Annual Network and Distributed System Security Symposium, NDSS 2019, San Diego, California, USA, February 24-27, 2019. The Internet Society, 2019.

[78] Milad Nasr, Reza Shokri, and Amir Houmansadr. Machine learning with membership privacy using adversarial regularization. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, CCS 2018, Toronto, ON, Canada, October 15-19, 2018, pages 634–646. ACM, 2018.

[104] Matt Fredrikson, Somesh Jha, and Thomas Ristenpart. Model inversion attacks that exploit confidence information and basic countermeasures. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, pages 1322–1333, 2015.

[105] Chen Wang, Gaoyang Liu, Haojun Huang, Weijie Feng, Kai Peng, and Lizhe Wang. Miasec: Enabling data indistinguishability against membership inference attacks in mlaas. IEEE Transactions on Sustainable Computing, 2019.

[106] Jinyuan Jia, Ahmed Salem, Michael Backes, Yang Zhang, and Neil Zhenqiang Gong. Memguard: Defending against black-box membership inference attacks via adversarial examples. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security, CCS 2019, London, UK, November 11-15, 2019, pages 259–274. ACM, 2019.

[107] Yingzhe He, Guozhu Meng, Kai Chen, Xingbo Hu, and Jinwen He. Towards privacy and security of deep learning systems: A survey. 2019.

[108] Manish Kesarwani, Bhaskar Mukhoty, Vijay Arya, and Sameep Mehta. Model extraction warning in mlaas paradigm. In Proceedings of the 34th Annual Computer Security Applications Conference, ACSAC 2018, San Juan, PR, USA, December 03-07, 2018, pages 371–380. ACM, 2018.


摘自:

  • 机器学习隐私风险及防护技术研究 - 百度安全社区
  • 2020人工智能安全白皮书_支付宝
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI模型隐私风险及防护技术 的相关文章

  • 模型的并行推理

    ONNX模型可以通过使用深度学习框架的多卡并行化功能来实现GPU多卡推理 以PyTorch为例 xff0c 可以使用DataParallel或DistributedDataParallel来进行多卡并行化 DataParallel可以在单个
  • python队列

    q get 在队列为空时会阻塞 q put 在队列满时会阻塞 get nowait 在队列为空的时候也不阻塞 xff0c 这时候会抛异常queue Empty put nowait 1 在队列满的时候也不阻塞 xff0c 这时候会抛异常qu
  • python queue【队列的阻塞】

    队列的阻塞分为 xff1a 入队 put 时的阻塞 出队 get 时的阻塞 整体 join 的阻塞 消费的阻塞 出队阻塞 注 xff1a 设置 timeout 超时时间 xff0c 并捕捉 queue Empty 异常 xff1b 设置to
  • 微策略春招面试总结

    春季招聘时我报的研发岗 xff0c 由于我不是杭州本地人 xff0c 故首先接到的是电话面试 xff0c 电话面试大概一周左右被通知去杭州总部面试 下面主要简述一下面试的内容 第一面是技术面 xff0c 大概持续近一个小时 首先面试官会照着
  • Java JSONArray for循环 remove成员的一个好算法(转载)

    来源 xff1a https www cnblogs com xiaoliao p 10415214 html parameterArray 61 34 boundingBox 34 34 29 28 401 29 399 85 27 84
  • ExecutorService 关闭 and 如何判断线程池中任务执行完毕

    ExecutorService 关闭 1 shutdown 2 shutdownNow 3 awaitTermination 当你使用 ExecutorService的时候 xff0c 你应该记得关闭它 xff0c 这样这些被管理的线程才会
  • Ubuntu下启动图形界面startx报错connection to X server lost

    服务器被重启之后startx无法进入图形界面 xff0c 训练数据也全丢了 按以前应对这个问题的步骤重新走了一遍还是不行 就是各种网上找的杂七杂八的办法 xff0c 于是想起之前用x2go client登录图形界面ok的 xff0c 然后去
  • C语言环形队列缓冲-FIFO_RingBuffer

    ring buffer h span class token macro property span class token directive hash span span class token directive keyword if
  • [推荐]轻量好用学习python的工具--​-Thonny​

    青少儿编程教育的三大语言 xff0c 图形化编程 Python编程和C 43 43 语言编程 图形化语言 xff08 Scratch xff09 和C 43 43 语言 xff08 Dev C 43 43 xff09 的编程工具相对比较固定
  • Ubuntu 18.04无法打开屏幕共享,sharing按钮无法打开

    Ubuntu 18 04无法打开屏幕共享 xff0c sharing按钮无法打开 问题 xff1a 刚装了Ubuntu 18 04 xff0c 因新版的Ubuntu自带了屏幕共享的功能 xff0c 故尝试打开setting gt shari
  • 基于Web的高校社团管理系统的设计与实现

    该文章记录的是我的毕业设计 该项目运用PHP动态网站开发技术 xff0c 使用ThinkPHP5开源框架 xff0c HTML5 CSS JavaScript等脚本语言 xff0c Web服务器使用Apache xff0c 数据库采用MyS
  • qt在窗口中同步打印日志信息,根据日志级别设置日志颜色

    场景 一般我们会在程序运行的过程中配置对应的日志信息 xff0c 帮助我们了解当前程序执行的进度 当使用qt增加了操作界面时 xff0c 同样需要将日志信息在界面中显示出来 思路 使用qt的QtWidgets QTextEdit 控件作为日
  • pygame 学习笔记(4)推荐一本python入门游戏书籍《PYTHON游戏编程入门》

    简介 PYTHON游戏编程入门 xff08 More Python Programming for the Absolute Beginner xff09 是 S Harbour写的一本入门书籍 xff0c 基于pygame库 本书每一个章
  • MySQL相关知识点(原理、面试、工作)

    MySQL相关常识 返回导航页感谢您的宝贵时间 xff0c 来阅读本文知识点1 xff1a where 和having 原理功能快捷键启动 关闭MySQL服务如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一
  • 错排问题(排列组合习题)

    标题 xff1a 错排问题 题目描叙 xff1a 某人写了n封信和n个信封 如果所有的信都装错了信封 求所有的信都装错信封共有多少种不同情况 Input 输入n xff08 n lt 61 20 xff09 Output 输出情况总数 Sa
  • C++ 求素数的三种方法

    include lt iostream gt include lt cmath gt using namespace std 方法一 暴力搜索 void test01 for int i 61 2 i lt 101 i 43 43 for
  • 30个免费的CSS3动画片段代码

    对于网页设计师来说 xff0c 前端代码CSS HTML不是强项 xff0c 但有时候也是需要写的 特别是现在流行CSS3动画 xff0c 学习和了解一些相关知识是必须的 CSS3动画其实不算复杂 xff0c 比JS简单得多 xff0c 今
  • 麒麟系统开机自启动服务、执行脚本、命令

    rc local是一个较旧Linux启动加载脚本 目前主流系统主要用systemctl控制开机启动 xff0c 目前仍然可用 1 普通命令可以直接写在rc local里 xff0c xff08 rc local须有执行权限 xff0c 没有
  • 每天进步一点点之Android基础(3)—— Activity的onNewIntent

    onNewIntent 的触发时间 xff1a 如图所示 xff0c onCreate 和 onNewIntent 不会被同时调用 如果在 AndroidManifest xml 中 xff0c 将 Activity 的 launchMod

随机推荐

  • 重载全局new和delete

    程序代码 如下所示 xff1a span class token macro property span class token directive keyword include span span class token string
  • Android LottieAnimationView 源码分析(仅包含加载和缓存机制)

    使用 mLottieAnimationView 61 rootView findViewById R id lottie anim layout 此处的animRes 为R raw 文件 mLottieAnimationView setAn
  • xstart使用方法

    出处 xff1a 点击打开链接 有时工作中 xff0c 我们需要用到Linux图形用户界面环境进行一些操作 xff08 比如装Oracle数据库等等 xff09 xff0c 这时就需要用xstart远程连接linux图形用户界面 xff0c
  • 资源网站-转自知乎

    作者 xff1a 吴剃中 链接 xff1a https zhuanlan zhihu com p 21479053 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 一 找资源利器 PS
  • java网络故障报修系统J2EE

    目 录 第一章 绪论 1 1 1 课题开发背景 1 1 2 课题研究意义 1 1 3 本课题主要工作 1 第二章 相关技术介绍 3 2 1 JSP技术 3 2 2 MySQL数据库 3 2 3 J2EE 技术 4 2 4 B S架构 5 第
  • linux脚本中的命令command not found的原因及解决方法

    场景描述 xff1a 一个生产的数据库备份脚本 xff0c 使用定时任务crontab配置自动执行bakup sh xff0c 报错信息是 expdp xff1a command not found 可是 xff0c 我在linux中 xf
  • ubuntu防火墙安装和设置-ufw

    ubuntu防火墙使用的是iptables 为了简化iptables设置 xff0c ubuntu提供了一个名为ufw的工具 本文主要介绍ufw使用方法 如果ufw没有安装 xff0c 那么可以使用如下命令安装 xff1a sudo apt
  • Win10/11+Ubuntu 双系统 修改grub默认启动选项 | 默认等待时间

    文章目录 进入Ubuntu xff0c 修改配置更新配置 本文环境为Win11 43 Ubuntu22 04 进入Ubuntu xff0c 修改配置 span class token function sudo span span clas
  • 2022-08-14 SSH 相关命令详解

    SSH 相关命令详解 sshssh keygenssh copy idssh agent 和 ssh addssh keyscansshd ssh ssh OpenSSH 远端登陆客户端 xff0c 默认22端口 描述 xff1a span
  • 浅谈Centos用户权限管理

    一 用户与组的概念 1 xff0e 理解linux多用户 xff0c 多任务的特性 Linux是一个真实的 完整的多用户多任务操作系统 xff0c 多用户多任务就是可以在系统上建立多个用户 xff0c 而多个用户可以在同一时间内登录同一个系
  • Linux centos升级nodejs,解决升级NodeJS遇到的问题,升级GLIBC、GLIBCXX、gcc(含资源包下载)

    公司网站用的Nuxt开发的 xff0c 本地开发环境NodeJS已经升级到16 14 2版本 xff0c 服务器也要从12版本升级到16 14 2 如需本次安装的资源 xff0c 请下滑到文章下面下载整套资源 NodeJS版本下载地址 xf
  • 关于UEFI引导的理解

    UEFI 和 Legacy区别 UEFT和Legacy是引导模式 xff0c 是用来引导系统的 按下开机键到看到windows标识 Legacy 传统BIOS模式 xff0c 启动顺序 xff1a 开机 gt BIOS初始化 gt BIOS
  • IDEA license server 地址

    旧地址 xff1a http jetbrains license server 新地址 xff1a http fls jetbrains agent com
  • 线性探测再散列

    哈希表又称散列表 哈希表存储的基本思想是 xff1a 以数据表中的每个记录的关键字 k为自变量 xff0c 通过一种函数H k 计算出函数值 把这个值解释为一块连续存储空间 xff08 即数组空间 xff09 的单元地址 xff08 即下标
  • 特征选择的几种方法

    目录 1 过滤法 xff08 Filter xff09 1 1 方差选择法 1 2 相关系数法 1 3 卡方检验 1 4 互信息法 1 5 relief算法 2 包裹法 xff08 Wrapper xff09 2 1 递归特征消除法 2 2
  • Excel调用有道词典实现批量翻译

    如图所示 xff0c 我们在B2单元格中写入公式 xff1a 61 FILTERXML WEBSERVICE 34 http fanyi youdao com translate amp i 61 34 amp A2 amp 34 amp
  • Python的使用技巧:any all的短路

    注意迭代类型和list的结果是不一样的 xff1a if name 61 61 39 main 39 a 61 1 2 3 if any print i is None for i in a print 6666666666 1 2 3 6
  • curl升级到7.87(centos7和TencentOS2.4 tk)

    centos7升级curl到7 8 7 按照之前写过的一篇文章 大致按描述操作即可 只不过需要做一点点修正 CentOS 7升级curl 乐大师的博客 CSDN博客 centos7 curl升级 更新操作中会报错安装失败 提示如下 nbsp
  • Python中raise…from用法

    本来这几天是计划阅读string模块的源码 xff0c 恰好其中一段异常处理的代码我觉得很新奇 xff0c 也就是raise from的用法 xff0c raise的用法大家都知道 因为我之前没遇到过 xff0c 所以就去网上查了相关的资料
  • AI模型隐私风险及防护技术

    一 背景 随着AI成为新一代关键技术趋势 xff0c 围绕着AI的服务也越来越普及 特别是结合了云计算以后 xff0c 机器学习数据的标注 模型训练及预测等服务纷纷上云 xff0c 为用户提供了强大的算力和优秀的算法 xff0c 极大方便了