LLM2D
KernelGPT:基于大型语言模型的增强型内核模糊测试
KernelGPT: Enhanced Kernel Fuzzing via Large Language Models
作者: Chenyuan Yang, Zijie Zhao, Lingming Zhang
发布日期: 11/26/2024
arXiv ID: oai:arXiv.org:2401.00563v2

摘要

操作系统内核中的漏洞可能影响全球数十亿台设备和用户。因此,大量研究集中在内核模糊测试上,即自动生成系统调用(syscall)序列以检测潜在的内核漏洞或弱点。内核模糊测试旨在根据定义系统调用语法和语义的系统调用规范生成有效的系统调用序列。虽然已有工作尝试自动化系统调用规范的生成,但这在很大程度上仍然是手工工作,许多重要的系统调用仍未被发现。 本文提出KernelGPT,这是一种利用大型语言模型 (LLMs) 自动合成系统调用规范以增强内核模糊测试的首个方法。我们的关键见解是,大型语言模型在预训练期间已经学习了大量的内核代码、文档和用例,因此可以自动提取生成有效系统调用的必要信息。更具体地说,KernelGPT 利用迭代方法自动推断规范,并根据验证反馈进一步调试和修复它们。我们的结果表明,KernelGPT 可以生成更多新的有效规范,并实现比现有技术更高的覆盖率。到目前为止,通过使用新生成的规范,KernelGPT 已经在 Linux 内核中检测到 24 个新的唯一漏洞,其中 12 个已修复,11 个已分配 CVE 编号。此外,应其开发团队的要求,KernelGPT 生成的许多规范已被合并到内核模糊测试工具 Syzkaller 中。