本文提出一种名为 MOVERY 的精确方法,用于从开源软件(OSS)组件中检测被修改的漏洞代码克隆。在真实世界中,开发者常常复用开源代码,但会对其进行修改以适配自身需求,这导致已有的漏洞代码克隆检测工具(如基于语法或 token 匹配的方法)难以识别这些变体,从而造成安全风险。MOVERY 的核心思想是基于程序切片和语义相似度分析,首先提取目标代码中的漏洞相关语句和依赖关系,构建细粒度的程序依赖图,然后通过图匹配和特征向量比较,识别出即使经过较大修改但仍保留漏洞触发逻辑的代码克隆。作者在多个真实 CVE 漏洞数据集上进行了实验,与现有最先进的方法相比,MOVERY 在精确率和召回率上均有显著提升,特别是在代码经过重构、变量重命名、控制流改变等情况下仍能准确识别。该研究解决了开源组件供应链中‘已被修复漏洞但修改后仍存在’的关键问题,为漏洞管理和软件组成分析(SCA)提供了更可靠的技术支撑。适合软件安全研究员、安全工具开发者和负责开源组件治理的工程师阅读。
💡 推荐理由: 传统克隆检测容易被代码修改绕过,导致供应链漏洞残留。MOVERY 提升了修改后漏洞代码的识别精度,可帮助蓝队更准确地定位引入开源组件的真实风险。
🎯 建议动作: 研究跟进,评估其方法能否集成到现有 SCA 或漏洞扫描流程中。