← 最新论文
💻 computer science

Uncovering Hidden Inclusions of Vulnerable Dependencies in Real-World Java Projects

本文介绍了 Unshade,一种结合了元数据分析与字节码指纹识别技术的混合 Java 依赖项扫描工具,用于检测被修改和隐藏的漏洞依赖项,研究表明近 50% 的热门开源 Java 项目都包含此类传统扫描器无法发现的风险。

原作者: Stefan Schott, Serena Elisa Ponta, Wolfram Fischer, Jonas Klauke, Eric Bodden

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

原作者: Stefan Schott, Serena Elisa Ponta, Wolfram Fischer, Jonas Klauke, Eric Bodden

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

想象一下你正在搭建一座宏大且复杂的乐高城堡。为了节省时间,你并不亲自制造每一块积木,而是购买现成的乐高套装(开源软件)并将它们拼接到你的城堡中。这就是现代软件运作的方式。它既快速又高效,但也带来了一个隐患:其中一些预制套装可能存在隐藏的裂缝或弱点(漏洞),黑客可以利用这些弱点。

为了确保你的城堡安全,你通常会聘请一名“安全检查员”(依赖项扫描器)。他会检查你的购物清单(称为 SBOM 或软件物料清单)以查看你购买了哪些套装。如果清单显示你购买了“套装 #101”,而检查员知道“套装 #101”有裂缝,他就会发出警告。

问题所在:“伪装”的积木
论文指出,坏人(或者有时是过于热心的开发者)会玩一些诡计。他们拿走一个危险且有裂缝的套装,将其拆开,然后将其混入一个全新的、看起来像定制款的盒子里。他们可能会:

  1. 重新打包: 将好几个套装装进一个巨大的盒子里。
  2. 重新包装: 改变里面积木的标签,让原本的“套装 #101”现在看起来像是“套装 #999”。

当你的安全检查员查看你的购物清单时,他看到了“套装 #999”。由于检查员只检查标签(元数据)而不检查里面的实际积木,他漏掉了原本隐藏在里面的危险“套装 #101”。漏洞依然存在,但对标准检查来说却是隐形的。

解决方案:Unshade(“X光眼镜”)
研究人员开发了一个名为 Unshade 的工具。你可以把 Unshade 想象成一副 X 光眼镜,它可以看穿新的标签,看到里面真实的积木。

它是这样运作的,分为两个步骤:

  1. 指纹识别(导入阶段): 在扫描任何内容之前,Unshade 会先查看世界上所有已知的“有裂缝的套装”。它不仅仅看盒子的标签;它会对里面的实际积木进行拍照,并创建唯一的“指纹”。至关重要的是,它创建了两种类型的指纹:一种关注标签,另一种则忽略标签,只观察积木的形状。这样一来,即使有人更改了标签,积木的形状依然保持不变。
  2. 扫描: 当你把项目的购物清单交给 Unshade 时,它不会仅仅信任这份清单。它会去抓取你声称使用的实际盒子。它会打开这些盒子,观察里面的积木,并将其与自己的“指纹数据库”进行对比。
    • 如果它发现某块积木与已知的“有裂缝的套装”相匹配(即使标签不同),它会说:“啊哈!你的这里藏着一块危险的积木!”
    • 然后,它会将这个隐藏的危险添加到你的购物清单中,创建一个“增强型 SBOM”。
    • 最后,它将这份更新后的清单交给标准的安全检查员,这样检查员现在就能轻松发现危险,因为危险终于出现在清单上了。

他们的发现(大型研究)
团队在互联网上 1,808 个最流行的 Java 软件项目(比如那些最著名的乐高城堡)上进行了测试。结果令人震惊:

  • 近 50% 的项目 至少包含一个隐藏在内部的“伪装”危险套装。
  • 平均而言,每个此类项目都含有超过八个被标准检查员完全漏掉的隐藏危险套装。
  • 总计,Unshade 发现了 7,712 个独特的安全威胁 (CVEs),如果仅使用传统的标签检查方法,这些威胁将保持隐形。

成本
你可能会想,“检查每一个盒子是否需要很长时间?”研究人员发现,Unshade 的速度非常快。它为每个项目仅增加了大约 16 秒 的额外工作量。与最初制作购物清单所需的时间相比,这是一个微小的代价,而且它比其他试图手动分析每一行代码的方法要快得多。

底线
论文得出结论,仅仅依赖“购物清单”(元数据)是危险的,因为人们一直在伪装危险的软件组件。Unshade 充当了一个桥梁,它结合了检查清单的速度和检查实际代码的准确性,揭示了大量此前对行业而言处于隐形状态的隐藏安全风险。

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

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

试用 Digest →