武汉360开户 黄石360推广 武汉360公司安全团队对人工智能系统安全问题的探究报告
 
     武汉360开户 黄石360推广 近日,人工智能已经成为当前业界的热门技术之一,特别是随着AI系统在智商方面的大幅度提升,不知道各位有没想过,如果这些AI被黑客劫持,将会发生怎样的情景呢?


     人工智能应用面临来自多个方面的威胁:包括深度学习框架中的软件实现漏洞、对抗机器学习的恶意样本生成、训练数据的污染等等。这些威胁可能导致人工智能所驱动的识别系统出现混乱,形成漏判或者误判,甚至导致系统崩溃或被劫持,并可以使智能设备变成僵尸攻击工具。


     在推进人工智能应用的同时,国内走在安全领域前端的360公司对其也有一些自己的看法。武汉360推广 武汉360公司 武汉360代理 武汉360开户 武汉360推广开户 武汉360搜索推广 武汉360推广代理 武汉360推广电话 武汉360代理商 武汉360搜索公司 武汉360推广代理商 武汉360分公司 武汉360公司电话 武汉360公司地址 武汉360推广分公司 武汉360搜索分公司 武汉360搜索开户 武汉360搜索代理 湖北360搜索推广电话  湖北360代理 湖北360推广代理  湖北360搜索推广开户  湖北360搜索推广 湖北360分公司 十堰360推广 襄樊360推广 随州360推广 荆门360推广 孝感360推广 宜昌360推广 天门360推广 鄂州360推广 黄冈360推广 黄石360推广 咸宁360推广 荆州360推广 潜江360推广 仙桃360推广认为,要解决人工智能系统面临的这些安全问题,首先要在深度学习框架中发现潜在的安全问题。


1. 人工智能讨论中的安全盲点


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


人工智能讨论中的安全盲点可以通过最典型的手写数字识别案例来说明。基于MNIST数据集的手写数字识别应用是深度学习的一个非常典型的例子,最新的深度学习教程几乎都采用这个应用作为实例演示。在这些教程中(如下图所示)算法层的讨论所考虑的分类结果只关心特定类别的近似度和置信概率区间。算法层的讨论没有考虑输入会导致程序崩溃甚至被攻击者劫持控制流。这其中被忽略掉的输出结果反映出算法和实现上考虑问题的差距,也就是目前人工智能讨论中的安全盲点。


360安全团队对人工智能系统安全问题的探究报告


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


2. 深度学习系统的实现及依赖复杂度


深度学习软件很多是实现在深度学习框架上。目前基于深度学习系统框架非常多,主流的包括TensorFlow、Torch,以及Caffe等。


深度学习框架的使用可以让应用开发人员无需关心神经元网络分层以及培训分类的实现细节,更多关注应用本身的业务逻辑。开发人员可以在框架上直接构建自己的神经元网络模型,并利用框架提供的接口对模型进行训练。这些框架简化了深度学习应用的设计和开发难度,一个深度学习的模型可以用几十行代码就可以写出来。


360安全团队对人工智能系统安全问题的探究报告


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


系统越复杂,就越有可能包含安全隐患。任何在深度学习框架以及它所依赖的组件中的安全问题都会威胁到框架之上的应用系统。另外模块往往来自不同的开发者,对模块间的接口经常有不同的理解。当这种不一致导致安全问题时,模块开发者甚至会认为是其它模块调用不符合规范而不是自己的问题。


3. 魔鬼隐藏于细节之中


正如安全人员常说的,魔鬼隐藏于细节之中(武汉360推广 武汉360公司 武汉360代理 武汉360开户 武汉360推广开户 武汉360搜索推广 武汉360推广代理 武汉360推广电话 武汉360代理商 武汉360搜索公司 武汉360推广代理商 武汉360分公司 武汉360公司电话 武汉360公司地址 武汉360推广分公司 武汉360搜索分公司 武汉360搜索开户 武汉360搜索代理 湖北360搜索推广电话  湖北360代理 湖北360推广代理  湖北360搜索推广开户  湖北360搜索推广 湖北360分公司 十堰360推广 襄樊360推广 随州360推广 荆门360推广 孝感360推广 宜昌360推广 天门360推广 鄂州360推广 黄冈360推广 黄石360推广 咸宁360推广 荆州360推广 潜江360推广 仙桃360推广)。任何一个大型软件系统都会有实现漏洞。考虑到深度学习框架的复杂性,深度学习应用也不例外。


360 Team Seri0us 团队在一个月的时间里面发现了数十个深度学习框架及其依赖库中的软件漏洞。发现的漏洞包括了几乎所有常见的类型,例如内存访问越界,空指针引用,整数溢出,除零异常等。这些漏洞潜在带来的危害可以导致对深度学习应用的拒绝服务攻击,控制流劫持,分类逃逸,以及潜在的数据污染攻击。


以下通过两个简单的例子来介绍深度学习框架中的漏洞以及对应用的影响。两个例子都来源于框架的依赖库,一个是TensorFlow框架所依赖的numpy包,另一个是Caffe在处理图像识别所使用的libjasper库。


案例1:对基于TensorFlow的语音识别应用进行拒绝服务攻击


武汉360推广 武汉360公司 武汉360代理 武汉360开户 武汉360推广开户 武汉360搜索推广 武汉360推广代理 武汉360推广电话 武汉360代理商 武汉360搜索公司 武汉360推广代理商 武汉360分公司 武汉360公司电话 武汉360公司地址 武汉360推广分公司 武汉360搜索分公司 武汉360搜索开户 武汉360搜索代理 湖北360搜索推广电话  湖北360代理 湖北360推广代理  湖北360搜索推广开户  湖北360搜索推广 湖北360分公司 十堰360推广 襄樊360推广 随州360推广 荆门360推广 孝感360推广 宜昌360推广 天门360推广 鄂州360推广 黄冈360推广 黄石360推广 咸宁360推广 荆州360推广 潜江360推广 仙桃360推广安全团队对人工智能系统安全问题的探究报告


案例中的 numpy 是TensorFlow所依赖的一个负责科学计算的python库。TensorFlow的很多应用在进行矩阵运算的时候都会用的它。 但360安全团队在这个库里发现一个简单逻辑漏洞(CVE-2017-12852)。 这个问题的简单情况如下图所示,它是发生在numpy中的pad函数。 在pad函数中,存在这样一个while循环,循环结束需要使pad_before>safe_pad和pad_after>safe_pad同时不成立, 而在360安全团队构造的例子中,可以使得pad_before和pad_after不断的增大,而safe_pad不断的减小,使得循环始终无法结束,从而导致拒绝服务。


如何解决呢?那就是选择基于TensorFlow的语音识别应用来演示基于这个漏洞触发的攻击。攻击者通过构造语音文件,会导致上图中显示的循环无法结束,使应用程序长时间占用CPU而不返回结果,从而导致拒绝服务攻击。


同时,360安全团队还选取了一个基于TensoFlow进行声音分类的应用来演示这个问题。


当给定一个正常的狗叫的音频文件,应用可以识别声音内容为 "dogbark",其过程如下:


360安全团队对人工智能系统安全问题的探究报告


当给定一个畸形的声音文件可导致拒绝服务,程序无法正常结束:


360安全团队对人工智能系统安全问题的探究报告


在前面关于模块依赖复杂导致漏洞的讨论中,提到过对模块接口的理解不一致会导致问题。值得一提的是Numpy这个漏洞的修复过程正好反映了这个问题。在武汉360推广 武汉360公司 武汉360代理 武汉360开户 武汉360推广开户 武汉360搜索推广 武汉360推广代理 武汉360推广电话 武汉360代理商 武汉360搜索公司 武汉360推广代理商 武汉360分公司 武汉360公司电话 武汉360公司地址 武汉360推广分公司 武汉360搜索分公司 武汉360搜索开户 武汉360搜索代理 湖北360搜索推广电话  湖北360代理 湖北360推广代理  湖北360搜索推广开户  湖北360搜索推广 湖北360分公司 十堰360推广 襄樊360推广 随州360推广 荆门360推广 孝感360推广 宜昌360推广 天门360推广 鄂州360推广 黄冈360推广 黄石360推广 咸宁360推广 荆州360推广 潜江360推广 仙桃360推广团队最初通知Numpy开发者的时候,他们认为问题是由于调用者librosa库的开发人员没有对数据进行严格检测,导致空列表的使用。所以尽管有应用会因为此问题受到拒绝服务攻击,Numpy开发者最初认为不需要修复这个问题。但后来发现有多个其它库对numpy的相关函数也有频繁的类似调用,所以最终对这个漏洞进行了修复。同时librosa开发者也对相关调用添加了输入检查。


案例2:恶意图片导致基于Caffe的图像识别应用出现内存访问越界


很多深度学习的应用是在图像和视觉处理领域。有一种情况是当使用深度学习框架Caffe来进行图片识别时,Caffe会依赖libjasper等图像视觉库来处理输入。libjasper对图像进行识别处理时,如果存在漏洞,例如内存越界,就可能导致整个应用程序出现崩溃,甚至数据流被篡改。下面的例子是用展示的是用Caffe所自带的例子图像识别程序来处理360安全团队提供的畸形图片所出现的崩溃场景。


当利用Caffe来对正常图片进行分类时,正常的使用情况如下:


360安全团队对人工智能系统安全问题的探究报告


当利用Caffe来对恶意图片进行分类时,程序出现崩溃:


360安全团队对人工智能系统安全问题的探究报告


以上仅仅是360安全团队发现的众多问题中的两个展示。360 Team Seri0s 团队已发现并公布了数十个导致深度学习框架出现问题的漏洞,其中包含已对外公开的15个CVE。在上个月举行的ISC安全大会上,Team Seri0s成员已经展示了六个攻击实例。更多细节请参考ISC 2017大会人工智能与安全论坛所发布的内容。


4. 小结


本文的目的是介绍被大众所忽视的人工智能安全问题,尤其是深度学习软件实现中的漏洞以及可能造成的隐患。目前在媒体中展示的深度学习应用中,许多并不与外界直接交互,例如AlphaGo;或者是在封闭的环境下工作,例如通过用户行为日志对用户分类画像并进行异常检测。这些系统的攻击面相对较小,它们并不容易受到本文中所提到的漏洞的直接影响。但是随着人工智能应用的普及,安全威胁会不断增加,


     更多的应用会把应用的输入接口直接或间接暴露出来。同时封闭系统的攻击面也会随着时间和环境而转化。另外除了传统的基于软件漏洞的攻击,深度学习还面临对抗神经元网络以及其它各种逃逸攻击。在这方面,后续文章里会对其进行更新。


     湖北武汉360搜索推广总代理-武汉奇好科技有限公司 360推广负责地区:武汉、十堰、襄樊、随州、荆门、孝感、宜昌、天门、鄂州、黄冈、黄石、咸宁、荆州、潜江、仙桃  联系电话:027-65386360


湖北奇好信息技术有限公司
商务总机:027-65386360
24小时服务热线:153-2715-4450(值班)
地址:武汉市洪山区民族大道124号龙安港汇城A座18层
版权所有:湖北奇好信息技术有限公司 鄂ICP备20010192号 COPYRIGHT 2013-2022 Inc.All Rights Reserved