随着人工智能等技术的飞速发展,为模拟实战应用场景和检验企业的自动化安全攻防能力,RHG竞赛应运而生。这类竞赛为自动化攻防技术的探索和应用提供了实践的土壤。在真实攻防对抗中,攻击者常常利用“漏洞”作为突破口,攻破系统的防线。然而,系统存在缺陷是常态,漏洞很难避免,如何从漏洞利用的角度更好的分析问题所在并制定更好的防御措施至关重要。
为此,自动化漏洞利用(Automatic Exploit Generation, AEG)的技术体系应运而生,并得到了广泛的关注和使用。在网络安全领域,AEG起着极其重要的作用,帮助我们更好地防护和应对网络攻击。
AEG概念
自动化漏洞利用(Automatic Exploit Generation,AEG)是指利用计算机程序或工具自动生成针对已知或未知漏洞的利用代码或攻击创建适配器的过程。AEG的目标是自动生成有效的利用代码,以利用目标系统或应用程序中的漏洞。
图 AEG一般工作流程
AEG的概念和技术在网络安全领域中被广泛研究和应用。它主要用于如下几个方面:
-
漏洞利用验证:AEG可用于验证漏洞的可利用性。当一个漏洞发现并报告给厂商或开发者时,AEG可以用于自动生成针对该漏洞的利用代码。这样一来,安全团队可以测试这些利用代码,以验证漏洞的实际利用效果,并确认其是否会导致系统被攻击。
-
漏洞修复评估:AEG用于评估漏洞修复的效果。当漏洞被修复后,安全团队可以使用AEG工具重新生成利用代码,以测试修复后的系统是否仍然容易受到攻击。这种方式,可以评估修复措施的质量,并帮助开发者或厂商确保漏洞已经得到适当的修复。
-
安全漏洞挖掘:AEG可用于自动化的安全漏洞挖掘。它可以通过生成大量的输入和攻击适配器,探索目标系统或应用程序中的未知漏洞。通过尝试不同的输入和攻击方式,AEG工具可以发现和生成新的漏洞利用代码,进一步帮助安全研究人员发现和修复系统中的潜在缺陷。
技术利用
漏洞自动化生成利用技术是一个复杂的研究领域,涉及多种技术和方法的融合。通常情况下,这些技术是结合使用,以自动化生成针对漏洞的利用代码。如下为常用的漏洞自动化生成技术。
-
符号执行(Symbolic Execution):符号执行(Symbolic Execution)是一种静态分析技术,用于探索程序在不同执行路径上的行为。与传统的具体执行(Concrete Execution)不同,符号执行将程序中的变量表示为符号(Symbol),而不是具体的值。通过符号执行,可以构建程序的符号执行路径,并生成满足特定条件的输入。符号执行的基本思想是,在程序执行过程中,将输入变量替换为符号变量,将程序的执行路径转化为约束条件。通过符号执行,可以自动生成满足特定条件的输入,从而用于触发目标漏洞。例如,在漏洞挖掘中,可以使用符号执行来生成特定的输入,以达到绕过输入验证、触发故障修复或其他类型的漏洞利用的目的。在AEG中,符号执行可以用于构建程序的符号执行路径,并生成满足特定条件的输入,以达到触发目标漏洞的目的。
-
模糊测试(Fuzzing):模糊测试是一种通过向目标系统或应用程序输入随机、异常或无效数据来发现漏洞的技术。在AEG中,模糊测试与符号执行和生成式测试的结合能够产生更多利用潜力的输入。具体而言,可以将模糊测试中生成的随机或变量的输入作为符号化输入,然后进行符号执行路径探索。通过符号执行路径探索,可以针对不同的输入生成一组约束条件。约束条件可以描述输入所需的特定属性或限制,例如特定的字节序列、特定的函数调用序列等。然后,通过约束条件激活器解决这些约束条件,找到满足约束条件的具体输入,从而生成利用潜力的输入。利用模糊测试生成的具有利用潜力的输入,结合符号执行的约束条件和约束初始化,AEG可以自动生成针对特定漏洞的利用代码。这些生成的利用代码可以用于验证漏洞、评估修复措施或进行安全产品测试。通过结合模糊测试、符号执行和生成式测试,AEG能够更全面地发现和利用目标系统中的漏洞,提高漏洞挖掘和利用的效率和准确性。这种组合技术的使用有助于增强系统的安全性性,并帮助开发者和安全团队及早发现和修复潜在的漏洞。
-
代码插桩(Code Instrumentation):代码插桩是一种修改程序源代码或二进制代码的技术,以在运行时插入附加代码。在AEG中,代码插桩可以用于在目标程序中插入利用代码,以实现对特定漏洞的利用。通过代码插桩,可以在目标程序的关键位置插入额外的代码,用于执行漏洞利用所需的操作。这些插入的代码可以是利用特定漏洞的攻击适配器、改变程序执行流程的指令、绕过安全检查的逻辑等。插桩可以在源代码级别或二进制代码级别进行,具体取决于可用的工具和技术。在AEG中,代码插桩可以用于生成针对特定漏洞的利用。例如,在一个存在代码漏洞漏洞的程序中,通过代码插桩可以在漏洞位置插入指令,实现控制程序执行流程或执行恶意代码的目的。通过插入利用,AEG能够自动生成针对特定漏洞的利用损坏或攻击代码序列。
RHG中AEG的应用
当提到RHG(Robo Hacking Game)时,自动化漏洞利用确实扮演着重要的角色。漏洞自动化利用生成在RHG中的作用如下:
① 降低利用难度、提升效率:传统的漏洞利用通常需要手动编写脚本或开发专门的工具,这需要具备较高的技术水平和时间成本,也使得漏洞利用环节成为技术要求最高、最费时费力的一环。自动化漏洞利用大大减少了利用的难度,并且可以通过预先定义的漏洞利用模板、漏洞利用脚本、payloads等工具和资源,提高了利用的速度和效率。这使得即使没有专业知识的攻击者也能够轻松地执行漏洞利用,极大的降低了漏洞利用环节的利用门槛。
② 覆盖多种漏洞类型:自动化漏洞利用技术能够覆盖多种不同类型的漏洞,包括操作系统、应用程序、网络设备等各种目标中的漏洞。相比手动漏洞利用,自动化漏洞利用技术能够广泛地扫描和利用各种漏洞,减少了由于人为疏漏或不完整扫描而导致的漏报的风险。
写在最后
RHG中的自动化漏洞利用工具是现代红队行动中的不可或缺的一部分,它们提高了效率,加强了测试多样性,并为组织提供了持续性的安全评估,在RHG中起着至关重要的作用。而关于RHG更多内容,将在后面一一分享出来。
云起无垠作为新一代智能模糊测试领跑者,在网络攻防领域有着深厚的研究和实践经验积累。安全团队成员由国内顶尖蓝莲花战队、天枢战队核心成员组成,曾多次征战世界级CTF竞赛,并取得佳绩。
结合模糊测试技术积累和大赛实战经验,云起无垠率先推出了RHG培训服务,旨在帮助企业和机构培养高素质的网络安全人员。RHG培训课程涵盖了基础级、入门级、专业级、竞赛级四个级别,通过学习学员可以提升自动化漏洞挖掘技术,在实战中提高自身安全攻防水平。
随着AIGC等概念的不断普及和发展,人工智能攻防也将进入一个全新的时代。未来,人工智能与模糊测试的融合也将有更全新的效果,对于网络攻防都起到很好的效果。云起无垠欢迎大家来交流学习,掌握更新更有效的安全能力!