Dmitriy Kononov.
Let’s talkContact

News and analysis

SBOM and provenance: what they tell you about a release

Dependency inventories and build provenance answer different questions. Learn how to connect them to deployment decisions and understand their limits.

SecurityPublished:

A vulnerable-library alert creates one question: which deployed releases contain that component? Doubts about a container image create another: what built it, and from which source? These require different evidence. An inventory of packages cannot replace a check of the release's origin, and a valid build record cannot explain every vulnerability in its dependencies.

Inventory the artifact that actually runs

An SBOM describes software components and their relationships. CycloneDX provides a format for that description. Operational value comes from connecting the inventory to a specific release. Scanning a developer's working directory may produce a different picture from the container running in production.

A practical approach is to generate the inventory during release and keep it alongside the image identifier. Determine whether the chosen scope includes application dependencies and operating-system packages. Explicitly record gaps. A missing component in a report is not proof that the component is absent if the scanner never examined the relevant layer.

Consider a hypothetical document-processing service. An inventory can identify releases containing a particular parser version. It cannot, by itself, establish whether untrusted files reach the vulnerable function. That is a question for investigation, not evidence of exploitation or a description of a completed client project.

Define what a trusted build looks like

SLSA provenance records an artifact's origin, including the build process and associated inputs. Before verifying it, the team must define acceptable values. A cryptographically valid signature from an unfamiliar builder may still violate the company's release policy.

SLSA's verification guidance covers the signature, artifact identity and expected build parameters. For an internal application, this can become a deployment rule: accept a particular digest produced by an approved process from an allowed repository. Exceptions need an owner and a reason; otherwise the rule gradually becomes optional.

Exercise rejection paths as well as successful verification. Missing provenance, an unexpected signer or a digest mismatch should produce an understandable failure. Archiving provenance files while allowing every image to deploy does not establish a control at the point of use.

Keep the policy separate from a single developer's machine. Another operator should be able to reproduce the decision from the artifact and retained evidence. A procedure that depends on undocumented local settings will be difficult to defend or repeat during an incident.

Understand the remaining trust boundary

The official SLSA threat model distinguishes source changes, compromised dependencies and substituted build outputs. The engineering implication is straightforward: correct provenance does not make malicious source code safe. An undesirable change that enters through an allowed process can still be built by trusted infrastructure.

Combine origin checks with change review, constrained CI permissions and dependency analysis. Build tools and installation scripts deserve attention because they can act before the final artifact exists. The trust boundary needs to cover the participants in the release rather than only its output file.

Start with one release path

For a small team, a useful initial scope is one application and one deployment route. Pin dependencies, connect the SBOM to the image, retain provenance and check the evidence before launch. Test an unexpected source, substituted file and unavailable verification service. Agree an emergency procedure so an urgent release does not become an undocumented bypass.

Measure the result through questions the team can now answer: what is installed, where did it come from, and why was a release rejected? Counting generated reports does not establish that capability. Someone must also own the response when new information changes the assessment of an existing release.

Infrastructure and release planning should identify evidence the team can produce and verify consistently. The scope should reflect the application's risk and available maintenance capacity.

Sources checked on 7 October 2026. SLSA links use the fixed 1.0 specification to make the explanation reproducible; it is not presented as the latest version.

The archived Debian project in Google Cloud places change delivery alongside web services, the database and process management. That scope explains why release records need to cover both the application and its environment. The archive describes planned work; it does not establish an implemented SBOM or provenance check. Those controls need their own requirements and acceptance criteria.

My historical review of Debian remote access illustrates another boundary: instructions for one release do not establish compatibility with later versions. Keep the verified runtime environment beside build-origin evidence so the team can relate release documents to the particular installed instance.

Sources