← 最新论文
🤖 AI

ARVO: Atlas of Reproducible Vulnerabilities for Open-Source Software

本文介绍了 ARVO,这是一个包含超过 6,100 个可复现开源软件漏洞的大规模数据集,它通过提供与其对应补丁一致的可重构且可分析的漏洞实例,克服了传统在可复现性、数量和多样性之间的权衡。

原作者: Xiang Mei, Jordi Del Castillo, Pulkit Singh Singaria, Haoran Xi, Abdelouahab Benchikh, Tiffany Bao, Ruoyu Wang, Yan Shoshitaishvili, Adam Doupé, Hammond Pearce, Brendan Dolan-Gavitt

发布于 2026-06-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Xiang Mei, Jordi Del Castillo, Pulkit Singh Singaria, Haoran Xi, Abdelouahab Benchikh, Tiffany Bao, Ruoyu Wang, Yan Shoshitaishvili, Adam Doupé, Hammond Pearce, Brendan Dolan-Gavitt

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你是一名试图破解一系列过去发生的犯罪案件(软件漏洞)的侦探。你有一个巨大的档案柜(数据库),里面存放着数千份案件卷宗。然而,有一个巨大的问题:大多数文件仅仅是写着:“某年某月某日此处发生了犯罪。”它们并没有包含犯罪现场、凶器,或者如何重现犯罪以证明其真实性的具体指令。

正因如此,其他侦探很难验证证据、从错误中学习或测试新的抓捕犯罪分子的方法。他们无法简单地“重演”犯罪过程,因为原始现场已经被清理干净,工具已经发生了变化,而且指令也丢失了。

走进 ARVO: “穿越时空的犯罪现场工具包”

这篇论文介绍了 ARVO(开源软件可复现漏洞图谱)。请不要只把 ARVO 看作是一份犯罪清单,而要把它看作是一个装备齐全的、能够穿越时空的犯罪现场工具包。

以下是 ARVO 的工作原理,我们使用简单的类比来解释:

1. 问题所在:“陈旧”的档案柜

此前,最大的软件漏洞数据库(称为 OSS-Fuzz)就像是一个只保留犯罪报告的图书馆。

  • 问题在于: 如果你今天尝试根据那份旧报告去重现犯罪,你会失败。为什么?因为你在 5 年前使用的“工具”(软件库)已经发生了变化或消失了。“犯罪现场”(软件构建环境)已经腐朽了。
  • 结果: 研究人员只能使用这些漏洞中的极小一部分(约 37%),因为他们无法让它们再次运行。其余的部分仅仅是“鬼故事”。

2. 解决方案:ARVO 的“魔法盒”

ARVO 通过为每一个漏洞创建一个自包含的时间胶囊来解决这个问题。

  • “可复现性”的魔法: 对于每一个漏洞,ARVO 不仅仅是写下一张便条;它会构建一个 Docker 容器(一个数字时间胶囊)。在这个盒子里,它放入了:
    • 出现该漏洞时的确切版本的软件。
    • 该软件在当时所需的所有工具和库的确切版本。
    • “触发器”(一个特定的输入,比如某个特定的按键组合)来导致崩溃。
  • 结果: 研究人员可以打开这个盒子并说:“运行它”,然后崩溃会完全按照多年前的样子发生,无论外部世界发生了多么大的变化。

3. 他们是如何构建它的: “修复专家”

构建这些时间胶囊非常困难,因为旧软件非常脆弱。作者必须解决三个谜题:

  • “缺失零件”谜题: 旧软件经常尝试从互联网下载已经不存在的部分(比如一个已经搬迁的网站)。ARVO 扮演着侦探的角色,在博物馆档案中寻找这些丢失的部分,并将它们放入盒子中,以便软件能够运行。
  • “工具不匹配”谜题: 有时软件需要特定版本的工具(比如某种特定的扳手),而这种工具与现有的工具不同。ARVO 会追踪所用每一个工具的确切“版本历史”,确保正确的扳手就在盒子里。
  • “补丁查找”谜题: 当一个漏洞被修复时,修复程序往往隐藏在大量的代码变更之中。ARVO 使用“二分查找法”(类似于通过不断将范围减半来猜出一个 1 到 1,000 之间的数字)来找到修复该漏洞的确切单行代码,而不是仅仅猜测哪个提交(commit)可能完成了这项工作。

4. 结果:一个庞大且可靠的库

  • 规模: ARVO 成功重现了 6,138 个真实的软件漏洞,涵盖了 311 个不同的软件项目
  • 成功率: 原有的方法仅有 37% 的成功率,而 ARVO 的成功率达到了 81%
  • 准确性: 当 ARVO 指向修复漏洞的代码时,其准确率为 89.4%
  • 额外发现: 在构建过程中,ARVO 发现原始数据库(OSS-Fuzz)存在错误。它发现了超过 300 个 被认为已修复但实际上仍然存在的漏洞,以及超过 1,500 个 并非真实漏洞的“假警报”。ARVO 将这些错误报告回原数据库以进行清理。

5. 为什么这很重要

在 ARVO 出现之前,安全研究人员就像是试图仅凭一张发动机照片来修理汽车引擎的机械师。他们无法触摸它,也无法听到它运转的声音。
有了 ARVO,他们拥有了装在盒子里的实际引擎。他们可以拆解它,观察到底哪里坏了,测试他们的维修工具是否有效,并证明他们的修复方案确实奏效。

简而言之,ARVO 将静态的“损坏清单”转变为一个生动、可复现的实验室,研究人员可以在这里安全地研究、测试并修复软件漏洞。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →