-
Notifications
You must be signed in to change notification settings - Fork 274
Description
I'm unsure about something about resolvedDependencies (in the build track) and how it does or doesn't overlap with an SBOM.
From https://slsa.dev/spec/v1.2/build-provenance, resolvedDependencies is an:
Unordered collection of artifacts needed at build time. Completeness is best effort, at least through SLSA Build L3. For example, if the build script fetches and executes “example.com/foo.sh”, which in turn fetches “example.com/bar.tar.gz”, then both “foo.sh” and “bar.tar.gz” SHOULD be listed here.
I think of the SBOM of an artifact as "the list of dependencies" of an artifact. If a particular project pulls in libfoo at build time, then a resolved reference to the specific version of libfoo should appear in the SBOM. In the example above, I would think that at least "example.com/bar.tar.gz" should appear in the SBOM. Possibly "example.com/foo.sh" too.
I tend to think of the SLSA resolvedDependencies as the dependencies of the build process, not necessarily the dependencies of the artifact the way we normally talk about dependencies. For example, for a github workflow run, in my opinion, a good list of items to have in the resolvedDependencies would be the specific digests of the specific GH actions that ran as a part of that workflow. Specific identities of the runners or their images would be a solid bonus.
But, should the SLSA build provenance resolvedDependencies also include the (possibly hundreds of) other software dependencies that a build pulls in?
- Should the SLSA build provenance always be a superset of the SBOM, such that while the SBOM represents the "software dependencies" of the build and the SLSA build provenance includes both that and resolved build system details?
- Should the SLSA build provenance always be disjoint from the SBOM, such that the SBOM represents the "software dependencies" of the build and the SLSA build provenance includes only resolved build system details?
Is it an exercise deliberately left to implementers?
Metadata
Metadata
Assignees
Labels
Type
Projects
Status