Exploring RAG-based Vulnerability Augmentation with LLMs

2024年08月07日
  • 简介
    检测漏洞是维护软件系统完整性、可用性和安全性的关键任务。近年来,利用基于深度学习的模型进行漏洞检测已成为常见做法。然而,这种基于深度学习的漏洞检测器(DLVD)缺乏足够的数据集以有效训练。数据增强可以潜在地缓解数据短缺问题,但增强易受到挑战,需要设计一种生成性解决方案,以保持漏洞性。因此,生成易受攻击的代码样本的工作受到限制,以前的工作仅关注生成包含单个语句或特定类型漏洞的样本。最近,大型语言模型(LLMs)被用于解决各种代码生成和理解任务,并且在与检索增强生成(RAG)融合时表现出令人鼓舞的结果。在本研究中,我们探讨了三种使用LLMs的策略来增强单个和多语句漏洞,分别是Mutation、Injection和Extension。我们使用两个LLMs在三个漏洞数据集和三个DLVD模型上对我们提出的方法进行了广泛评估。我们的结果表明,我们基于注入的聚类增强RAG方法在f1-score上击败了基准设置(NoAug)、Vulgen和VGX(两种SOTA方法)以及随机过采样(ROS),平均使用5K生成的易受攻击的样本,分别提高了30.80%、27.48%、27.93%和15.41%,使用15K生成的易受攻击的样本,分别提高了53.84%、54.10%、69.90%和40.93%。我们的方法通过以低至1.88美元的价格生成1K个样本,证明了其进行大规模数据增强的可行性。
  • 图表
  • 解决问题
    论文旨在解决利用深度学习模型检测漏洞时,数据集规模不足的问题,提出利用大型语言模型进行漏洞代码生成的方法。
  • 关键思路
    论文提出了三种利用大型语言模型进行漏洞代码生成的策略,分别是Mutation、Injection和Extension,并使用检索增强生成(RAG)进行聚类增强。实验结果表明,基于Injection的聚类增强RAG方法在三个漏洞数据集和三个深度学习漏洞检测模型上的性能优于其他方法。
  • 其它亮点
    论文使用大型语言模型进行漏洞代码生成,提出了三种策略,并使用检索增强生成进行聚类增强。实验结果表明,该方法在性能上优于其他方法,并且可以进行大规模数据增强。论文还开源了代码和数据集。
  • 相关研究
    在相关研究方面,近期的研究包括《VulDeePecker: A Deep Learning-Based System for Vulnerability Detection》、《DeepTune: A Learning-based Approach to Automatic Tuning of Deep Neural Networks》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论