Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Indicating that the build system has a completed set of resolved dependencies #1279

Open
arewm opened this issue Feb 5, 2025 · 0 comments
Open

Comments

@arewm
Copy link
Member

arewm commented Feb 5, 2025

In SLSA v0.1, there was a property called hermetic. If a build is hermetic then the artifact is built in an environment without any unrestricted access outside of the build platform (I commented on this elsewhere previously). This means that the build system should have complete knowledge of all resolved dependencies as all of these need to be made available at build time.

We have a build system (Konflux-ci) built on Tekton + Tekton Chains which conforms to the SLSA build v1.0 L3 spec. This system enables users to optionally configure their pipeline to have network access removed during the build task. They can additionally configure an optional task to prefetch dependencies for many common package managers (gomod, pip, npm, yarn, bundler) which are made available at build time. These fetched dependencies are then used to inform a build-time SBOM.

While I wouldn't imagine it to be possible for Chains to generate a different provenance for these modes of operation, it should be possible for the build system to use a policy engine (i.e. conforma née Enterprise Contract) to validate that the complete resolved dependency requirements are met before further attestations are made. In this scenario, how should we standardize the process of specifying these higher guarantees? If the complete resolved dependencies were part of the build track, then we would easily be able to make a VSA indicating this higher level.

One caveat to this system is that the resolved dependencies are not necessarily complete in the provenance itself, but the dependencies are complete as represented in the produced build-time SBOM. Since Chains cannot generate provenance with multiple builder.ids and since the complete resolved dependencies would not be in the provenance, I wouldn't expect to leverage any changes to the provenance specification. Instead, we would likely have to fall back to a VSA attestation of some SLSA property.

This issue relates to the following:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🆕 New
Development

No branches or pull requests

1 participant