WitheredLeaf: Finding Entity-Inconsistency Bugs with LLMs

2024年05月02日
  • 简介
    这篇摘要讲述了实体不一致性缺陷(EIBs)的问题,这些问题源于语义错误,涉及对程序实体(如变量标识符和函数名称)的误用,这些实体通常具有安全隐患。与简单的语法漏洞不同,EIBs 往往微妙难测,可能持续多年而不被发现。传统的检测方法,如静态分析和动态测试,由于 EIBs 的多样性和依赖上下文的特性,往往难以发现。然而,随着 GPT-4 等大型语言模型的进展,我们相信通过这些模型的语义理解能力,LLM 强化的自动 EIB 检测变得越来越可行。本研究首先对 LLM 的 EIB 检测能力进行了系统测量,发现 GPT-4 虽然有前途,但召回率和精确度有限,这限制了其实际应用。主要问题在于模型倾向于关注不含 EIBs 的不相关代码片段。为了解决这个问题,我们引入了一种新型的级联 EIB 检测系统 WitheredLeaf,它利用较小的、针对特定代码的语言模型来过滤大多数负面案例并缓解问题,从而显著提高整体精确度和召回率。我们在 154 个拥有超过 1,000 个星标的 Python 和 C GitHub 存储库上评估了 WitheredLeaf,发现了 123 个新缺陷,其中 45% 可以被利用来干扰程序的正常操作。在提交了 69 个修复方案中,有 27 个已成功合并。
  • 图表
  • 解决问题
    本文研究如何利用大型语言模型来检测实体不一致性漏洞(EIBs),并提出一种新的级联检测系统。
  • 关键思路
    本文使用大型语言模型(LLMs)来检测EIBs,但发现LLMs的召回率和准确率有限。因此,作者提出了一种级联检测系统(WitheredLeaf),利用小型代码特定语言模型来过滤大量负面案例并提高检测准确性和召回率。
  • 其它亮点
    作者在154个Python和C语言GitHub存储库上评估了WitheredLeaf,发现其中123个新漏洞,其中45%可以用于破坏程序的正常操作。作者成功提交了69个修复,其中27个已成功合并。
  • 相关研究
    最近的相关研究包括使用机器学习技术来检测代码漏洞,如支持向量机(SVM)和深度学习。一些相关的论文包括:“使用机器学习技术检测代码漏洞”和“一种基于深度学习的代码漏洞检测方法”。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论