人工智能技术的发展和应用不断推动网络安全攻防的自动化、智能化。目前人工智能技术已尝试开始应用于恶意代码检测、恶意流量分析、漏洞挖掘、僵尸网络检测、网络灰产检测等各个领域。越来越多的安全企业也正在加大对人工智能研究的投入,并将人工智能安全作为业务发展的重点。
Gartner在其2020年十大战略技术趋势报告中明确表示,人工智能安全将是未来最重要的战略技术趋势之一。未来五年,人工智能将广泛应用于增强人类决策能力的产品和系统中。但纵观整个网络安全行业,虽然不少信息安全企业提出了人工智能、大数据驱动的口号,但实际应用似乎还很少。目前国内做细分AI安全领域的厂商动力仍然不足,因为紧跟技术趋势的产品会打破传统安全时代客户的固化采购思维,市场对AI安全产品的接受度还有待提高。
放眼国内,近年来我国的信息安全体系日趋完善,智能攻防技术也快速发展。2017年以来,RHG(Robot Hacking Game)竞赛在国内逐渐兴起。RHG类似于美国DEFCON发起的CGC比赛。此类竞赛的目标是推动智能攻防技术的进步,标志着漏洞攻防的逐步发展,并向着智能化方向进步。在2023年称为网络安全“奥运会”的网鼎杯全国总决赛赛场上,也出现了RHG的身影。陇剑杯全国总决赛也在全国同类赛事中首次引入了“人工智能人机对抗”。
如今,攻击技术和防御方法不断创新。为了建立完全自动化的攻防系统,智能模糊测试技术就变得尤为重要。智能模糊测试是一种自动化的软件安全性和鲁棒性检测技术,利用AI算法构造海量的非预期测试数据并尝试“破坏”应用程序以引发崩溃,从而发现应用程序或系统中的安全漏洞和缺陷。在CGC或RHG等基于人工智能的网络安全挑战中,模糊测试技术是参赛团队的首选。因为这项技术不仅自动化程度高,而且还具有测试覆盖率高、缺陷检测准确、可重复的特点。
目前,软件漏洞挖掘主要在源代码和二进制程序两个层面进行。其中源代码的获取难度巨大,通过逆向工程来逆向分析源代码的投入成本也非常大。现有针对二进制程序的漏洞挖掘无论是实际意义还是实现难度都是最优选择。发现漏洞的方法包括逆向代码审查、模糊测试、基于规则的静态分析、基于规则的动态分析等,这些方法对于特定情况下的特定二进制程序可以产生很好的检测效果,但它们仍然存在一些先天缺陷,对人工的依赖程度非常大。
为了进一步提高模糊测试的漏洞检测能力,目前不少科研单位和企业正在尝试将GPT大模型与智能模糊测试技术相结合。首先,通过将AIGC与模糊测试相结合,该模型可以根据历史漏洞数据和程序行为特征生成更高效的测试用例,从而大幅提高测试用例质量和漏洞检测效率。
其次,在漏洞修复方面,模糊测试与AIGC相结合,可以更加快速、准确地进行代码层面的漏洞修复。传统的漏洞修复方法需要人工查找漏洞点,手动修复漏洞代码,并验证漏洞是否已修复,过程繁琐且耗时。融合AIGC技术的模糊测试可以自行修复漏洞代码,自动生成POC并验证漏洞修复的有效性,减少人工验证的时间和成本,提高修复的效率和准确性。并且漏洞修复后,通过Fuzzing技术继续进行测试和验证,可以确保修复后的代码不会引入新的漏洞或问题。
另一种比较新颖的方法是对二进制文件的程序流图(CFG)进行漏洞挖掘分析,重点关注目标文件中的函数、库函数以及各种间接跳转,获取二进制文件的控制流图的节点,并结合反汇编代码或脚本语言来识别可疑的汇编代码序列,从而快速有效地发现未知漏洞。该方法最大的特点是利用图神经网络(GNN)将图论与深度学习结合起来,突破了神经网络只能对欧几里德结构数据进行操作的限制,将神经网络强大的特征提取能力扩展到非欧几里德结构数据上,通过结果反馈和对输入生成过程的优化,力求生成更好、更少的测试输入,从而加快挖掘效率并增加挖掘深度。
AI自动化漏洞挖掘不仅仅适用于安全研究人员,对于并不擅长漏洞挖掘的开发人员而言,同样适用。随着AI自我学习的完善,未来漏洞检测率将越来越高,漏洞检测成本降越来越低,漏洞检测时间将越来越短。
原文始发于微信公众号(山石网科安全技术研究院):关于AI自动化的漏洞挖掘与利用现状