理解基于大型语言模型的模糊驱动生成
摘要:高质量的API使用代码是自动生成模糊驱动器的挑战之一。基于大型语言模型的模糊驱动器生成器是一个有前途的方向,相比传统的程序分析生成器,它是一种基于文本的方法,更轻量且更通用。它可以轻松利用各种API使用信息源进行生成,并生成友好的代码。然而,这个方向还缺乏基本的理解。为了填补这个空白,我们进行了一项研究,旨在针对大规模有效的模糊驱动器生成使用LLMs的核心问题进行分析。为了系统地理解,我们设计和分析了从基本到改进的5种查询策略。为了进行规模评估,我们构建了一个半自动化框架,包括来自30个流行的C项目收集的86个驱动器生成问题的问卷,以及用于精确评估驱动器有效性的一组标准。总共生成和评估了189,628个使用0.22亿个标记的模糊驱动器。此外,将生成的驱动器与工业使用的驱动器进行比较,以获得实用见解(进行了3.12个CPU年的模糊实验)。我们的研究揭示了:1)基于LLMs的生成已经显示出有前途的实用性。64\%的问题可以完全自动解决,如果结合人工语义验证器,这个数字将提高到91\%。此外,生成的驱动器在性能上与工业常用的驱动器有竞争力;2)LLMs难以生成需要复杂API使用细节的模糊驱动器。三个关键设计可以帮助解决这个问题:重复查询、带有示例的查询和迭代查询。将它们结合起来可以得到主导策略;3)仍然存在改进的空间,例如自动语义正确性验证、API使用扩展和语义神谕生成。
作者:Cen Zhang, Mingqiang Bai, Yaowen Zheng, Yeting Li, Xiaofei Xie, Yuekang Li, Wei Ma, Limin Sun, Yang Liu
论文ID:2307.12469
分类:Cryptography and Security
分类简称:cs.CR
提交时间:2023-08-08