赞
踩
传统的漏洞挖掘通常由安全专家进行手动分析和测试,但随着人工智能技术的发展,自动化漏洞挖掘已经成为一种有效的辅助手段。尤其是近几年,人工智能攻防大赛RHG的兴起,推动了该技术的落地和实践。在《RHG之漏洞自动化利用》中我们为大家简析了RHG中常用的关键技术,本文我们着重为大家分享人工智能攻防RHG大赛中漏洞挖掘的内容。
在RHG竞赛中,参赛选手通常需要构建能够自动发现计算机应用程序或服务中安全漏洞的人工智能系统,该系统能够对程序进行自动化分析,并发现可能被攻击者利用的漏洞。其中,主要应用了fuzz(模糊测试)技术、符号执行技术和代码插桩技术。利用几种先进技术的进行漏洞(缓冲区溢出、整数溢出、格式化字符串漏洞、代码注入、路径遍历、SQL注入等)挖掘,能够更快的发现并利用漏洞,以获得分数,赢得比赛。
模糊测试(Fuzz Test):模糊测试是一种自动化的软件测试技术,通过输入大量的随机、异常或者边界值数据来测试目标程序的鲁棒性。在RHG中,参赛选手会使用模糊测试生成大量的测试用例,这些测试用例会作为输入提供给目标程序。模糊测试的目的是观察目标程序在不同输入下的行为,以此发现潜在的漏洞。模糊测试通常会使用大规模执行来加速漏洞发现的速度。
图 模糊测试工作原理
符号执行(Symbolic Execution):符号执行是一种静态分析技术,与动态执行相对。符号执行中,程序的输入不使用具体的值,而是用符号来表示。这使得符号执行可以计算程序中所有执行路径,而不仅仅限于浅层路径。在RHG中,参赛选手使用符号执行来探索目标程序的执行路径,并通过符号约束计算不同路径的触达条件。符号执行的结果是生成一系列符号化的路径条件,这些条件描述了在输入特定的下程序执行的约束条件。
图 符号执行工作原理
代码插桩(Code Instrumentation):代码插桩是一种动态分析技术,在程序执行时向目标程序的二进制代码中插入监测代码,以收集运行时信息。在RHG中,参赛选手通过代码插桩技术,为目标程序添加监视代码,用于跟踪程序的执行路径和记录程序的运行时状态。代码插桩产生的信息有助于识别程序执行过程中的异常行为和漏洞。
图 代码插桩工作原理
在RHG中,这三种技术相互融合,形成了一种综合的漏洞挖掘方法。具体流程如下:
图 漏洞自动化挖掘
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。