解锁可重复性:自动化构建开源软件的重新构建过程
密码学与安全
2025-09-11 v1 软件工程
摘要
软件生态系统如 Maven Central 在现代软件供应链中发挥着关键作用,提供库和构建插件的存储库。然而,Maven Central 中二进制文件与其对应源代码的分离,尤其在将二进制文件链接回其原始构建环境方面, presents a significant 挑战。这种缺乏透明度带来了安全风险,因为约有 84% 的前 1200 个最常用软件包未使用透明的 CI/CD 流水线构建。因此,用户必须在不仅信任源代码,还要信任这些软件包构建的环境。从源码重新构建软件包可提供一种强大的解决方案,以提高供应链安全性。该方法允许对代码进行更深入的审查、验证二进制与源码的等效性,并控制依赖关系。然而,由于构建环境的差异(如 JDK 版本和构建命令),会出现构建失败。此外,确保在大型复杂依赖图中重新构建所有依赖关系也使过程更加复杂。本文介绍了对 Macaron—an industry-grade开源供应链安全框架的扩展,用于自动化从源码构建 Maven 软件包。我们的做法在现有工具基础上提供了更好的性能,尤其是在源码检测和自动从 GitHub Actions 工作流程中提取构建规范方面。我们还present了对 Java 项目构建失败的全面根因分析,并提出了一种可扩展的自动化构建软件包的解决方案,最终增强了开源软件供应链的安全性和透明度。
引用
@article{arxiv.2509.08204,
title = {Unlocking Reproducibility: Automating re-Build Process for Open-Source Software},
author = {Behnaz Hassanshahi and Trong Nhan Mai and Benjamin Selwyn Smith and Nicholas Allen},
journal= {arXiv preprint arXiv:2509.08204},
year = {2025}
}