VulnLLMEval: 大型语言模型在软件漏洞检测与修补中的评估框架
大型语言模型(LLMs)在代码生成方面取得了显著进展,但它们的训练使用了来自开源代码库(如GitHub)的未经筛选的数据,存在意外传播安全漏洞的风险。为了有效地减轻这一问题,本文从软件安全的角度对代码LLMs进行了全面研究,并提出了SecuCoGen数据集,用于评估和增强代码LLMs的安全性能。研究结果发现,现有模型在代码生成中经常忽视安全问题,提出了有效的方法来解决安全漏洞,并提高代码的整体稳健性。此外,研究还发现现有模型在修复漏洞代码方面存在问题,并且某些漏洞类型对模型构成挑战。基于这些发现,我们相信本研究将对软件工程社区产生积极影响,激发改进LLMs训练和使用方法的开发,从而实现更安全、更可信的模型部署。
Oct, 2023
通过研究使用大型语言模型(LLMs)在代码审查中的作用,其中包括检测安全漏洞和验证软件功能的有效性,本文发现大型专有模型在这些任务上的性能显著优于小型开源模型,并证明了LLMs能够生成与真实漏洞相关的详细描述。
Mar, 2024
在代码语言模型(Code LMs)和漏洞检测不断增长的兴趣下,我们研究了代码语言模型在漏洞检测方面的有效性。研究发现现有漏洞数据集存在重要不足,包括数据质量不高、标签准确性低和重复率高,导致模型在现实漏洞检测场景中的性能不可靠。为解决这些挑战,我们引入了PrimeVul数据集,用于训练和评估代码语言模型在漏洞检测方面的性能。通过对PrimeVul上的代码语言模型进行评估,发现现有基准明显高估了这些模型的性能。这些发现强调了当前能力和在安全角色中部署代码语言模型的实际需求之间存在的巨大差距,突出了在这一领域需要更多创新的研究。
Mar, 2024
通过使用大型语言模型(LLMs)来辅助发现源代码中的漏洞,相比传统的静态分析工具,我们发现LLMs能够找出更多问题,提高漏洞检测的回溯率和F1分数,从而使得代码更加安全。
May, 2024
Code Pre-trained Models (CodePTMs) based vulnerability detection struggles to generalize as they typically learn superficial mapping from source code to labels, resulting in poor performance in real-world scenarios. To address this, VulLLM integrates multi-task learning with Large Language Models (LLMs) to effectively mine deep-seated vulnerability features, surpassing seven state-of-the-art models in terms of effectiveness, generalization, and robustness.
Jun, 2024
通过创建一个新的基准测试集 VulDetectBench,我们评估了各类大型语言模型在漏洞检测任务中的性能,结果显示现有模型在识别和分类与漏洞相关的任务上可以达到80%以上的准确率,但在更复杂的漏洞分析任务上只能达到不到30%的准确率,难以为专业漏洞挖掘提供有价值的辅助信息。这个基准测试集为未来代码安全领域的研究和改进提供了基础。
Jun, 2024
利用LLMs对代码库中的安全漏洞进行检测,介绍了一个基于人工评估的大规模漏洞检测基准,该基准每周从开源代码库中发布的漏洞中进行源和更新,如今包含超过24,000个漏洞、6,000个修订版本和5,000个代码库,并达到55GB大小。
Jul, 2024
本研究针对软件源代码中的漏洞检测问题,提出了一种创新的方法,通过将源代码转换为LLVM中间表示来训练大型语言模型,从而实现跨编程语言的漏洞识别。实验结果表明,该方法在真实和合成代码上具有高准确度,显著提升了漏洞检测的效能。
Aug, 2024