深度学习应用,不但要考虑准确性,更要考虑安全
2017-12-15 14:57
176 查看
原文链接:点击打开链接
近日,TensorFlow、Caffe、Torch 等深度学习框架被爆出存在大量的安全隐患,主要是因为第三方开源基础库造成的。TensorFlow、Caffe、Torch 等深度学习框架的使用可以让应用开发人员无需关注底层实现细节,大大提高了人工智能应用的开发效率。但是这些深度学习框架所提供的高效性也注定了框架自身的复杂性,而系统越复杂,就越有可能存在安全隐患,特别是这三大框架又都是搭建在众多第三方开源基础库之上的。如下图所示:
目前公众对人工智能的关注,尤其是深度学习方面, 缺少对安全的考虑。导致这个盲点的主要原因是由于算法与实现的距离。 近期对于深度学习的讨论主要停留在算法和前景展望的层面,对应用场景和程序输入有很多假设。受到关注的应用往往假定处于善意的或封闭的场景。例如高准确率的语音识别中的输入都是自然采集而成,图片识别中的输入也都来自正常拍摄的照片。这些讨论没有考虑人为恶意构造或合成的场景。
现实中的开放应用需要处理的输入不仅来源于正常用户,也可以是来自黑产等恶意用户。 人工智能的应用必须考虑到应用所面临的现实威胁。程序设计人员需要考虑输入数据是否可控,监测程序是否正常执行,并验证程序执行结果是否真实反映应用的本来目的。
深度学习框架掩盖了它所使用的组件依赖,同时也隐藏了系统的复杂程度。 每种深度学习框架又都是实现在众多基础库和组件之上,很多深度学习框架里还包括图像处理、矩阵计算、数据处理、GPU加速等功能。图2展示了典型的深度学习应用组件和它们的依赖关系。例如Caffe除了自身神经元网络模块实现以外,还包括137个第三方动态库,例如libprotobuf, libopencv, libz 等。 谷歌的TensorFlow框架也包含对多达97个python模块的依赖,包括librosa,numpy 等。
系统越复杂,就越有可能包含安全隐患。任何在深度学习框架以及它所依赖的组件中的安全问题都会威胁到框架之上的应用系统。另外模块往往来自不同的开发者,对模块间的接口经常有不同的理解。当这种不一致导致安全问题时,模块开发者甚至会认为是其它模块调用不符合规范而不是自己的问题。在发现的导致深度学习框架崩溃的漏洞中就遇到过这种情况。这些漏洞,比如内存访问越界漏洞,都能被黑客用来执行上述所说的三种网络攻击类型,都能被黑客用来篡改数据流,欺骗我们的人工智能应用。以下是已经发现的一些漏洞。
那么问题来了:
大家认为出现这些漏洞的主要原因是什么?
大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题?
大家认为在应用深度学习框架的时候应该如何保证系统安全?
大家认为下一步深度学习框架应该通过那些方式来增强系统安全性?
近日,TensorFlow、Caffe、Torch 等深度学习框架被爆出存在大量的安全隐患,主要是因为第三方开源基础库造成的。TensorFlow、Caffe、Torch 等深度学习框架的使用可以让应用开发人员无需关注底层实现细节,大大提高了人工智能应用的开发效率。但是这些深度学习框架所提供的高效性也注定了框架自身的复杂性,而系统越复杂,就越有可能存在安全隐患,特别是这三大框架又都是搭建在众多第三方开源基础库之上的。如下图所示:
目前公众对人工智能的关注,尤其是深度学习方面, 缺少对安全的考虑。导致这个盲点的主要原因是由于算法与实现的距离。 近期对于深度学习的讨论主要停留在算法和前景展望的层面,对应用场景和程序输入有很多假设。受到关注的应用往往假定处于善意的或封闭的场景。例如高准确率的语音识别中的输入都是自然采集而成,图片识别中的输入也都来自正常拍摄的照片。这些讨论没有考虑人为恶意构造或合成的场景。
现实中的开放应用需要处理的输入不仅来源于正常用户,也可以是来自黑产等恶意用户。 人工智能的应用必须考虑到应用所面临的现实威胁。程序设计人员需要考虑输入数据是否可控,监测程序是否正常执行,并验证程序执行结果是否真实反映应用的本来目的。
深度学习框架掩盖了它所使用的组件依赖,同时也隐藏了系统的复杂程度。 每种深度学习框架又都是实现在众多基础库和组件之上,很多深度学习框架里还包括图像处理、矩阵计算、数据处理、GPU加速等功能。图2展示了典型的深度学习应用组件和它们的依赖关系。例如Caffe除了自身神经元网络模块实现以外,还包括137个第三方动态库,例如libprotobuf, libopencv, libz 等。 谷歌的TensorFlow框架也包含对多达97个python模块的依赖,包括librosa,numpy 等。
系统越复杂,就越有可能包含安全隐患。任何在深度学习框架以及它所依赖的组件中的安全问题都会威胁到框架之上的应用系统。另外模块往往来自不同的开发者,对模块间的接口经常有不同的理解。当这种不一致导致安全问题时,模块开发者甚至会认为是其它模块调用不符合规范而不是自己的问题。在发现的导致深度学习框架崩溃的漏洞中就遇到过这种情况。这些漏洞,比如内存访问越界漏洞,都能被黑客用来执行上述所说的三种网络攻击类型,都能被黑客用来篡改数据流,欺骗我们的人工智能应用。以下是已经发现的一些漏洞。
那么问题来了:
大家认为出现这些漏洞的主要原因是什么?
大家在应用深度学习,或者其他人工智能框架的时候是否遇到过类似的安全问题?
大家认为在应用深度学习框架的时候应该如何保证系统安全?
大家认为下一步深度学习框架应该通过那些方式来增强系统安全性?
相关文章推荐
- NET 应用架构指导 V2 学习笔记(十五) 数据访问层指导 技术、性能、安全、部署、以及设计步骤考虑
- 人人都可以做深度学习应用:入门篇
- 深度学习在目标跟踪中的应用
- 深度学习在图像分类中的应用
- 深度学习在医疗中的应用前景分析
- 简易的深度学习框架Keras代码解析与应用
- 机器学习、深度学习、计算机视觉、自然语言处理及应用案例
- 人人都可以做深度学习应用:入门篇
- AlphaGo、人工智能、深度学习解读以及应用
- 斯坦福cs224d(深度学习在自然语言处理上的应用)Lecture 2
- 深度学习在推荐系统上的应用
- 深度学习在自然语言处理的应用
- 深度学习Attention机制在短文本分类上的应用——qjzcy的博客
- 深度强化学习及其在自动驾驶中的应用: DRL&ADS系列之(1): 强化学习概述
- 计算机视觉与深度学习应用关系
- 干货丨 简述迁移学习在深度学习中的应用
- 深度学习在数据挖掘的应用
- 王小草【深度学习】笔记第七弹--RNN与应用案例:注意力模型与机器翻译
- 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表
- 深度学习在图像超分辨率重建中的应用