中文

Maven-Hijack:利用包装顺序实施的软件供应链攻击

密码学与安全 2025-10-31 v4 软件工程

摘要

Java 项目经常依赖诸如 Maven 等包管理器来管理复杂的外部依赖关系。虽然这些工具简化了开发,但也引入了对软件供应链的细微风险。在本文中,我们提出了 Maven-Hijack,这是一种新型攻击,利用 Maven 包装依赖的顺序以及 Java 虚拟机在运行时解析类的方式。通过将具有相同完全限定名称的恶意类注入到早期打包的依赖中,攻击者可以无声地覆盖核心应用程序行为,而无需修改主代码或库名称。我们通过破坏一个广泛使用的开源 COVID-19 接触者追踪系统 Corona-Warn-App, gaining control over its database connection logic 来演示了此攻击的实际可行性。我们评估了三种缓解策略,如封闭 JAR、Java 模块和 Maven Enforcer 插件。我们的结果表明,尽管 Java 模块提供了强大的保护,但配合重复类检测的 Maven Enforcer 插件为当前 Java 项目提供了最实用且最有效的防御。这些发现凸显了加强 Java 构建和依赖管理过程防护,以防止高级供应链攻击的紧迫性。

关键词

引用

@article{arxiv.2407.18760,
  title  = {Maven-Hijack: Software Supply Chain Attack Exploiting Packaging Order},
  author = {Frank Reyes and Federico Bono and Aman Sharma and Benoit Baudry and Martin Monperrus},
  journal= {arXiv preprint arXiv:2407.18760},
  year   = {2025}
}