LLM-Enhanced Static Analysis for Precise Identification of Vulnerable OSS Versions

2024年08月14日
  • 简介
    开源软件(OSS)因其协作开发模式和成本效益而经历了一波流行。然而,在开发项目中采用特定软件版本可能会引入安全风险,因为这些版本可能存在漏洞。目前识别易受攻击版本的方法通常使用预定义规则的静态分析来分析和跟踪涉及漏洞补丁的代码。然后,它们使用语法级别的代码克隆检测来识别易受攻击版本。这些方法由于(1)分析中包含与漏洞无关的代码和(2)语法级别的代码克隆检测不足而受到限制。本文提出了一种名为Vercation的方法,旨在识别用C/C++编写的OSS的易受攻击版本。Vercation将程序切片与大型语言模型(LLM)相结合,以从漏洞补丁中识别与漏洞相关的代码。然后,它回溯历史提交,收集已识别易受攻击相关代码的以前修改。我们提出了语义级别的代码克隆检测,以比较修改前后代码之间的差异,从而定位引入漏洞的提交(vic),并能够识别补丁提交和vic之间的易受攻击版本。我们策划了一个数据集,将74个OSS漏洞和1013个版本链接起来,以评估Vercation。在这个数据集上,我们的方法实现了92.4%的F1分数,优于当前最先进的方法。更重要的是,Vercation检测到NVD报告中134个错误的易受攻击OSS版本。
  • 图表
  • 解决问题
    本论文旨在解决开源软件中版本漏洞的识别问题。当前的方法往往使用静态分析和语法级别的代码克隆检测,但存在漏洞无关代码和不精确的问题。
  • 关键思路
    Vercation将程序切片与大型语言模型相结合,从漏洞补丁中识别漏洞相关代码,并回溯历史提交以确定引入漏洞的提交。使用语义级别的代码克隆检测来比较修改前后的代码差异,从而定位引入漏洞的提交,并能够识别修补提交和引入漏洞的提交之间的漏洞版本。
  • 其它亮点
    Vercation在74个开源软件漏洞和1013个版本上进行了评估,在该数据集上实现了92.4%的F1分数,优于当前最先进的方法。该方法还发现了NVD报告中134个错误的漏洞版本。值得注意的是,该论文的方法结合了程序切片和大型语言模型,使用语义级别的代码克隆检测,这些都是当前领域研究中的新思路。
  • 相关研究
    在相关研究方面,最近的研究包括使用深度学习方法进行漏洞预测和识别,以及使用数据挖掘和机器学习方法进行漏洞检测。例如,标题为“DeepVul:深度学习驱动的漏洞预测”的论文使用深度学习方法预测漏洞,而标题为“基于机器学习的漏洞检测方法”的论文使用机器学习方法检测漏洞。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论