摘要
在漏洞数据集的可重现性、数量和多样性之间,长期以来被视为一种固有的三重权衡,提升一个维度往往会以牺牲其他维度为代价。在实践中,可重现性常常被忽视,这限制了从历史漏洞数据集中自动提取的信息,并降低了其在后续安全研究中的效用。
在这项工作中,我们提出了一种新方法,以确保在大规模下对多样化漏洞的可重现性,识别出大规模漏洞重现的关键障碍,并通过通用解决方案加以解决。利用此方法,我们为最大的开源软件漏洞数据集(OSS-Fuzz)引入了完全可重现性,并构建了 ARVO 数据集(可重现漏洞图谱)。
ARVO 是一个大规模数据集,包含来自 311 个项目的 6,100 多个真实漏洞。专注于可重现性,ARVO 与现有数据集的不同之处在于,每个漏洞都以可以在各个版本中一致重建、触发和分析的形式提供。可重现性还使得自动识别每个漏洞对应的补丁成为可能,并支持在代码变更后与漏洞的直接交互,而这些功能在现有的大规模数据集中并不存在。
在我们的评估中,ARVO 成功重现了 81% 的漏洞,并在定位补丁时达到了 89.4% 的准确率。我们还讨论了 ARVO 对上游实践和下游安全研究的影响。
博主点评: ARVO 数据集的推出标志着开源软件安全研究的一个重要进展,通过确保可重现性,它为安全研究人员提供了更高效的工具。这种方法不仅提升了漏洞分析的可靠性,还为后续的安全措施提供了坚实的数据基础,值得其他领域借鉴。