0
本文作者: 李勤 | 2017-08-18 14:22 |
雷锋网编者按:深度学习在很多领域都取得了巨大的进步,深度学习也让我们的日常产品功能变得更强大。但是,人工智能也会带来相应的问题。在由腾讯2017 中国互联网安全领袖峰会(CSS)中,“MacAuthur天才奖”“世界杰出青年创新家”等奖项获得者、国际四大安全会议论文数第一的 Dawn Song介绍了一些在 AI 和网络安全领域经常遇到的挑战,AI 如何来赋予我们能力,AI 如何帮助安全。
以下是她的演讲记录,雷锋网编辑在不影响原意表达的基础上略有删减和整理。
[Dawn Song]
深度学习已经改变了安全形势和安全能力,深度学习能够使我们的认知系统变得更加强大,能够广泛的部署在各种产品当中,而且它能够让我们获得新的能力,更好识别恶意软件、欺诈。现在,我们已经进入到一个新物联网时代,今后几年,数十亿联网设备将被部署在其中,今天我要给大家来介绍一下我们最近的工作——深度学习如何帮助我们解决 IoT 设备的安全问题。
IoT 设备可以在不同的硬件平台上部署。与此同时,我们也会有开源代码软件,它们可能会有一些共同的漏洞。当我们发现了一个新漏洞,如何扫描这些不同的 IoT 设备的固件?如何识别这些 IoT 的设备?是不是能够去除掉这些漏洞?这是具有挑战的问题。
我们可能会有不同的固件,而且它们是在不同的平台上进行部署。而我们现在只有这些固件的二进制代码,虽然说它们可能会有同样的开源代码,但是也会有漏洞。固件的功能又不一样,我们如何确保不同的功能固件获得同样的语义?如何发现这些不同固件的功能?如何识别一些共同的弱点和漏洞?
我们首先会获得一个固件的文件,看到漏洞,进行特征提取。之后识别,并且分析这些功能从语义角度上是不是相似。在这个案例中,就是使用深度学习进行嵌入,而这样的嵌入都是多维度的。计算机可以使用深度学习让嵌入变得相似。如果两个功能有着相似的语义,它的功能就变得相似。
我们有代码图形,也会从这个代码图形当中提取一个高维数据。也会有端到端的培训方法,如果这两个代码图形是来自于相似的功能,那么计算机就会获得一个语义学的相似性。在我们的研究当中,之前的方法可能需要花费几分钟的时间来进行功能评估。而现在基于深度学习,却只需要几毫秒。
从培训时间看,之前我们可能会花费一周多来进行培训,而现在我们只需要不到 30 分钟就能完成。对于漏洞识别,我们的方法也能提供更加高的准确度。比如,在前 50 个高漏洞威胁中,42个是确定有漏洞的,比之前的漏洞识别准确率高很多。
下一步,AI 也将会带来更高的安全能力,而事实上,AI 可以颠覆很多不同的域名,包括安全领域。在补丁和防护措施的建立上,它都能够起到很大作用。不管你是打游戏还是下围棋,我们都可以通过 AI 来识别潜在的攻击,另外 AI 也能够帮助更好实现自动化。比如,在验证软件安全时,都可以利用 AI 来实现自动化。
安全和 AI 其实可以互相促进。谈到开发 AI 系统时,必须要把 AI 放在攻击者的角度来进行考虑。历史已经告诉我们,攻击者一直都会跟随我们全新开发的技术的脚步,有时甚至会引领。
现在我们面临的风险在 AI 领域会更高,因为 AI 会控制越来越多的体系和系统。当我们开发出更高的 AI能力时,如果一个攻击者滥用或者利用 AI 的话,后果会更严重。
当我们开发 AI 系统时,必须从攻击者的角度来进行思考。这时,我们会看到有两个不同的问题。第一,攻击者如何来攻击 AI,让系统做出错误的决策,或者攻击者可以根据自己的目的来设计最后的结果。所以,我们要提升学习的系统,建筑防火墙,我们也需要有更好的安全系统再嵌入到深度学习的体系中。
另外,攻击者也可以滥用 AI,利用 AI 来攻击其他的体系。比如,找到其他系统中的漏洞和弱点,这样来开展更具有难度的攻击,所以我们的学习系统也必须有更好的安全性。
在之后的演讲中,我将介绍攻击者如何来进行 AI 的攻击。
虽然,深度学习系统已经取得了如此巨大的进展,但是,深度学习的系统也很容易被混淆。你可以看到,左边是最初的一些图像,它是通过我们的图像识别系统进行的归类识别,右边是一个对抗的样本,而这样对抗的样本是攻击者来运作的。这些图像非常小,肉眼根本就看不太出来。
但是,对抗的样本会让我们图像识别系统进行错误的识别。比如,本来不是鸵鸟而识别成了鸵鸟,这是谷歌的研究者所发现的一个深度学习的弱点。
为什么这是一个非常重要的问题?比如,我们现在有自动驾驶汽车,这个汽车需要根据周边的环境做出决策。比如,它会看交通灯,来确定这到底是一个停车的标志还是一个其他的标志,从而对车发出指令。
对人类的眼睛而言,这些交通灯代表着一定的意义。但是,一些故意制造出来的对抗样本会误导电脑系统,让系统错误决策。这样的攻击不仅会在现实世界中发生,而且也会从不同的距离或者不同的视角影响到交通标志的识别。
这样的问题会带来非常严重的后果。当我们开发机器人或者是自动驾驶时,很容易受到攻击。
最近,我们做了一些关于对抗样本的研究,涉及到不同类型的深度学习。我们得出的结论就是:对于对抗样本的问题,在不同类型的深度学习系统中都是普遍存在的。比如,在深度模型、深度学习、图形选择、图形到代码、黑箱攻击中,都会存在这样的对抗样本的问题。
对攻击者来说,他可能会知道学习系统的一些具体内容,包括样本和图像。另外,他也会知道什么时候可以启动黑箱攻击,攻击者不需要知道你的模型是什么,或者你的培训数据是什么,就能发动这样的黑箱攻击。
接下来的一个例子是我们最近开展的一项工作,讲到的是这个问题如何会带来非常严重的安全问题。在这个例子当中,我们关注的是一种叫做生成性模型的学习系统。这种模型包括两个步骤,第一个是它的编码过程,另一个是解码过程。
在这样的生成性模型中,输入会进入到一个编码阶段,然后会生成一个潜在表,然后会进入一个解码的过程,进行一个重构。为什么我们对这样一种模型感兴趣?对于生成性模型而言,有一个例子就是图像压缩,现在图像压缩已经达到很高的水平。
对抗样本如何通过这样的图形压缩带来非常严重的问题?
现在我们使用了很多摄像头,安全摄像头会收集图像,对图像进行压缩,存储压缩的图像,扔掉原来的图像。如果攻击者可以生成原来输入的一个对抗样本,比如,第7个图像生成这样一个对抗样本,那么第7个图像经过压缩后,这个压缩图像再被解压缩时,原来的图像就是一个对抗样本,这时对象样本就会被解压缩出来,但是它和原来的图像是完全不一样的。
在这种情况下,对于攻击者来说,他们会对这个图像来进行压缩。现在有了这样一个对抗样本,最终解压缩的图像可能完全不同于原来的图像。
这样的对抗样本会带来非常严重的问题。
我们看看这样的对抗样本在生成模型中如何形成对图像的压缩。这是一个标准的图像集,左下角是原来的图像,是一个手写的数字,右边是对原来图像的重构,这个重构的图像看起来和原来的图像非常像。
这是 Google 的数据,攻击者可以生成一个样本进行重构,重构之后,和目标图像也非常类似。这是我们的数据集,大家可以看到,对于攻击者而言,可以创建非常成功的对抗样本,再经过解压或者重构之后,对于解构出来的对抗样本,和原来的样本非常类似。
在过去的几年,我们也提出了很多防卫措施。比如,有 100 多篇论文提出了不同类型的防卫措施应对这样些对抗样本的问题。但是,现在我们并没有有效的防卫措施应对对抗样本的攻击,比如,那些特别强的攻击者,我们无法应对。有时即使我们想要去解构,即使我们想要完全模拟这样的对抗样本,也无法找到非常强大的防卫措施。
攻击者还可以对抗机器学习,在培训时就进行攻击,攻击者可以让你的培训集中毒,可以让你的学习系统学习一个错误的模型。对抗型的机器学习对安全应用来说相当关键。
安全应该是 AI 领域非常重大的一个挑战。我们也需要考虑如何能够为学习系统建立一个更加安全的体系,我们需要从不同的层面来考虑学习系统的安全,包括软件学习,还有分发层。在软件层面,我们的目标就是为了确保不存在任何软件的安全隐患,不让攻击者影响到我们的学习系统,或者是控制学习系统。
更为重要的,以及非常具有挑战性的是在学习层面,以及在分布层面的挑战。
首先我们看一下在学习层面的安全所面临的挑战。
在学习层面加强安全性,首先我们需要去了解复杂类、非符号的一些程序。现在我们对于符号性的程序非常熟悉,主要就是 OS 或者是文件系统、编辑器、网络应用或者移动应用等等。在这方面,我们也有数十年的经验,也有很多的工具分析这样的符号性推理。比如,有解算器、SMT 以及抽象解释这样的方法。现,我们已经进入了一个正式的验证系统时代,都是基于数十年的经验总结,也是基于多个团队努力的结果。
对于自动驾驶汽车,我们希望确保自动驾驶汽车不会轧到人。但是对于人的定义来说,好像现在我们还没有一个具体明确的安全上的概念。对于这样一个学习系统如何运行,我们也知之甚少,对于深度学习如何使用,我们也知之甚少。如何告诉这些系统怎么样行为,以及如何来解答一些问题,都是知之甚少的。更大的问题是,对于传统的一些符号推理的技术,并不适用于机器学习、深度学习,现在我们需要努力解决这些问题。
另外一个挑战是:我们需要开发新的网络特征,才能够实现更好的泛化和安全的保障。之前我们也提到过,虽然深度学习的体系已经取得了这么大的进展,但是遗憾的是,我们却不能很好了解他们将会如何表现,包括在以前没有遇到的一些状况下,他们将会如何反应,这就是一个泛化的问题。
在这里我给大家一些具体的例子,是我们最近开展的工作,可以看看我们如何开发更好的神经网络特征,才能实现更好的泛化和安全保障。
这样的应用领域就是神经程序合成,我们要培训这些神经的体系,包括让它们进行计算,帮助他们来进行分类,我们也是从 Google,还有 Deep Mind 吸取经验,开发不同的神经网络特征。
但是,遗憾的是,对所有的这些特征,有两个重要的挑战:第一个是所有的以前的方法没有实现很好的泛化。也就是说,当你培训这个神经系统时,比如,做三位数的加法,它没办法正确做出。三位数和六位数做加法的方法都是不一样的;第二个问题就是当你来测试这样的神经程序时,他们能够正确解决问题。比如。它能够做六位数的加法,但是我们不能够保证这样的一个神经网络当面临做 6+1的计算的时候,它将会如何进行反应。所以我们需要开发出一个新的方法来解决刚才提到的两个问题。
我们的方法就是要进行神经项目架构的泛化,所以要考虑它的架构,并且对它进行很好的培训。通过采取这样的方式,我们能够解决两个之前提到的问题:第一,我们可以使用规划和循环的方法,来实现既定的目标。当我们的神经程序通过这样一个认知验证之后,它能够使用递归循环的方式,就能够证明这样一个神经程序很好的进行泛化。也就是说,它们能够正确的进行运作,这是之前的方法没有办法来实现的;第二,我们希望使用这样递归循环泛化神经时,可以通过递归循环泛化神经来进行一个程序架构的设计。
递归循环能够为神经程序提供保障,证明通过验证程序的学习递归泛化,测试可能的技术案例和还原的规则。
另外,当我们在开发新的神经网络特征时,也可以寻找新的架构和方法,促进强大的泛化和安全保证,进行递归、神经模块和神经架构,更容易推理、模块和泛化。我们也可以开展一些机器人的工作,包括我们如何来开发新的神经网络的特征,来实现更好的泛化,还有安全的保证。
到目前为止,我只提到了几个例子,这些都是非常重要的挑战,包括在学习这个层级的学习系统的挑战。这个名单非常长,我只能给大家选取其中的两个例子。从本地的层面来讲,其实会有很大的挑战,我们如何来确保每个媒介能够做出本地的决策,如何让好的本地决策带来良好的全球决策。
现在我们看一下攻击者会如何来袭击 AI,这是一个非常重要的问题。当我们来开发新的 AI 能力的时候,攻击者也可以来误导 AI,包括误导他们去找到其他系统当中的漏洞,或者是开展更加具有杀伤性的袭击。
总的来讲,我也给大家介绍了一些现在尚未解决的问题,还有 AI 和安全的问题。我想说,基于我 20 多年的研究经验,包括在计算机安全领域的经验,我想告诉各位,我们现在面临的问题和挑战其实都是最为严重的一些问题。当我们开发 AI 体系的时候,安全就必须要放在 AI 系统里。
另外我也深信,安全将会成为最为应用 AI 时的重大挑战之一。因此,我们需要在最开始就把安全纳入到AI 系统当中,保护 AI 的安全非常重要。
应对未来的 AI 和安全挑战,我们如何更好地理解安全的含义?AI 和学习系统如何建造一个更加灵活的体系进行防卫?如何做出正确的决策来确保安全的 AI?这些都是非常激动人心的开放问题。我想这一切都至关重要,当我们进军 AI 和安全领域时,我们应该统一考虑。
雷锋网。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。