1. 聚能聊>
  2. 话题详情

深度学习应用,不但要考虑准确性,更要考虑安全

近日,TensorFlow、Caffe、Torch 等深度学习框架被爆出存在大量的安全隐患,主要是因为第三方开源基础库造成的。TensorFlow、Caffe、Torch 等深度学习框架的使用可以让应用开发人员无需关注底层实现细节,大大提高了人工智能应用的开发效率。但是这些深度学习框架所提供的高效性也注定了框架自身的复杂性,而系统越复杂,就越有可能存在安全隐患,特别是这三大框架又都是搭建在众多第三方开源基础库之上的。如下图所示:
4e6e5fc74f5f451c94b62a83c0abccbc_jpeg
目前公众对人工智能的关注,尤其是深度学习方面, 缺少对安全的考虑。导致这个盲点的主要原因是由于算法与实现的距离。 近期对于深度学习的讨论主要停留在算法和前景展望的层面,对应用场景和程序输入有很多假设。受到关注的应用往往假定处于善意的或封闭的场景。例如高准确率的语音识别中的输入都是自然采集而成,图片识别中的输入也都来自正常拍摄的照片。这些讨论没有考虑人为恶意构造或合成的场景。

现实中的开放应用需要处理的输入不仅来源于正常用户,也可以是来自黑产等恶意用户。 人工智能的应用必须考虑到应用所面临的现实威胁。程序设计人员需要考虑输入数据是否可控,监测程序是否正常执行,并验证程序执行结果是否真实反映应用的本来目的。

深度学习框架掩盖了它所使用的组件依赖,同时也隐藏了系统的复杂程度。 每种深度学习框架又都是实现在众多基础库和组件之上,很多深度学习框架里还包括图像处理、矩阵计算、数据处理、GPU加速等功能。图2展示了典型的深度学习应用组件和它们的依赖关系。例如Caffe除了自身神经元网络模块实现以外,还包括137个第三方动态库,例如libprotobuf, libopencv, libz 等。 谷歌的TensorFlow框架也包含对多达97个python模块的依赖,包括librosa,numpy 等。

系统越复杂,就越有可能包含安全隐患。任何在深度学习框架以及它所依赖的组件中的安全问题都会威胁到框架之上的应用系统。另外模块往往来自不同的开发者,对模块间的接口经常有不同的理解。当这种不一致导致安全问题时,模块开发者甚至会认为是其它模块调用不符合规范而不是自己的问题。在发现的导致深度学习框架崩溃的漏洞中就遇到过这种情况。这些漏洞,比如内存访问越界漏洞,都能被黑客用来执行上述所说的三种网络攻击类型,都能被黑客用来篡改数据流,欺骗我们的人工智能应用。以下是已经发现的一些漏洞。
780ff22e2d454441a6e3c26345458843_jpeg

那么问题来了:
大家认为出现这些漏洞的主要原因是什么?
大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题?
大家认为在应用深度学习框架的时候应该如何保证系统安全?
大家认为下一步深度学习框架应该通过那些方式来增强系统安全性?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 1

  • 奖品二

    云栖社区T恤 x 2

11个回答

2

夏之冰雪 已获得云栖社区T恤 复制链接去分享

1. 大家认为出现这些漏洞的主要原因是什么?
模块往往来自不同的开发者,对模块间的接口经常有不同的理解。当这种不一致导致安全问题时,模块开发者甚至会认为是其它模块调用不符合规范而不是自己的问题。
其实,还有个原因就是人工智能,是这两年开始变得更加火热和流行。而很多模块,当初设计时所考虑的场景,并非是针对人工智能领域的。所以在设计和实现上,前瞻性多少弱一些,所以人工智能领域,调用这些模块、传统的技术算法等,必然会出现一些问题,甚至安全隐患。

2. 大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题?
感觉现在人工智能方面的安全还很少,毕竟人工智能对很多人还比较新。目前看下来,并没有针对智能算法这个过程存在攻击的案例,更多的是污染数据源,进行欺骗。以及,比如极棒大会上,面对人脸识别智能门卡,黑客也是从传统业务途径进行攻破,并非是攻破人脸识别本身。

3. 大家认为在应用深度学习框架的时候应该如何保证系统安全?
框架本身的安全性研究,框架所依赖的第三方开源库的安全性检测。
还有,就是刚才提到的一些污染,比如对抗机器学习的恶意样本生成、训练数据的污染,这些也需要强化自身的检测能力。

4. 大家认为下一步深度学习框架应该通过那些方式来增强系统安全性?
之前没事的时候,几个人讨论过,不过由于大家对深度学习研究也不深入,所以并没有太多结论。深度学习算法层面的攻击,没讨论出个啥。
主要就是数据源,污染,这是深度学习的一个盲区。而且并没有太多规范,一些论文也更多是在算法本身上。所以,当很多企业还没有太多安全意识的时候,数据源头的攻击成本可能最低,效果可能最好。
当安全规范和安全意识形成,这个时候框架本身和框架所用到的第三方库,代码层面的攻击,我觉得会是重点。

最后,我一直认为,复杂和安全一直是对立的。所以,未来深度学习的安全挑战,肯定会更大。

1

1155812194915317 已获得云栖社区T恤 复制链接去分享

大家认为出现这些漏洞的主要原因是什么?
我的一点看法是这些框架中很多是诞生于科研圈的东西。比如上表中出现次数最多的caffe就产生于fb研究院。科研机构因为有发论文的压力,比较喜欢速度快的框架,比如caffe,反而对安全不怎么关心(很多实验室的服务器连个公网ip都没有)。这些框架直接拿来做应用想必会有很多安全问题。
大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题?
没遇到过,还在学校实验室搬砖
大家认为在应用深度学习框架的时候应该如何保证系统安全?
仅从算法的角度来说,深度学习很难保证效果。绝大多数论文都是基于几个静态数据集跑的结果,在现实应用中效果难免会打折扣。另一方面,即使用一个相同的数据集,一些微小的变动会对测试结果有巨大的影响,在实际应用中可能会造成事故,比如换一个激活函数等等。有许多文章是研究深度学习效果崩坏的条件的。比如有篇文章就是研究怎样改变测试图片中的几个像素来使基于cnn的分类算法分类错误,并给出了找这种像素改变的方法(好像是东京大学做的一个工作,手机上答的就暂不考证了)。可以从这样的论文出发逆向思考,从算法上使深度学习的结果更靠谱。
大家认为下一步深度学习框架应该通过那些方式来增强系统安全性?
尽量完善工业级的框架,比如tensorflow就是这个定位。还有最好应用不要完全依赖深度的方法。做应用最好添加一个冗余方法与深度学习互为验证。做图像来说在cnn这个计算量面前一些传统方法如SIFT的计算量几乎可以不计,从算法上说可以提高应用的安全性。

0

aoteman675 已获得阿里云代金券 复制链接去分享

1、 大家认为出现这些漏洞的主要原因是什么?
主要是没有形成一套行业规范,目前在开源框架上来自不同的开发者,在没有规范协议的情况下,接口难以形成统一。导致很多漏洞无法及时修复,模块分散化也是重要原因。在开发时没有前瞻性的更新迭代可能会导致对新版本以下系统无法兼容。
2、大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题?
深度学习和人工智能也是这几年应用热度上升,但是框架层也极其复杂,很多云计算厂商选择开源框架,在产品上也就依赖了开源社区不同的开发者,到产品实际运用中可能会导致漏洞无法及时修复和影响下一代产品运营。
3、大家认为在应用深度学习框架的时候应该如何保证系统安全?
框架安全应该引入第三方安全依赖检测机制,架构系统应该保证系统的可迭代性,框架的可维护性。人工智能基于云计算和大数据开发,所以在机器训练时引入数据的真实性校验机制,避免数据污染,让数据偏向自然数据。
4、大家认为下一步深度学习框架应该通过那些方式来增强系统安全性?
在框架的结构上保证每一层引入第三方依赖安全,尽可能在API接入层保证数据安全。系统越复杂,漏洞越多,最近苹果也是紧急修复了一个账户安全漏洞。所以我们程序员开发不仅要在正常环境下测试,更应该在恶劣操作下保证系统稳定。

1

1483612440305339 复制链接去分享

安全很重要

0

1277914370539357 复制链接去分享

多为试用人群考虑简洁简单性,推广让很多人知晓

0

昌鼎不锈钢 复制链接去分享

必需注意

0

1955193430086131 复制链接去分享

嗯,是的

0

一点桀 复制链接去分享

踏实学习。。。

0

1588513162367078 复制链接去分享

应该去深入了解学习这个新时代的模式

0

1045713406974840 复制链接去分享

好好学习

0

yan子 复制链接去分享

好好学习,安全第一。