人工智能在安全漏洞中应用探析

人工智能在安全漏洞中应用探析

摘要:近年来,我国信息技术高速发展,信息传递效率不断提高,传递渠道越发丰富,为人工智能技术打下了坚实的基础。目前,人工智能技术已经在各个领域被广泛应用,尤其是在网络空间上,可以有效提高寻找安全漏洞的效率,并可以更加智能化地处理安全漏洞,具有广阔的应用空间,本文对人工智能技术在安全漏洞领域的应用进行了讨论。

关键词:人工智能技术;安全漏洞;自动化漏洞评估

随着科技水平不断提高,和智能手机的普及,我国已经进入到互联网时代,人们的生活、工作模式发生了巨大改变,各种软件和信息系统有着越来越重要的作用,数量大规模增长。在这个背景下,安全漏洞也随之增多,对人们信息安全和财产安全造成了重大威胁,人工的方式已经很难满足信息系统的安全需求,而人工智能技术则成了安全漏洞领域新的发展方向。

1安全漏洞概述及危害

安全漏洞是信息系统、信息产品在设计、运行、配置过程中产生的缺陷,这些缺陷以各种形式存在于信息系统之中,影响着信息系统的各个层次、环节,会阻碍信息系统正常运作,使系统运行存在一定的安全风险。如果这些安全漏洞被不法分子利用,将会影响信息系统的机密性、稳定性、安全性,进而影响信息系统的运作,可能会导致重要信息泄露,系统停止运转等情况,如果通过安全漏洞控制了整个信息系统,甚至可能会造成财产损失,安全漏洞的研究,一直是信息系统安全和网络空间安全的重要研究方向。安全漏洞领域的研究主要是漏洞挖掘、评估漏洞、分析漏洞、修复漏洞等方向,目的是最终消除所有的安全漏洞,保证信息系统正常运转。近年来,随着我国经济不断发展,科技水平不断提高,人们的生活、工作模式发生了巨大的改变,各种软件系统大规模增加,功能越来越完善,复杂程度越来越高,其中蕴含的安全漏洞也自然而然地增加了。根据美国国家漏洞数据库的数据显示,2017年漏洞记录数量是2016年的2倍多,并且上升趋势越来越明显。安全漏洞对软件系统有着巨大的影响,甚至会造成巨大经济损失,因此安全漏洞的研究越发重要。

2人工智能技术在安全漏洞领域的应用优势

近年来,随着信息技术不断发展,人工智能领域也有了巨大的突破,人工智能技术逐渐成熟,智能化程度、反应速度、学习能力、自然语言处理能力不断提高。在系统安全领域,人工智能技术已经被应用到了恶意软件检测、入侵检测之中,取得了良好效果。目前,已经出现将人工智能技术应用在安全漏洞领域的趋势了。在安全漏洞领域,人工智能技术可以通过程序代码,对漏洞报告进行自动化处理,全面提取漏洞信息,通过深度学习技术、自然语言处理技术,实现安全漏洞的自动化研究,提高安全漏洞的研究深度和研究广度。通过机器学习,人工智能技术可以模拟人类的思维逻辑和行为习惯,不断获取新的知识和技能,可以不断完善计算机系统的自身的性能,以此来提高漏洞信息的处理效率和处理能力,能有效弥补人工方式工作能力不足的问题。人工智能技术的监督学习能力,非常适合安全漏洞的研究工作,包括数据处理、建立算法模型、训练、测试、评估等功能,能很好地构造漏洞模型,并且训练及测试各种处理方法。因此,人工智能技术在安全漏洞领域有着很大的应用空间。

3人工智能技术在安全漏洞领域的应用

传统的安全漏洞研究方法需要研究人员具备足够的专业知识和研究经验,并且进行大量对比、分析、综合、记录工作,这种漏洞研究方法的效率低下,而且受人为因素影响较大,研究结果的准确性较差,研究方向有限,往往不能覆盖到安全漏洞领域的各个方向,无法将研究结果有效利用起来,缺乏适用性。将人工智能技术应用安全漏洞领域,能实现智能化研究,提高研究的精度和广度。

(1)自动化安全漏洞挖掘。安全漏洞挖掘问题本质上是一种程序分类、程序聚合问题,原理是将安全漏洞从正常的信息系统程序中区分出来,或是将安全漏洞集中在一起,统一进行处理。人工智能技术应用在安全漏洞挖掘中,可以建立基于软件度量的漏洞挖掘模型。软件度量可以对软件开发项目和产品的数据定义,进行预测、预估、控制,并提供软件运行过程中的各种信息。软件度量是安全漏洞挖掘的特征选择之一,包括复杂度量、代码变化度量、内聚度量、开发者活动度量等方式[1]。早期软件度量的作用是检测程序故障,复杂度度量是安全研究人员的优先选择,但同时软件的高复杂度也阻碍了研究人员对信息程序的理解,无法应用在安全漏洞的挖掘上。同样的,其余的度量也无法单独反映出系统漏洞。人工智能技术拥有深度自学能力,可以深刻理解复杂度度量、代码变化度量、内聚度量等度量方式的内在原理,并将其综合利用,在一定程度上反映出哪些文件中可能会包含漏洞,并且基于度量结果,构建漏洞挖掘模型。但是构建出的漏洞挖掘模型的性能依然较低,这是因为这些度量方式与安全漏洞没有很强的相关性,因此还要从漏洞出发,开发结合安全漏洞的代码特征,才能让人工智能更好应用于安全漏洞挖掘之中。代码属性不同于软件度量,而是软件度量的一种进阶,可以在代码层次上进行统计,将代码与安全漏洞连接起来,从而获得更好的检测效果[2]。这个过程需要对缓冲区溢出漏洞进行挖掘,包括输入分类、输入验证等工作,工作量巨大,同时代码属性的应用范围较窄,均是研究人员依靠经验进行选择的,具有一定主观性。应用人工智能技术,可以通过计算机强大的处理能力,减少研究人员的工作量,并且结果更加准确,并且能同时兼顾各个代码属性,具有很强的客观性,可以完善漏洞挖掘模型,达到自动化的漏洞挖掘。

(2)人工智能技术与程序分析相结合。程序分析在安全漏洞领域有着重要作用,可以分析出漏洞的位置、性质和原理,包括静态分析技术和动态分析技术,但两种分析技术都存在一定的缺陷,通过与人工智能技术相结合,可以弥补或消除这些缺陷,提高程序的性能。静态分析技术需要非常大的储存空间来处理信息样本,误报率高,而应用人工智能技术可以快速处理大量的信息样本,压缩信息样本所占用的空间。同时,人工智能技术可以确定软件系统中可疑函数的集合,并利用可疑函数的集合来指导符号执行,可以有效减少路径的数量,提高了符号执行的性能,从而人工智能技术可以提高静态分析的效率和准确率。对于动态分析技术,程序分析中的Fuzzing测试需要生成有效的测试样例,才能触发漏洞。人工智能技术可以提高Fuzzing测试的效率,并且可以提升代码覆盖率,进而指导程序分析技术进行更有效的漏洞挖掘。另外,在安全漏洞分析过程中,人工智能技术的学习算法有着重要作用。支持向量机、决策树、随机森林等都是主要的安全漏洞算法,不同算法间存在显著差别,反应漏洞的侧重点也有所不同,同时不同算法对于数据信息特征的利用程度不同,也会产生不同的效果,因此算法的选择对漏洞的研究结果也有很大影响。人工智能的学习算法可以使用多种漏洞算法,对漏洞进行综合分析,弥补传统漏洞预测的缺陷,可以取得特征数据的最优检测结果,使漏洞模型更加完善。

(3)跨项目漏洞挖掘。传统的安全漏洞领域研究都集中在项目内漏洞的挖掘上,对于跨项目漏洞挖掘的研究较少。跨项目漏洞挖掘是指将一个成形的漏洞完结模型,应用在另一个项目中。在软件系统的开发中,经常需要对新启动的项目进行漏洞挖掘,保证软件系统能够正常运行,但由于缺乏使用数据,无法形成自身的漏洞挖掘模型,便需要进行跨项目漏洞挖掘。但是不同项目的应用领域、编程语言、设计理念、软件度量方式都可能不同,给跨项目挖掘造成了很大障碍。而应用人工智能技术,可以进行跨系统的迁移学习,人工智能通过对两个软件系统进行学习,可以将学到的漏洞模型参数应用新的系统中,从而加快新系统的漏洞模型构建效率,为跨项目挖掘提供良好的基础。通过对不同的信息系统进行缺陷性测验可知,利用AST表征代码信息进行跨项目挖掘,可以加快信息系统的漏洞模型构建速度,能明显提高基于软件度量的模型效果。

(4)自动化漏洞利用。自动化漏洞利用是安全漏洞领域研究的重要方向,需要定位漏洞位置,通过符号执行技术快速找到通往漏洞的路径,并监控信息程序的运动过程,获取实际运行时的布局信息,并自动化的生成漏洞利用,但是这种技术能处理的漏洞种类有所限制,不能广泛的应用。将人工智能技术应用在漏洞利用的自动化生成领域,可以快速获取漏洞相关的软件名、版本号、类型信息等,并对漏洞进行定位,并通过NLP技术,综合处理这些信息源,可以实现漏洞利用的自动化生成。人工智能系统通过对漏洞的自然语言描述,可以从身份验证、识别性影响、访问向量等方面开展文本学习,构建学习模型,能够对漏洞的严重程度进行智能化评估,准确率能达到78%以上[3]。基于自动化漏洞利用和自动化漏洞评估,应用人工智能技术还可以辅助漏洞修复工作。漏洞修复工作非常复杂,需要根据漏洞的类型和漏洞对程序运行状态的影响,决定修复方式,对程序进行修改,同时还要保证修复之后不会产生其他的漏洞。目前人工修复依然是主要的漏洞修复方式,能够更合理地配置修复资源,提高修复质量。但是应用人工智能技术能提高漏洞修复效果的检测能力,帮助修复人员完成大部分重复性、程序性的工作。

4结论

综上所述,在软件系统应用越来越广泛的今天,安全漏洞问题越来越重要,影响着信息系统能否正常运行,关乎着人们的信息安全和财产安全。在信息技术上诞生的人工智能技术,可以完善漏洞挖掘模型,提高程序分析的效果,可以实现跨项目漏洞挖掘,实现自动化漏洞利用和智能化漏洞评估,在安全漏洞领域有着广泛的应用空间。

参考文献:

[1]孙鸿宇,何远,王基策,等.人工智能技术在安全漏洞领域的应用[J].通信学报,2018,39(8):1-17.

[2]张宸瑜.人工智能技术在网络空间安全防御中的应用研究[J].中文信息,2019(1):23.

[3]金晶,邹晶晶.人工智能在网络空间安全领域的发展[J].国防科技,2018,39(4):43-46,51.

作者:冯蕴 单位:重庆广播电视集团(总台)技术制播中心