-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Looking at #9, I'm trying to get a better understanding of how SBOMit delivers the following:
This specification proposes a means to generate metadata for an SBOM while the
software is being created. Furthermore, the means by which this information
is captured uses (in-toto)[https://in-toto.io] attestations and layouts. This
provides cryptograpic validation that this information is correct, handles
key distribution and management to indicate which parties should be trusted
for each step, and captures information about the environment in which the
steps are run.As a result, using SBOMit provides a more accurate SBOM when parties are
honest. When malicious parties interfere in the process, SBOMit provides
a mix of traceability (knowing which party was malicious) and prevention
(blocking malicious software from being trusted), depending on how the
in-toto steps are configured.
For this I'm thinking of two scenarios. In both, the builds are not reproducible, so the hashes of the various outputs will be different for every build, and between any steps within the build.
In the first scenario, the build is run on a company's servers, and the end user only receives the generated binaries and an SBOM documenting the contents. For some reason the company doesn't want to document their usage of some 3rd party components, so they are taking deliberate steps to prevent that content from being included in the delivered SBOM. This company controls all of the signing keys and the servers where the steps are performed. How would SBOMit ensure that this is not possible and can be detected by the end user receiving the software?
In the second scenario, software is built on a public SaaS, e.g. GitHub Actions. The public action shows the SBOM generation steps being performed. and it is even signed using a project like sigstore to prove the build was run from the specific workflow and commit hash. The build itself could be verified with the GitHub SLSA provenance generator. In this scenario, what additional value would end users receive from verifying the SBOM from SBOMit vs verifying signature came from the workflow and commit running on the SaaS system?