本次分享论文为:Large Language Models Based Fuzzing Techniques: A Survey
基本信息
原文作者:Linghan Huang, Peizhou Zhao, Huaming Chen, Lei Ma
作者单位:悉尼大学;东京大学;阿尔伯塔大学
关键词:大语言模型,模糊测试,软件测试,自动化测试
原文链接:
https://arxiv.org/pdf/2402.00350.pdf
开源代码:
https://github.com/EdPuth/LLMs-based-Fuzzer-Survey
论文要点
论文简介:本文系统回顾了将大语言模型(LLMs)与模糊测试技术结合应用于软件测试的方法。研究表明,虽然现有的模糊测试技术还未能实现完全自动化,并且软件漏洞持续演化,但基于LLMs的模糊测试生成表现出显著的优势。此趋势促进了LLMs生成的模糊测试技术更广泛的部署和应用潜力。
研究目的:探索大语言模型在软件测试领域的应用,尤其是如何通过LLMs提高模糊测试的效率和准确性,从而提升软件的可靠性和安全性。
研究贡献:
1.相关文献提出或改进了基于大语言模型(LLM)的模糊测试工具、框架及方法。
2.研究聚焦于LLM环境中的模糊测试方法、概念与框架。
3.研究探讨了模糊测试与LLM概念之间的相互作用,涵盖了理论和方法论的讨论。
4.研究分析了结合LLM进行模糊测试的优势、潜在限制及未来的发展方向。
引言
模糊测试技术在软件安全性领域扮演着越来越重要的角色,因为它能够有效地识别和修复潜在的软件漏洞。随着软件系统的复杂性不断增加,传统的模糊测试方法开始显得力不从心,迫切需要引入新的技术来提升测试的效率和准确性。在这样的背景下,大语言模型(LLMs)的引入为软件测试带来了新的机遇。通过结合LLMs的模糊测试技术,可以利用语言模型生成的数据来进行软件测试,这不仅提高了测试的效率,还增强了对漏洞的识别能力。这种结合LLMs的方法在自动化测试领域展现出了巨大的潜力,尤其是在提高软件测试的自动化程度和扩大测试覆盖范围方面。然而,尽管LLMs结合的模糊测试技术展现出了诸多优势,但它目前还没有实现完全自动化,并且面临着软件漏洞不断进化的挑战。本文对这一技术进行了系统的回顾和分析,探讨了其在软件测试中的应用前景和潜在的发展方向,旨在为软件测试的研究和实践提供有价值的指导和启示。
研究背景
大语言模型(LLMs)的发展极大促进了包括翻译、摘要、信息检索和对话交互在内的复杂语言任务。这些模型之所以强大,关键在于采用了变换器机制(transformers mechanism),这一技术显著增强了处理能力。根据2023年7月的数据,从2019年到2023年,共涌现出75个具有影响力的LLMs,被广泛应用于通用语言处理、医疗、教育、科学、法律和金融等多个领域。这些模型主要分为仅解码器语言模型、仅编码器掩码语言模型以及编码器-解码器语言模型三种类型,特别是仅解码器语言模型在零样本程序合成上的应用尤为突出。自1990年代起,模糊测试技术已广泛应用于通过生成意外的输入以测试软件的可靠性和安全性,成为软件测试不可缺少的部分。随着软件行业的发展,模糊测试的技术和方法持续进化,覆盖率引导的模糊测试成为了新的主流趋势。
模糊测试分析
模糊测试,作为评估软件可靠性和安全性的关键方法,已在众多软件领域得到广泛运用。面对传统模糊测试的限制,研究者开始利用大语言模型(LLMs)以提高测试效率和准确率。对基于LLMs的模糊测试工具的分析表明,这些工具主要依靠优化提示生成(prompt engineering)和种子文件的变异策略来提升测试的性能。性能评估指标包括代码覆盖率、错误检测数量、命中率和变异效率,同时还考虑了执行时间和漏洞检测速度等与时间相关的因素。
AI软件与非AI软件之间在结构和功能方面的差异是显著的:AI软件能够进行自主学习和处理自然语言,而非AI软件主要依靠预设的规则和配置。基于这些差异,针对这两种类型的软件的基于LLMs的模糊测试工具(LLMs-based Fuzzer)在其设计上也呈现出不同。在研究中,一些模糊测试工具专门为AI软件开发,而其他工具则专注于非AI软件。这些工具的开发不仅提升了软件测试流程的自动化程度,而且为提高未来软件的质量和安全性奠定了坚实的基础。
研究论述
相比于传统的模糊测试工具,基于大语言模型(LLMs)的模糊测试工具在API和代码覆盖率、计算效率、复杂错误检测能力以及自动化水平方面表现出显著优势。未来的任务和挑战包括探讨两种类型的基于LLMs的模糊测试工具、预训练数据使用的策略、时间效率、为基于大语言模型的模糊测试定义评估框架,以及如何实现完全自动化的问题。
论文结论
这项调研报告深入探讨了基于大语言模型(LLMs)的模糊测试技术,全面概述了其在AI及非AI软件领域的应用。报告总结了基于LLMs模糊测试工具的架构和理念,并讨论了LLMs如何增强传统模糊测试的性能。相较于传统模糊测试,基于LLMs的方法在提升API和代码覆盖率、识别更复杂错误以及增加测试自动化方面显示出显著优势。因此,LLMs基础上的模糊测试技术在推动软件测试领域进步方面具有极大潜力。这份调研的发现和见解预计将为研究和实践界提供重要资源,引导开发更高效、可靠且自动化的模糊测试方案。
原作者:论文解读智能体
润色:Fancy
校对:小椰风