当前位置:首页|资讯|AIGC

创新!AIGC赋能模糊测试样例生成

作者:云起无垠发布时间:2023-06-07

原标题:创新!AIGC赋能模糊测试样例生成

AIGC是近期备受各行业探讨和关注的新理念。在我们的分享《革新!AIGC融合Fuzzing到底能带来哪些价值?》中,我们强调了将AIGC与Fuzzing相结合所带来的价值。其中之一是AIGC赋能模糊测试,使测试用例的生成变得更加智能和精准。今天,我们将重点分享其底层逻辑方面的内容。

智能模糊测试的测试用例生成

模糊测试一直以来都是最有效的漏洞挖掘工具,并得到了广泛应用。随着技术的不断演进和发展,模糊测试技术正在迈入智能模糊测试的新时代。在模糊测试过程中,测试用例的生成是一个尤为重要的环节,它直接关系到后续漏洞挖掘的效果。通过向被测试的应用程序注入大量的测试样例,我们能够更全面、更深入地挖掘出潜在的安全威胁,而采用动态执行的测试方法则可以保证较低的误报率。

如今,AIGC正在改变各行业的生产模式,云起无垠也在积极研究AIGC与模糊测试的融合。研究发现,将AIGC的能力融入到测试样例生成过程中,可以进一步优化测试样例的生成过程,极大地提高测试样例的质量和生成效率。这种新颖的方案增加了对语义的解析能力,从而能够更有针对性地进行应用程序的安全测试,使得安全检测过程变得更加智能化。

下文我们将着重分析第一代智能模糊测试与基于AIGC的第二代智能模糊测试在测试样例生成方面的不同之处。

1)第一代智能模糊测试

我们将未融入AIGC的智能模糊测试定义为第一代智能模糊测试,其生成测试用例的过程、实际的执行流如下:

首先,第一代智能模糊测试引擎会对应用程序的输入数据进行分析和采集,然后选出优质种子。

其次,基于机器学习模型、深度学习模型或遗传算法等,通过变异来生成多样化的测试用例。这些变异操作可以包括插入、删除、替换或改变输入的各个部分,例如修改文件头、改变数据格式、交换参数顺序等等。

第三,执行测试用例,并通过监测代码执行路径、分支覆盖和函数调用等信息,优先选择那些能够探索未被覆盖的代码路径的变异操作和输入,然后,收集应用程序的反馈信息,包括执行结果、错误信息、代码覆盖率等。

第四,通过监测测试执行的结果,例如崩溃、异常或错误信息,获取关于潜在问题和漏洞的反馈。这些反馈可以用来调整变异操作的选择和生成策略,以生成更有针对性和质量的测试用例。

最后,随着智能模糊测试的进行,逐渐优化测试用例的生成策略。通过学习测试结果和反馈信息,调整变异操作的权重、选择更有效的变异操作,或者发现新的变异操作。这种自适应优化可以提高测试效率和质量。

总的来说,利用机器学习和人工智能的技术,新一代智能模糊测试可以自动化生成大量的测试用例,并通过不断的反馈和优化,提高测试用例的质量和效率。该过程的核心原理是通过分析应用程序的输入数据规范和限制,生成具有随机性和变化性的测试用例,从而发现应用程序中的漏洞和错误。

2)基于AIGC的第二代智能模糊测试

随着AIGC的不断应用,发现将其融入智能模糊测试,能进一步优化测试样例的生成过程,极大提高测试样例的质量和生成效率。

基于AIGC的第二代智能模糊测试在第一代智能模糊测试的基础之上,对于测试用例的生成则更有优势:

① 针对特定的输入类型生成测试用例

AIGC可以针对特定的程序类型(例如二进制文件、网络协议、数据库等不同的输入类型)生成测试用例。而且,融合AIGC模式的模糊测试还可以根据不同程序的数据结构和语义特征,自动化地生成相应的测试用例,从而更加有效地覆盖程序的各个分支和边界情况。

② 基于未知缺陷的漏洞生成测试用例

AIGC可以通过在程序中寻找未知漏洞的缺陷模式,然后生成能够触发这些漏洞的测试用例,进而发现程序中的漏洞。

③ 减少测试用例的数量并提高质量

AIGC可以根据程序的内部模型和执行路径,自动化地削减不必要的测试用例,从而减少测试用例的数量、提高质量,提高测试的效率和准确性。

而且,基于AIGC的第二代智能模糊测试基于缺陷类型和问题代码片段的漏洞成因分析,可以针对性的给出修复建议。

AIGC融入模糊测试后的好处

相对传统模糊测试测试用例随机生成和随机变异等特点,将AIGC融入模糊测试可以为软件测试和安全测试带来多种重要的价值和优势。AIGC技术的引入使得模糊测试更加智能和高效,以下是一些关键方面:

1)更高效的测试用例生成:传统的模糊测试方法通常使用随机或半随机生成的测试用例来测试软件,这些测试用例可能不够充分或者不够精准。使用AIGC可以根据软件的代码结构和功能生成更加精准的测试用例,提高测试用例的质量和数量,从而提高测试的覆盖率和效率。

2)更高的漏洞发现率:AIGC可以根据代码的结构和功能生成更加复杂的测试用例,这些测试用例可以发现传统模糊测试无法发现的漏洞,从而提高软件的安全性。

3)更加智能的测试脚本编写:AIGC可以帮助安全人员自动生成测试脚本,节省了大量的时间和人力成本,并且避免了人工编写测试脚本可能出现的错误。

4)降低测试成本:使用AIGC可以减少手动测试的工作量,节约测试成本。

5)提高测试质量:使用AIGC可以提高测试用例的质量和数量,增加测试的覆盖率和准确性,从而提高测试的质量。而且,智能模糊测试基于缺陷类型和问题代码片段的漏洞成因分析,可以针对性的给出修复建议。

随着AIGC的不断迭代和进步,以及安全企业的不断研究,未来模糊测试与AIGC的融合大有可为。通过结合这两种技术,未来在软件的安全检测等方面将发挥更大的效果。在当下阶段,AIGC赋能模糊测试的更多内容,后面也将一一分享给大家,敬请期待!

为了更好的探索与分享前沿趋势和技术研究内容,云起无垠发起并运营了GPTSecurity知识社区,致力打造成一个汇聚GPT、AIGC和LLM在安全领域应用的知识库,共同推动安全领域智能革命的发展。

欢迎来到 GPTSecurity!共建知识库(点击跳转)

· GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以找到关于GPT/AIGC/LLM最新的研究论文、博客文章、实用的工具和预设指令(Prompts)。

· Github地址:https://github.com/mo-xiaoxi/GPTSecurity

云起无垠(https://www.clouitera.com)是新一代智能模糊测试领跑者,采用新一代Fuzzing技术全流程赋能软件供应链与开发安全,基于智能模糊测试引擎为协议、代码、数据库、API、Web3.0等应用提供强大的软件安全自动化分析能力,从源头助力企业自动化检测并助其修复业务系统安全问题,为每行代码安全运行保驾护航。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1