1、引言
由于当下计算机网络的爆炸式增长,随之而来的问题是数目急剧增长的网络攻击。我们社会的各种部门,从政府部门到社会上的各种关键基础设施,都十分依赖计算机网络以及信息技术。显然它们也很容易遭受网络攻击。典型的网络攻击就是使目标计算机禁用、使服务脱机或者访问目标计算机的数据。自上世纪九十年代以来,网络攻击的数量和影响已经显著增加。
网络安全指的是一系列用来保护网络设备活动和措施的,能够使得它们免遭所有可能威胁的技术。在传统的网络安全技术中,大都是静态的访问管理,安全控制系统会根据预设的定义进行保护。但是当网络攻击数目增多,越来越多的攻击会绕过这个保护机制,传统的方法也就不再够用了。
如果没有足够有效的网络安全技术,公司、国家、社会的安全都会受到威胁。只是在2014-2015年间,全国有大量的网络犯罪需要被应对,涉及到Target、Anthem、蓝盾等多家公司。攻击者会使用安全系统的漏洞或者利用基础设施的漏洞,侵入计算机系统。传统的方式已经在当今不可预测的环境中完全不够用,不能再使用静态的方法进行保护,需要在第一时间防止攻击发生。
下文探索了在网络安全技术发展的过程中的需要,解释了许多当前正在使用于网络安全领域的人工智能技术。第二部分会对人工智能进行简要概述,第三部分介绍了应用在网络安全领域的人工智能技术,第四部分详细介绍了一些基于人工智能的网络安全方法,第五部分总结前文,并对后续可能的一些相关工作给出建议。
2、人工智能(Artificial Intelligence)概述
人工智能,在过去的十年来中一直是一个流行的概念。在1956年被首次提出之后,一直被描述为使用数字逻辑将事件形式化的一种方法,又称为机器智能。
人工智能中使用复杂的数字算法去模拟人类思维。人工智能的技术可以基于事件中的各种信息去理解和学习各种知识。思维的角度可以分为两个角度:思维推理过程以及行为。
可以看出,人工智能的方法更加侧重于人类行为,侧重于知识的表示和推理方法,然后开发智能代理。代理可以与其他的各种代理交互并交换互相的知识,寻找问题解决方案的过程就是在这种共享中完成的,每一个代理都是一个决策系统。
决策理论有两个方面,诊断和前瞻。Jean Pomerol等人研究了人工智能与诊断、表示和记录人类知识有很多关系。由于前瞻性决策的不确定性,人工智能没有给予足够的关注,忽视了多属性人类推理。Simon等人提出了一个有限理性模型,以用来承认人类在决策过程的不同时刻使用了多种标准。人工智能的目标一直都是寻求一种新型的自动化智能。这种只能的反应就能够像人类一样。为了实现这一目标,机器需要精确学习,这意味着机器必须通过学习算法进行训练。人工智能方法依赖于算法。并且,即便算法没有太多改进,人工智能也可以通过使用大规模计算以及大数据的方法来进行暴力学习。
人工智能有三种工作方式:
辅助智能:改善人们已经在做的事情。
增强的智能:使人们能够做他们做不到的事情。
自主智能:这是机器自主行动的特征。
关于这三类,可以得出结论,人工智能旨在解决一些最困难的问题,而网络安全属于这一类,因为网络攻击已经变得非常复杂,可能更具灾难性,并成为网络空间中的一个复杂问题。
3、网络安全中的人工智能技术
这一部分将简要概述人工智能领域的一些基本学习算法,并简要介绍人工智能的分支,例如专家系统、机器学习、深度学习以及生物启发计算等,都是在网络安全领域会被经常使用到的。
在机器学习中要使用到经验学习和训练去提高机器性能。根据Mitchel给出的定义:“如果一个计算机程序在T类任务中的性能(如P所测量的)随着经验E的提高而提高,那么它就可以从经验E中学习某类任务T和性能度量P。”目前,训练机有三种学习算法,定义如下:
有监督学习:在这种类型的学习中需要有一个带有大量标记的数据集的训练过程。对数据集可以进行划分,划分出训练集和测试集,训练集训练完成之后,使用测试集合数据进行验证。学习方法通常使用分类机制或者是回归机制。回归算法根据输入的一个或者多个连续值数字生成输出或者预测值。分类算法则是将数据分类,与回归相反,分类算法生成离散输出。
无监督学习:与有监督学习相反,无监督学习使用的是没有标记过的数据进行训练。无监督学习算法通常是用于对数据进行聚类,降维或者是数据密度估计。
强化学习:这种类型的算法是机器学习的第三大分支,是基于奖惩制度来学习最佳的行为。强化学习可以被认为是有监督学习和无监督学习的一种结合。适用于数据有限或者没有给出数据的情况。
人工智能技术包含有几个子领域,将在下面对其进行描述:
专家系统(ES):也被称为是知识系统。有两个主要组件:一个是一组知识,这是专家系统的核心,包含着积累的经验;第二个组件是推理机,用于推理预定义的知识并找到给定问题的答案。根据推理方案,系统可以解决基于案例或者基于规则的推理。
基于案例的推理:这种推理假设过去的问题案例解决方案可以用于解决新的问题案例。会通过回顾过去的类似问题案例,对新的方案进行评估,并会根据需要进行修订,然后将之添加到知识库中,这样可以不断地学习新问题并不断增加推理的正确率。
基于规则的推理:这种推理使用专家的规则来解决问题。规则由两部分组成,条件和动作。问题分两步进行分析,首先评估条件,然后采取相应适当的措施。与上述基于案例的推理不同,基于规则的系统不会自动学习新规则或者改变当前的学习规则。
专家系统可以用于网络空间安全的决策问题。通常,当有进程或者软件试图对安全系统的数据进行修改的时候,专家系统会对其评估,检查其是否恶意。专家系统通常会在合理的时间段内分析大量的修改数据。这样,专家系统可以通过实时监控去支持上述工作。当感受到恶意进程的时候,专家系统会针对其生成警告信息,然后安全专家可以根据警告信息选择对应的措施。
机器学习(ML):根据Arthur Samuel给出的定义:“机器学习是一种方法,使计算机在没有明确编程的情况下进行学习。”机器学习给我们提供了这样一种系统,可以发现并形式化数据,并且可以从经验中学习改进。学习过程会从观察示例数据开始,以用来观察对应任务数据的模式,并能够在未来出更好的决策。在有这些知识之后,系统可以看到更多未看到示例的属性。
机器学习是通过统计数据来提取信息、发现模式并得出结论的。即使在使用大量数据的时候也是如此。机器学习算法大约可以分为三类:有监督学习、无监督学习、强化学习。在网络安全领域最常用的算法有:决策树算法、支持向量机、贝叶斯算法、K-近邻算法、随机森林、关联规则算法、聚类算法、主成分分析等。
深度学习(DL):也被称为深度神经学习。它使用数据教计算机如何完成人类通常能够完成的任务。DL包括ML,机器可以通过经验和技能进行主动学习而不需要人工干预。
深度学习采用了人脑和神经元处理信号的工作机制,通过构建更为广泛的神经网络去进行训练,神经网络的精确度和性能会不断的提高。由于日常创建数据的逐渐增加,深度学习被使用的也越来越频繁。DL优于ML的优点之一就是因为它在面对大量数据的处理训练的性能和结果的优越性。与机器学习相似,深度学习也支持有监督学习、无监督学习和强化学习。通常用于网络安全领域的深度学习算法通常包括:前馈神经网络、卷积神经网络、递归神经网络、生成对抗网络、深度信念网络等等。
生物启发计算:它是一个智能算法和方法的集合,利用生物行为特性去解决广泛的复杂问题 。传统的人工智能创造的是智能,这是由机器演示过来的,由程序创造的。而生物启发的计算则是始于一套简单的规则和简单的有机体,他们与这些规则紧密对应。在仿生计算中,以下技术最常用于网络安全领域:遗传算法、进化策略、蚁群优化、粒子群优化以及人工免疫系统等等。
4、基于人工智能的网络空间安全技术
人工智能可以在短时间内高效、准确地分析大量数据。利用威胁历史,基于AI的系统可以了解过去的威胁,并利用这些知识预测未来的类似攻击,即使它们的模式发生了变化。由于这些原因,人工智能可以在网络空间中使用,人工智能可以发现攻击中的新变化和重大变化,人工智能能够处理大数据,人工智能安全系统可以不断学习,更好地应对威胁。
然而,人工智能也有一些局限性,例如:基于人工智能的系统需要大量数据,处理这些庞大数据需要很长时间和大量资源,频繁的错误警报是终端用户的问题,延迟任何所需的响应都会影响效率。此外,攻击者可以通过插入敌方输入、数据中毒和模型窃取来攻击基于AI的系统。科学家最近确定了如何利用人工智能技术来检测、阻止和应对网络攻击。最常见的网络攻击类型可分为三大类:
软件利用和恶意识别:
软件利用:软件中存在漏洞,总会有一部分是可利用漏洞。攻击者会使用这些软件漏洞攻击底层软件应用程序。比较流行的软件漏洞包括:整数溢出、SQL注入、缓冲区溢出、跨站点脚本、跨站点请求伪造等等。人类去逐行检查代码会是一项复杂的任务。但是如果计算机被教导如何检查,应该可以做到。Benoit Moral描述了人工智能帮助提高应用程序安全性的方法。提倡使用基于知识的系统、概率推理和贝叶斯算法来检测软件漏洞。
恶意软件识别:这是当下的一种常见的网络攻击方法。当前流行的恶意软件的病毒包括有病毒、蠕虫和特洛伊木马等等。由于恶意病毒对网络和社会的影响是巨大的,因此已经有很多的研究被完成。列出一些研究,例如Chowdury等人定义了一个使用数据挖掘和机器学习分类方法区队恶意软件进行分类和检测的框架;H.Hashemi等人使用K近邻和支持向量机作为机器学习分类器来检测位置恶意软件;Y.Ye等人构建了一个深度学习架构来检测智能恶意软件;N.McLaughlin等人采用了深度卷积神经网络来识别恶意软件;H.J.Zhu等人定义了一种新的机器学习算法,叫做旋转森林,以用来识别恶意软件。
网络入侵检测:
拒绝服务(DoS):这种攻击常发生在由于攻击者的行动,授权用户反而无法访问信息、设备或者其他网络资源的时候。Sabah Alzahrani等人提出了一种基于异常的分布式人工神经网络和基于特征的方法,应用两种不同方法进行防御。
入侵检测系统(IDS):这个系统可以保护计算机系统免受异常事件或者违规威胁。由于人工智能技术的灵活性和快速学习的能力,适合于应用到开发入侵检测系统中来。W.L. Al-Yaseen等人将支持向量机以及K-means算法的新版本结合起来,创建了一个适用于IDS的模型;A.H. Hamamoto等人将遗传算法和模糊逻辑用于网络入侵的检测,用来预测指定时间间隔内的网络流量。
网络钓鱼和垃圾邮件检测:
网络钓鱼攻击:这种攻击试图窃取用户身份。例如常听说的暴力攻击以及字典攻击。针对这种攻击,S.Smadi等人介绍了一种网络钓鱼检测系统,利用了神经网络和强化学习的方法检测钓鱼邮件;F.Feng等人采用蒙特卡洛算法和风险最小化方法,使用神经网络识别调用网站。
垃圾邮件检测:指的是未经允许的电子邮件,可能包含不适当的内容并可能引发安全问题。Feng等人结合支持向量机和朴素贝叶斯算法来过滤垃圾邮件。
人工智能当前可以使用于网络空间安全的各个领域,可以用来分析数据、攻击检测以及相应,并且还可以实现流程自动化,有助于网络安全专家分析并确定网络攻击的方式和防御措施。目前的一些流行方法有威胁检测和分类、网络风险评分、自动化流程和优化人工分析等等。
5、总结
网络威胁正在快速增长,网络攻击的日益复杂,当前需要新的、更强大、以及可扩展的方法。可以看到,在当前基于人工智能的网络安全算法主要的目的集中在恶意软件检测、网络入侵检测、网络钓鱼和垃圾邮件检测等。研究都是通过利用不同人工智能技术去结合,产生了很好的结果。尽管人工智能解决网络空间问题中的作用目前是不可避免的,但是对于一些基于人工智能的威胁和攻击有关的问题还仍待解决。