- 简介在日益增长的对代码语言模型(code LMs)和漏洞检测的兴趣背景下,我们研究了使用代码语言模型来检测漏洞的有效性。我们的分析揭示了现有漏洞数据集的显著缺陷,包括数据质量差、标签准确度低和高重复率,导致模型在实际漏洞检测场景中表现不可靠。此外,这些数据集使用的评估方法并不能代表现实世界的漏洞检测。 为了解决这些挑战,我们引入了PrimeVul,一个新的数据集,用于训练和评估代码语言模型用于漏洞检测。PrimeVul采用了一系列新颖的数据标注技术,实现了与人工验证基准相当的标签准确度,同时显著扩展了数据集。它还实施了严格的数据去重和时间分割策略,以减轻数据泄漏问题,同时引入更现实的评估指标和设置。这种综合方法旨在提供更准确的代码语言模型在实际条件下的性能评估。 在PrimeVul上评估代码语言模型揭示了现有基准显著高估了这些模型的性能。例如,一个最先进的7B模型在BigVul上得分为68.26%的F1,但在PrimeVul上只有3.09%的F1。通过先进的训练技术和更大的模型(如GPT-3.5和GPT-4)尝试提高性能都失败了,在最严格的设置中结果类似于随机猜测。这些发现强调了当前能力与在安全角色中部署代码语言模型的实际要求之间的巨大差距,凸显了在这个领域需要更多创新的研究。
- 图表
- 解决问题论文旨在解决使用代码语言模型(Code LMs)检测漏洞的有效性问题,同时发现现有漏洞数据集存在的问题,如数据质量差、标签不准确、重复率高等,导致模型性能不可靠。
- 关键思路论文提出了一个新的漏洞数据集PrimeVul,采用新的数据标注技术、数据去重和时间分割策略,并引入更现实的评估指标和设置,以更准确地评估Code LMs的性能。通过在PrimeVul上评估Code LMs,发现现有基准显著高估了这些模型的性能,表明当前能力与在安全角色中部署Code LMs的实际要求之间存在显著差距。
- 其它亮点论文的亮点包括引入一个新的漏洞数据集PrimeVul,使用新的数据标注技术、数据去重和时间分割策略,并引入更现实的评估指标和设置;通过在PrimeVul上评估Code LMs,揭示了现有基准显著高估了这些模型的性能,表明当前能力与在安全角色中部署Code LMs的实际要求之间存在显著差距。
- 在这个领域中,最近的相关研究包括:《Learning to Fuzz from Symbolic Execution with Application to Smart Contracts》、《Deep Learning for Identifying Critical Code Paths in Embedded Systems》、《Code Property Graphs: A Unified Representation for Source Code》等。
沙发等你来抢
去评论
评论
沙发等你来抢