本文作者:Guarav Banga
最近,我参加了由十几位CISO(首席信息安全官)组成的思想领导力讨论会,我们就一系列网络安全问题进行了杰斐逊式的讨论。讨论会上提出的第一个问题就是大家如何看待人工智能,以及是否在使用人工智能。许多的与会者表示,他们的机器学习项目目前正在进行之中,但同时也强调,在网络安全领域并没有使用到人工智能技术。
人工智能这个词确实值得我们幻想,而且也符合我们对人类智能、图灵测试以及科幻电影的认知。可惜的是,正如我在CISO(首席信息安全官)晚宴上所阐述的那样,人们对“人工智能是什么”这个问题还存在着一些困惑,虽然近年来很多人都在提人工智能,但人们的困惑并没有得到解除。
本文由三部分组成,首先我们探讨一下人类智能与人工智能的一些基本概念,并解释当今比较流行的一些词汇,包括人工智能、机器学习、专家系统和深度学习之间的差异。最后,我们将讨论人工智能在网络安全应用中的真实情况,以及为什么我们需要把它作为一种战略工具。
什么是智能?
在进一步讨论人工智能这个话题之前,让我们首先来定义什么是智能(译者注:在英文中,智能即intelligence)。智能在广义上是相当复杂的,在科学和哲学的许多方面都存在着激烈的争论。但在本文中,我提供了下面这个定义。
对于智能,我有两个很重要的观点。首先,许多科学家认为,人类的智能根源于大脑如何在多种不同类型的感官数据中发现并存储具有相关性的分层模式。例如,当你在捕获的数据包或日志文件中看到某个网络名称中存在“Gaurav-iPhone”的时候,你会很自然地想到这很有可能是你的朋友Gaurav的iPhone。你会无意识地将有关同事姓名的知识与有关常用设备类型的知识联系起来。在生活中,你会不断地无意识地去更新这两个模型,并且会受到来自于多源的多媒体感官输入的影响,这些源包括Apple的广告、电视节目、电子邮件、文章以及走廊上的谈话。你可以试着将这个过程与传统的任意字符串模式匹配程序做个比较,并且在输入的灵活性和输出的准确性上保持一致。
其次,智能是一种预测,这是解决问题的一种方法。比如:你的眼睛正试图看到它所能看到的一切,与此同时,大脑会根据它期望眼睛所能看到的东西来通过神经系统向眼睛发送预测信息。这种预测机制“填补”了本没有意识到的东西,也就是为什么你无法正常识别视觉盲点的原因。这种预测机制也让你能够在晚上漆黑一片的卧室里行走而不会被绊倒:你的大脑向运动神经系统发送信号,为肌肉提供一个行走时所期望的模型。
常规的人工智能与狭义人工智能
人工智能这个概念最初是由一些探索超越传统程序的计算机科学家在20世纪50年代提出来的。他们受到了超智能程序的启发,该程序的智能特征与人类相似,比如“星球大战”中的R2D2和C-3PO,以及SupermanIII中的超级计算机,这是常规的人工智能。常规的人工智能在今天并不存在。我们不知道如何模仿人类大脑进行工作,甚至不知道模仿它的一小部分智能。
今天存在的人工智能,我们可以称之为狭义人工智能。现在有许多很有用的产品使用到了狭义人工智能,他们可以保质保量地执行一些任务,甚至比人类做得更好。例如亚马逊的Alexa,它的输入范围是有限的,但同时结合了多种狭义人工智能技术来完成某些任务,这让人错误地认为它具有智能。当前的国际象棋和围棋世界冠军也是狭义人工智能的运用。这些狭义人工智能系统拥有前面讨论过的三个智能元素:存储特定领域的知识、获取新知识的机制以及使用这些知识的机制。
当前也存在着几种通过狭义人工智能来解决网络安全领域问题的方法。虽然,能够通过图灵测试并取代安全团队成员的安全机器人并不存在,但是,基于狭义人工智能的工具能够提前发现威胁和漏洞,并且能够比大多数人更好地衡量安全状况。
人工智能、机器学习、专家系统和深度学习之间的区别
机器学习是归纳算法的应用,是知识获取过程的第一步,是在20世纪60年代探索人工智能的过程中产生的。机器学习可以说是侧重于“学习”的算法。计算机不是通过编写特定的计算机指令来完成任务,而是使用大量数据进行“训练”,使其能够学习如何执行任务。用于训练的样本可以由外部提供,也可以由知识发现过程的前一阶段提供。
这么多年来,出现了很多种机器学习算法,包括决策树、归纳逻辑、聚类、贝叶斯网络和人工神经网络。人工智能与统计学密切相关,甚至相互重叠。
机器学习被认为是脱胎于专家系统,但又与之不同,专家系统是根据精心准备的知识体系(规则)通过基于模糊规则的推理来解决问题的。专家系统被吹捧为20世纪80年代人工智能最成功的案例。专家系统背后的原理是,智能系统从它们所拥有的知识中获取能力,而不是从它们使用的特定推理策略中获取能力。简而言之,专家系统拥有知识,但并不完全会自学。它们需要人类程序员或操作员来让它们变得更加聪明。但是,如果根据我们对智能的定义进行判断的话,它们并不聪明。
现在回到会学习的系统上来。机器学习很难,因为在多个维度的数据之间关联模式是一个难题。这是一个大数据和计算密集型问题。人类大脑不断地从大量的源并且跨越多个维度获取大量的感官数据,慢慢地完善它的模型,然后才能达到网络安全团队中熟练员工的智能和专业知识水平。请设想一下一个大学毕业生大脑所接受的训练数据量(标记的和未标记的)。在大多数情况下,适用于机器学习系统的训练数据相当稀少,从而使得机器学习程序无法提供准确的结果。
人工神经网络和深度学习
近年来,我们看到一种被称为深度学习的机器学习技术发展十分迅速,这是一种早期机器学习方法人工神经网络的演进,该神经网络是受到人类大脑结构的启发而创造出来的。在神经网络中,每个节点都会为其输入分配权重,以表示其正在执行的操作的正确与否。最终的输出由这些权重的和决定。实际运用中的神经网络有许多层,每个层对应于神经网络要完成的各个子任务。
神经网络报告的输出采用“概率向量”的形式,例如,系统可能会说该图像有90%的确信度包含给定的动物,该动物有25%的确信度是鳄鱼。
直到目前为止,神经网络的研究几乎没有产生任何可以称之为“智能”的东西。预测输出的确信度很低,因此并没有什么用。你可能已经想到,目前遇到的最基本的问题是,即使是最基本的神经网络,它的计算密集度也很高,建立和使用神经网络来完成复杂的任务是不切实际的。多伦多大学的GeoffreyHinton领导的一个小型研究小组一直在研究这个问题,他们将超级计算机的算法并行化,并证明了这个观点。
为了理解这个问题,我们举一个计算机视觉和自动驾驶汽车方面的例子:识别交通停车标志。当停车标志检测神经网络在训练的时候,很可能会出现很多不正确的答案。例如,它在良好的能见度下可能就做得很好,但在恶劣的天气条件下就不行。这个网络需要大量的训练。它需要看到成千上万,甚至数百万的图像,直到各种神经元输入的权重都调好为止,并且无论环境条件如何,它每次都能得出正确的答案。直到做到这一点,我们可能才会说这个神经网络已经学会了停车标志的样子。
这正是2012年吴恩达(Andrew Ng)在谷歌所做的事情。吴恩达的重大突破是增加神经网络中的层数和神经元的数量,然后通过运行海量数据来训练它,这些海量数据主要是1000万个来自YouTube视频的图像。深度学习中的“深度”表示这种神经网络包含了的大量层。谷歌大脑项目是一个在16000个CPU核上使用深度学习算法训练的神经网络。该系统已经学会了在YouTube视频中识别一些东西,例如“猫”,即使该系统从未被告知过“猫”是什么。神经网络能“看到”猫这个视觉图像、包含单词“猫”的视觉图像,以及包含单词“猫”的音频之间的相关性,并且将这种相关性学习为知识,就像一个小孩子一样。
今天,基于深度学习的图像识别通常做得比人类更好,例如自动驾驶车辆、识别血液中的癌症和核磁共振扫描图像中的肿瘤。还有很多深度学习的变体得到了积极地改进和运用。有些模型可以进行堆叠以产生更高级的分类能力。以下图片来自于亚马逊Rekognition System的演示,深度学习技术能识别出图像和视频流中的对象、面部和上下文。
这样的系统是否算是智能呢?由于深度学习和其他先进的机器学习算法确实在它们各自的领域进行了学习,并变得相当的博学,因此它们确实拥有了“智能”的两个关键因素。
这样的系统是否知道如何运用它们的知识来解决问题呢?狭义人工智能系统目前需要人工干预才能与现实世界的问题解决工作流程相关联、与传统系统以及其他人员进行交互。人们需要懂得将检测跟踪人员的交通摄像机与其他的面部检测和图像检测系统相融合,使用来自加利福尼亚DMV驾驶执照的图像数据和汽车牌照数据库进行训练。
如果在公共场所安装这样的系统,我们就能大大提高社区的犯罪打击能力。试想一下,这样还可能会产生倍增效应,我们的警察、安全人员和调查人员每天都有提高工作效率和速度的潜力!如果拿这种狭义人工智能作为武器,这些特勤人员的工作效率会变得更高。
人工智能(AI)、机器学习(ML)、专家系统和深度学习之间的关系也可以参照下面的维恩图进行理解。
人工智能、机器学习和深度学习在网络安全领域中的应用
网络安全问题可以理解为保证计算机系统的机密性、可用性和完整性。网络防御主要包含以下三个方面:
1. 漏洞评估。
2. 设置和管理有效的安全控制。
3. 安全事件的处理和响应。
近年来,网络安全已经成为一个多维度问题。随着业务的“计算机化”,漏洞的数量和种类急剧增加。安全研究人员和黑客们每天都会发现危害计算机系统的新方法。
让我们从攻击层面来说明这一点,比如业务应用程序和共享的密码。企业用户的雅虎或LinkedIn密码可能与某个企业应用的密码相同。因此,如果雅虎或LinkedIn遭到攻击并且密码被盗(并且没有设置秘钥),那么你就会遇到了一个问题:黑客有100万种方法来进入企业应用。
通常,防御者并不知道密码共享这个风险对他们的业务会有什么影响。在这个时候,你最好希望你的双因素身份认证配置正确并且有效。
攻击者利用多个漏洞来攻破你的网络,然后跳转到目标系统上,提升他们的访问权限,最后进行攻击、泄露或破坏信息。对于一个拥有一万多人的机构来说,我们估计在攻击层面上有超过1亿个时变因素。
这不再是一个人的问题了,需要手工分析的数据实在太多了。
为了防止网络被攻破,防御者必须要及时发现并解决这些漏洞,这通常涉及到对系统的重新设置或给系统打补丁、用户培训、安装其他安全软件、优化流程。
最后,虽然我们尽了最大的努力,网络还是被攻破了。安全管理员每天需要处理的安全报警数量一直都在增长。报警的处理涉及到从多个系统获取数据,这相当乏味,而且很耗时。大多数机构都没有足够训练有素的人员来处理每天发生的安全警报。
网络安全中的人工智能
现在,想象一下,如果你拥有一套经过训练的自学系统,该系统能够自动而又连续地从各种各样的源中收集有关企业的数据,并对数百个维度的模式进行关联。该系统包含了下面这几种智能:
1. 了解企业资产相关的所有详细信息(配置、使用情况等等),包括所有设备、用户和应用程序,包括内部的和外部的。
2. 深入了解每个资产和用户在业务上的重要程度。
3. 及时更新全球和行业特定威胁的最新知识,也就是说每天或每周最新的威胁。
4. 深入理解已经部署的各种安全产品和流程。
5. 综合上述第1-4项中的所有信息,计算你的有效风险,并预测最有可能被攻击的地方和方式。
6. 提供规范性的建议,说明如何进行配置和增强安全控制和流程,提高网络弹性,但同时不会对业务运营产生负面影响。
7. 为安全警报的处理优先级和处理方式提供尽可能多的参考信息,并尽可能地减小对其影响。
8. 通过提供多种不同的可视化界面和报告,向所有的利益相关者,比如用户、业务所有者、安全操作员、CISO(信息安全官)、审计员、首席信息官、首席执行官和董事会成员提供相关信息,解释其预测和建议。
本文由网易易盾组织翻译