深度学习应用,不但要考虑准确性,更要考虑安全
才能我浪费99 发布于2018-02 浏览:2673 回复:7
1
收藏

前一段时间,TensorFlow、Caffe、Torch 等深度学习框架被爆出存在大量的安全隐患,主要是因为第三方开源基础库造成的。TensorFlow、Caffe、Torch 等深度学习框架的使用可以让应用开发人员无需关注底层实现细节,大大提高了人工智能应用的开发效率。但是这些深度学习框架所提供的高效性也注定了框架自身的复杂性,而系统越复杂,就越有可能存在安全隐患,特别是这三大框架又都是搭建在众多第三方开源基础库之上的。如下图所示:

目前公众对人工智能的关注,尤其是深度学习方面, 缺少对安全的考虑。导致这个盲点的主要原因是由于算法与实现的距离。 近期对于深度学习的讨论主要停留在算法和前景展望的层面,对应用场景和程序输入有很多假设。受到关注的应用往往假定处于善意的或封闭的场景。例如高准确率的语音识别中的输入都是自然采集而成,图片识别中的输入也都来自正常拍摄的照片。这些讨论没有考虑人为恶意构造或合成的场景。

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

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

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

大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题,在应用深度学习框架的时候应该如何保证系统安全?

收藏
点赞
1
个赞
共7条回复 最后由用户已被禁言回复于2022-04
#8风搅火回复于2018-11
#7 才能我浪费99回复
是啊,安全是一切的基础

只有安全了,才会被信任,被运用

0
#7才能我浪费99回复于2018-11
#5 酩酊醉酉回复
技术的进步是为了人类服务,如果不安全,一切都是枉然

是啊,安全是一切的基础

0
#6想123666回复于2018-07

哇塞,这个图表列明好精细

0
#5酩酊醉酉回复于2018-07

技术的进步是为了人类服务,如果不安全,一切都是枉然

0
#4风搅火回复于2018-07

这是肯定的,安全性是尤为重要的

0
#3才能我浪费99回复于2018-02

我前一段看过一个攻击的演示,通过构造及上传一个问题图片直接让一个图像识别的网站hang掉。当然那个漏洞已经被补上了,不过肯定还存在很多其他的漏洞

0
#2才能我浪费99回复于2018-02

不少深度学习框架在开发的时候用到了很多原有的包,这些包在开发的时候主要考虑的是对数据的处理及分析,对安全考虑的比较少,漏洞比较多,所以在用的时候要十分的主意。

0
TOP
切换版块