传统的漏洞挖掘通常由安全专家进行手动分析和测试,但随着人工智能技术的发展,自动化漏洞挖掘已经成为一种有效的辅助手段。尤其是近几年,人工智能攻防大赛RHG的兴起,推动了该技术的落地和实践。在《RHG之漏洞自动化利用》中我们为大家简析了RHG中常用的关键技术,本文我们着重为大家分享人工智能攻防RHG大赛中漏洞挖掘的内容。

在RHG竞赛中,参赛选手通常需要构建能够自动发现计算机应用程序或服务中安全漏洞的人工智能系统,该系统能够对程序进行自动化分析,并发现可能被攻击者利用的漏洞。其中,主要应用了fuzz(模糊测试)技术、符号执行技术和代码插桩技术。利用几种先进技术的进行漏洞(缓冲区溢出、整数溢出、格式化字符串漏洞、代码注入、路径遍历、SQL注入等)挖掘,能够更快的发现并利用漏洞,以获得分数,赢得比赛。

模糊测试(Fuzz Test):模糊测试是一种自动化的软件测试技术,通过输入大量的随机、异常或者边界值数据来测试目标程序的鲁棒性。在RHG中,参赛选手会使用模糊测试生成大量的测试用例,这些测试用例会作为输入提供给目标程序。模糊测试的目的是观察目标程序在不同输入下的行为,以此发现潜在的漏洞。模糊测试通常会使用大规模执行来加速漏洞发现的速度。
图片
图 模糊测试工作原理

符号执行(Symbolic Execution):符号执行是一种静态分析技术,与动态执行相对。符号执行中,程序的输入不使用具体的值,而是用符号来表示。这使得符号执行可以计算程序中所有执行路径,而不仅仅限于浅层路径。在RHG中,参赛选手使用符号执行来探索目标程序的执行路径,并通过符号约束计算不同路径的触达条件。符号执行的结果是生成一系列符号化的路径条件,这些条件描述了在输入特定的下程序执行的约束条件。
图片
图 符号执行工作原理

代码插桩(Code Instrumentation):代码插桩是一种动态分析技术,在程序执行时向目标程序的二进制代码中插入监测代码,以收集运行时信息。在RHG中,参赛选手通过代码插桩技术,为目标程序添加监视代码,用于跟踪程序的执行路径和记录程序的运行时状态。代码插桩产生的信息有助于识别程序执行过程中的异常行为和漏洞。
图片
图 代码插桩工作原理

在RHG中,这三种技术相互融合,形成了一种综合的漏洞挖掘方法。具体流程如下:
图片
图 漏洞自动化挖掘

🔹初始阶段:模糊测试技术用于生成大量的随机输入,将这些输入提供给目标程序执行。这些输入会触发目标程序中的不同代码路径。

🔹符号执行阶段:利用符号执行技术对模糊测试生成的测试用例进行分析。符号执行会计算程序执行的不同路径,并收集关于程序状态的符号约束信息。符号约束描述了在特定输入下程序能够到达指定路径的约束条件。从程序路径中选择部分路径,根据各个路径的约束条件,生成新的、符合路径约束的测试用例。这些生成的测试用例更有可能触发深层的未知漏洞。利用符号执行生成的测试用例验证目标程序的执行状态,检查是否出现异常行为。如果发现异常行为或异常状态,进一步分析其成因和利用可能性。根据验证结果,给模糊测试程序进行反馈,迭代模糊测试的输入生成策略,以便更好地挖掘漏洞。

🔹代码插桩阶段:代码插桩技术用于对目标程序的运行状态进行动态监测,包括代码覆盖率、路径信息和程序状态等。代码插桩为模糊测试和符号执行提供了关键的运行时数据,帮助识别异常行为和异常状态。

🔹漏洞挖掘阶段:结合模糊测试和代码插桩的结果,参赛选手可以识别出目标程序中的疑似漏洞。符号执行生成的符号化输入可以帮助模糊测试触达更多路径,从而挖掘更多潜在的深层漏洞。同时符号执行也能够为选手提供精确的漏洞触发路径。插桩提供的运行时信息可以帮助选手确定程序的异常行为和异常状态,从而更准确地发现漏洞。

🔹漏洞验证和利用阶段:在潜在漏洞后,参赛选手需要对这些潜在漏洞进行验证和利用。符号执行计算出的漏洞触发路径可以精准的触达漏洞的触发点。一旦漏洞被确认,参赛选手可以进一步构建针对该漏洞的攻击手段和攻击策略。

🔹自动化修复:在RHG竞赛中,参赛选手可能需要在发现漏洞后执行自动化修复策略。符号执行生成的路径约束信息可以帮助参赛者理解漏洞的原因和影响,从而更容易设计修复方案。同时通过符号执行计算的输入来测试修复策略的有效性和正确性。综合利用模糊测试、符号执行和代码插桩技术,参赛选手可以自动化地发现和验证目标程序中的漏洞,并在有需要的情况下设计修复策略。这种综合的漏洞挖掘方法在RHG中被广泛使用,为参赛选手提供了强大的技术能力来加速漏洞发现和修复的过程。云起无垠作为新一代智能模糊测试领跑者,在网络攻防领域有着深厚的研究和实践经验积累。安全团队成员由国内顶尖蓝莲花战队、天枢战队核心成员组成,曾多次征战世界级CTF竞赛,并取得佳绩。结合模糊测试技术积累和大赛实战经验,云起无垠率先推出了RHG培训服务,旨在帮助企业和机构培养高素质的网络安全人员。RHG培训课程涵盖了基础级、入门级、专业级、竞赛级四个级别,通过学习学员可以提升自动化漏洞挖掘技术,在实战中提高自身安全攻防水平。


云起无垠
9 声望13 粉丝

国内首创的Fuzzing 全流程赋能开发安全-DevSecOps 解决方案供应商, 基于智能模糊测试引擎为协议、数据库、API、APP、Web3.0 等场景提供强大的软件安全自动化分析能力,从源头助力企业自动化检测与修复业务系统安...