国内近年来也出现了类似的RHG比赛。另外,随着软件的复杂性,模糊检测技术的成熟,漏洞的数量也在增加。修补所有漏洞并不现实,人工判断漏洞的危害性也是一个耗时的过程。因此,这也促进了漏洞的自动生成。本文根据近年来安全顶级会议的探讨,首先介绍了漏洞自动化运用的研究现状,给予了漏洞自动化运用的基本架构,在最后探讨了漏洞自动化运用的未来研究方向。
近年来,漏洞的CVE数量越来越多。一方面,模糊测试在挖坑行业取得了较好的效果,另一方面,软件越来越复杂,不可避免地导致了许多安全漏洞。面对这么多漏洞,安全队很难及时修复。有关研究表明,漏洞修复的周期长达数周或数月。因此,有必要对漏洞修复的优先级进行排序。常用的策略是根据漏洞的可用性来确定漏洞的优先级。但是,手动确定脆弱性的可用性也需要时间。这是漏洞自动化运用工具的意义,自动评价漏洞的运用性,确定漏洞修复的优先级。
除了确定漏洞修复的优先级外,漏洞的自动化运用也可以评价现有的防御机制,产生新的防御构想。此外,这种工具也有助于CTF比赛和渗透测试过程。企业也可以使用这样的工具警告系统的安全风险。
总的来说,研究意义主要分为以下三点。
1.确定漏洞的可用性。
2.自动评估防御机制,促进防御探讨发展。
3.辅助渗透测试,如CTF等。
最开始有关漏洞利用自动生成的探讨是2008年的ASEG[1]。这项工作任务是基于打补丁的程序,自动生成没有打补丁的程序脆弱性。运用事实上有很多限定,但开辟了漏洞利用自动生成这个行业。过后,二零零九年,Hikylan[2]的硕士毕业论文是初次提交给定程序的崩溃输入,自动生成该漏洞的运用。后续的工作任务基本上也按照这条路继续申请。二零一一年过后,探讨ASEG的David队伍发表了AEG[3]、Manehim[4]等工作任务。早期漏洞的自动化运用基本上是这个队伍做的。到2016年,DARPA开始了CGC比赛(自动攻防),Manehim获得了第一名。在此之后的几年内,有关竹笋般涌出。2016年是一个奇怪的时间点,到2016年的工作任务大多是围绕堆栈溢出,形式化的文字串漏洞。2016年过后,许多工作任务开始尝试实现堆积漏洞(堆积溢出、UAF)的自动运用。