Reproducible Builds: Increasing the Integrity of Software Supply Chains
arXiv:2104.06020 · doi:10.1109/MS.2021.3073045
Abstract
Although it is possible to increase confidence in Free and Open Source Software (FOSS) by reviewing its source code, trusting code is not the same as trusting its executable counterparts. These are typically built and distributed by third-party vendors, with severe security consequences if their supply chains are compromised. In this paper, we present reproducible builds, an approach that can determine whether generated binaries correspond with their original source code. We first define the problem, and then provide insight into the challenges of making real-world software build in a "reproducible" manner-this is, when every build generates bit-for-bit identical results. Through the experience of the Reproducible Builds project making the Debian Linux distribution reproducible, we also describe the affinity between reproducibility and quality assurance (QA).
IEEE Software, Institute of Electrical and Electronics Engineers, In press
Cited by in corpus (15)
- Automatic Security Assessment of GitHub Actions Workflows
- Killing Two Birds with One Stone: Malicious Package Detection in NPM and PyPI using a Single Model of Malicious Behavior Sequence
- Towards Build Verifiability for Java-based Systems
- Building a Secure Software Supply Chain with GNU Guix
- Reproducibility of Build Environments through Space and Time
- Source Code Archiving to the Rescue of Reproducible Deployment
- Attestable Builds: Compiling Verifiable Binaries on Untrusted Systems using Trusted Execution Environments
- Does Using Bazel Help Speed Up Continuous Integration Builds?
- Trusted Compute Units: A Framework for Chained Verifiable Computations
- Automatic Diversity in the Software Supply Chain
- Does Functional Package Management Enable Reproducible Builds at Scale? Yes
- Software Supply Chain Security of Web3
- SoK: Towards Reproducibility for Software Packages in Scripting Language Ecosystems
- The Devil Is in the Command Line: Associating the Compiler Flags With the Binary and Build Metadata
- The Design Space of Lockfiles Across Package Managers