允中 李林 编译整理
量子位 出品 | 公众号 QbitAI

注意!你的深度学习框架有漏洞!

这个警告来自360安全实验室(Qixue Xiao、Deyue Zhang)、佐治亚大学(Kang Li)和弗吉尼亚大学(Weilin Xu)的研究者,他们在一篇论文中,对TensorFlow、Caffe、Torch三个深度学习框架中的第三方软件包进行了研究,并在其中查找漏洞,最后得出最开头的研究结论。

尽管这还只是一项初步研究,但研究人员仍然在三个框架中发现了15个漏洞,类型包括:DoS拒绝服务攻击、躲避攻击等。

他们说:“深度学习框架是复杂的,重度依赖大量开源软件包。”这些依赖库,也正是漏洞的根源。

潜藏风险的依赖库

一个典型的、用深度学习框架开发出来的AI应用,在部署时往往是这样的三层结构:

最上面一层,是开发者看得见的深度学习应用,包含应用逻辑、深度学习模型和相应的数据;中间一层是TensorFlow、Caffe等深度学习框架;最下面一层,则是底层框架依赖,也就是深度学习框架所用到的那些组件,比如说OpenCV、GNU LibC、NymPy、以及Google的protobuf等等。

每个深度学习框架,都依赖着大量第三方软件包。比如说使用最广泛的TensorFlow,就有97个Python依赖库;Caffe背后,有137个依赖库,老牌框架Torch7,也有48个Lua模块。

 深度学习框架的依赖库

当你训练图像识别算法的时候,也许并不那么关心Caffe中用到的OpenCV开源库或者TensorFlow依赖的numpy,但是,风险正蕴含其中。

攻击从哪来?

要了解深度学习应用可能面临的风险,就要先清楚它们的攻击面(attack surface),也就是这类软件可能受到怎样的攻击。

对于不同的应用,可能出现的攻击多种多样,不过几位研究员在论文中总结说,有三个攻击面,能够代表绝大部分情况。

他们以MNIST手写数字数据集为例对这三个攻击面做了说明:

输入图像畸形

深度学习应用在进行分类或识别等任务时,会从文件或者网络读取输入数据,在这个环节中,攻击者可能会构建畸形的输入。

需要特别说明的是,如果从摄像头等传感器直接获取输入数据,受到这种攻击的可能性会小很多,但也无法消除。

训练数据畸形

在构建深度学习应用的过程中,需要用数据对模型进行训练,而训练所用的数据集就可能被污染、打上错误的标签。这种攻击方式叫做数据下毒攻击(data poisoning
attack)。

模型畸形

如果深度学习开发者使用别人搭建的模型,就可能会遭受这种攻击。

都不安全

以上面提到的第一个攻击面(输入图像畸形)为例,假设你的输入数据来自文件或者网络,TensorFlow、Caffe和Torch就有十几个漏洞,可能遭受DOS拒绝服务攻击、躲避攻击或者系统妥协攻击,比如说下表列出的这些:

相比较而言,TensorFlow算是表现出色的,但其中也有两个Python软件包(NumPy和)存在DoS攻击风险。

开源计算机视觉代码库OpenCV中的漏洞最多,总共发现了11处。Caffe和Torch框架中都使用了OpenCV。另外,Caffe中还有图像处理库libjasper和图像浏览器OpenEXR的易受攻击版本。

有意思的是,研究人员还发现如何利用越界写入(out-of-bounds write)欺骗AI:在OpenCV中,数据指针可以设置为readData函数中的任何值,然后可以将指定的数据写入数据指向的地址。即可以用来改写分类结果。

OpenCV的例子如下:

我们来详细看一下这几类攻击:

威胁一、DoS拒绝服务攻击

我们在深度学习框架中发现,最常见的漏洞是软件错误,导致程序崩溃,或者进入死循环,或者耗尽所有的内存。

威胁二、躲避攻击

面对脆弱的深度学习框架,攻击者可以利用软件漏洞实施躲避攻击,例如:1、通过漏洞覆盖分类结果,修改特定内存内容 2、劫持控制流程以跳过或重新排序模型执行。

威胁三、系统妥协

攻击者可以利用漏洞劫持控制流,或者远程控制托管深度学习应用的系统。这个情况发生在深度学习应用作为云服务运行,并从网络输入馈送时。

这项研究,已经在敦促框架开发者对安全性进行改进了。作者们在论文中说:“我们的研究结果已经得到相关开发商的证实,其中很多已经根据我们的建议进行了修补。”

论文

最后,附上相关论文:

Security Risks in Deep Learning Implementations
Qixue Xiao, Kang Li, Deyue Zhang, Weilin Xu

在量子位公众号(QbitAI)对话界面回复“360”,即可以直接下载。

活动报名

加入社群

量子位AI社群11群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot4入群;

此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。

进群请加小助手微信号qbitbot4,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

“你的深度学习框架包含15个漏洞”,360说 | 附论文相关推荐

  1. 【经典回顾】YouTube 深度学习推荐系统的十大工程问题(附论文下载链接)

    这篇文章主要介绍了 YouTube 深度学习系统论文中的十个工程问题,为了方便进行问题定位,我们还是简单介绍一下背景知识,简单回顾一下 Deep Neural Networks for YouTube ...

  2. 深度学习框架中的魔鬼:探究人工智能系统中的安全问题

    ISC 2017中国互联网安全大会举办了人工智能安全论坛. 我们把论坛总结成为一系列文章,本文为系列中的第一篇. 深度学习引领着新一轮的人工智能浪潮,受到工业界以及全社会的广泛关注. 虽然大家对人工智 ...

  3. AI四巨头Google、DeepMind、Microsoft、Uber深度学习框架大比拼

    编者按:Google.Uber.DeepMind和Microsoft这四大科技公司是当前将深度学习研究广泛应用于自身业务的典型代表,跻身全球深度学习研究水平最高的科技公司之列.GPipe.Horovo ...

  4. Keras还是TensorFlow?深度学习框架选型实操分享

    译者| 王天宇.林椿眄 责编| Jane.琥珀 出品| AI科技大本营 深度学习发展势头迅猛,但近两年涌现的诸多深度学习框架让初学者无所适从.如 Google 的 TensorFlow.亚马逊的 MX ...

  5. TensorFlow领衔,七大深度学习框架大对比!

    作者|黄文坚 唐源 编辑|小智 TensorFlow 在 2015 年年底一出现就受到了极大的关注,在一个月内获得了 GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚 ...

  6. Nat. Commun. | 序列到功能的深度学习框架加速工程核糖调节剂设计和优化

    今天给大家介绍由哈佛大学和剑桥大学的研究人员联合发表在Nature Communications的一篇文章.由于对设计规则的理解有限,设计全新的生物回路组件仍然是一项具有挑战性的工作,支点开关(Toe ...

  7. AI 四巨头 Google、DeepMind、Microsoft、Uber 深度学习框架大比拼

    2020-04-08 15:08:38 编者按:Google.Uber.DeepMind和Microsoft这四大科技公司是当前将深度学习研究广泛应用于自身业务的典型代表,跻身全球深度学习研究水平最高 ...

  8. DL-5 深度学习框架的对比

    在深度学习领域的五大巨头里,它们都各自力挺一种深度学习框架:像谷歌有自家的TensorFlow.Facebook有Torch.百度有Paddle Paddle.微软有CNTK.而亚马逊的AWS则有MX ...

  9. 聚焦CSDN技术主题月:深度学习框架的重构与思考专场回顾

    10月15日下午,在北京兆维大厦,由CSDN社区主办的技术主题月系列之--<深度学习框架的重构与思考>活动成功举办.CSDN邀请了用友畅捷通人工智能负责人张俊林.创业公司大数据总监周步恋. ...

最新文章

  1. Javascript 特效 转载
  2. 微型计算机实验代码,微型计算机原理实验1-数据传送
  3. 时间旅行java_[ 一起学React系列 -- 7 ] 秘术之时间旅行-2
  4. php黑名单绕过,利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单
  5. tensorflow: 重置/清空计算图
  6. openproj jvm erron 193
  7. js获取浏览器信息及版本(兼容IE)
  8. 无锡江苏高性能服务器服务商,无锡高防云服务器
  9. redis的daemonize设置为yes和no有啥区别呀,为啥我两个都试了之后的效果不是像网上说的那样,设置成No的话,redis也会一直运行呀
  10. 爱快虚拟机安装Windows
  11. 【微信小程序】云函数使用excel-export导出excel
  12. python爬虫接单发源地_python爬虫任务接单渠道
  13. ES6——Symbol属性与for...of循环迭代器
  14. win10重新安装ie
  15. 项目组合管理(PPM)
  16. 通达信收费接口查询可申购新股c++源码分享
  17. 人脸、商品、车辆识别一网打尽!
  18. 如何来做用户意图识别
  19. Javaweb Session与Cookie(自定义Session)
  20. 【props单个数据绑定和多个数据绑定+vue默认插槽的基本使用+具名插槽的写法(2种)+插槽作用域3】

热门文章

  1. 12306 被质疑过度获取用户隐私;直播答题外挂横行;阿里云辟谣称绝不做虚拟货币 | 一周业界事
  2. 俄罗斯 90 后天才写 5 年代码创收 1000 亿美金
  3. 那是计算机房吗不它不是 英语,人教PEP版英语四年级下册Unit 1《My School》单元测试卷及答案.doc...
  4. ext4.0.7 样式兼容性
  5. koa ajax,nodejs之koa2请求示例(GET,POST)
  6. 写html前端代码的软件_你能看懂高贵的前端程序员的工作内容?
  7. Streams API
  8. TS中的unknown类型
  9. 左列定宽,右列自适应
  10. java 新闻编辑_使用 Java 构建你自己的文本编辑器|Linux 中国