What evidence supports build integrity in NIST SSDF SP 800-218?
For the build process, retain the approved compiler, interpreter, and build-tool versions and configuration; evidence that the approved configuration ran; relevant access, change, and integrity records for the build environment and toolchain; and the identifier of the source and dependencies used. PW.6.2 gives a dedicated, highly controlled build environment as a notional example, not a universal implementation requirement.
For the distributed release, retain the release identifier and files, integrity-verification information made available to acquirers, and the protected archive required by organizational policy. PS.2.1 gives cryptographic hashes and code signing as examples. The organization chooses the mechanism and should protect the selected signing or hash-publication process.
Component provenance, including an SBOM, supports origin and affected-release analysis under PS.3.2. It does not by itself show that an approved build ran or that the final artifact was not altered. Reproducible builds and build attestations may add assurance, but SP 800-218 lists reproducible builds only as a notional toolchain example and does not require a specific attestation scheme.
- Platform or build owner: protect the build environment, restrict privileged access, monitor changes, and retain the records defined by policy.
- Development or release owner: identify the source revision, dependencies, tools, configuration, build run, and resulting release.
- Security or release reviewer: confirm that required checks ran and record approvals, rejections, exceptions, and unresolved risks.
- Distribution owner: publish the selected integrity-verification information through a protected channel and maintain signing keys or hash-publication controls.
- Archive owner: protect the release files, integrity data, and provenance for the retention period set by the organization.
PO.3 and PO.5 cover toolchains and protected development environments; PW.6 covers build-tool selection and configuration; PS.2.1 covers release-integrity verification information; PS.3.1 and PS.3.2 cover release archives and component provenance.