Yasa

Software supply chain security best practices

Software supply chain components linked to one finished amber-capped artifact

Software supply chain security best practices connect three questions: what is in your application, where did the release come from, and what will you do if a component becomes unsafe? Answering them requires more than running a dependency scanner.

First, make the path from source to production visible. Then attach checks to the places where trust changes: package selection, build execution and release promotion. This guide turns that approach into a practical workflow for a development team.

Map the software supply chain

Start with one application and one release path. Record its source repository, package registries, build service, artifact store and deployment destination. Also identify who can change the workflow and who can publish a release.

Include dependencies outside the main package manifest. A container base image, downloaded build tool or CI action can affect the final result too. For example, a pinned application library does little to constrain an unrelated install script fetched during the build.

Next, assign an owner to each part of the path. When a security advisory arrives, the team should know who can identify affected deployments and prepare a replacement.

Use an SBOM as an inventory you can act on

A software bill of materials, or SBOM, records components and their relationships. The 2026 minimum-elements guidance describes the information needed for useful component transparency. Use a supported format and preserve the relationship to the release it describes.

Generate the inventory from the actual build where possible. Then spot-check a few important components against the artifact. An inventory for a development checkout can differ from what the production image contains.

Also define how the inventory enters vulnerability management. When a component becomes affected, someone needs to assess its use, choose an action and record the result. An SBOM is an input to that decision; it does not certify that an application is safe.

Set a software supply chain security policy

For dependencies, software supply chain security best practices begin with approved sources and a review process. Inspect the exact package identity, maintenance history, version and required privileges. Also review the lockfile so a small manifest change cannot conceal a larger dependency update.

Prefer controlled updates with meaningful application checks. Freezing every dependency indefinitely leaves known defects in place. However, automatically accepting every new version can introduce incompatible behavior. The policy should explain how your team balances those risks.

For a small web service, a practical starting point is a scheduled update review, an owner for urgent advisories and a clear release gate. Keep the policy specific enough that a developer can follow it during ordinary work.

Verify provenance against an expected origin

Build provenance links an artifact to information about its build. SLSA’s artifact verification guidance emphasizes checking that information against expectations. Those expectations include the trusted builder and the relevant build parameters.

Define the expected repository, workflow and source revision before accepting a release. Then verify that the evidence belongs to the exact artifact you plan to deploy. A valid attestation for a different image cannot establish the origin of this one.

Finally, distinguish origin from behavior. Provenance can help establish how a release was produced. It cannot replace functional tests or establish that the source code contains no vulnerabilities.

Check the signer and certificate trust

A signature check needs a trust policy. For identity-based verification, Sigstore’s Cosign documentation uses an expected certificate identity and OIDC issuer. Accepting any signer would miss the question your release gate needs to answer.

Also maintain the verifier and its trust configuration. If verification fails, investigate the artifact, expected identity, issuer and trust material. Do not remove certificate checks merely to get the release through.

Record the verification outcome with the artifact digest. This makes the decision useful later, when an incident requires the team to establish which release actually reached production.

Test software supply chain security failures

Consider a hypothetical store integration. Its release pipeline builds a service, generates an SBOM and publishes an image. A deployment gate then accepts only an image from the approved build workflow.

Start with a known permitted build. After that, change one condition at a time in an isolated test environment. Check that the gate rejects the following cases:

  • The image digest differs from the verified artifact.
  • The signature is valid but the signer is not the approved identity.
  • The build came from an unexpected repository or workflow.
  • Required provenance is missing or does not match the release.

Then test the recovery path. A rejected candidate should leave the working deployment intact. The release record should explain the rejection without leaking credentials or full private build logs.

These are proposed acceptance cases, not results from a Yasa customer system. Adapt them to your registry, builder and verification tools. Also preserve a permitted case so a broken gate cannot appear successful by rejecting everything.

Prepare for a compromised or vulnerable component

Keep the deployed artifact digest and a usable previous release. Also record configuration and data changes that may affect rollback. Replacing an image cannot automatically reverse a database migration.

When an advisory arrives, identify the affected component and deployments first. Then decide whether to update, isolate, disable a feature or replace the dependency. If credentials may have been exposed, include their revocation and recovery in the incident plan.

After recovery, verify the application’s important workflows and update its component inventory. Finally, record what changed so the same weak point does not remain in the next build.

Start with one release you can trace

Put software supply chain security best practices into one real release path before expanding them across the organization. A useful first result is a release whose components, source, build and deployment decision the team can inspect.

If you need help with the application or its integrations, explore Yasa’s development support. Bring the release workflow and the specific uncertainty you want to resolve.

Make your next release easier to trust

Tell Yasa how your application is built and deployed, and where the process becomes difficult to verify. We can discuss a focused improvement and the evidence it should produce.

Talk through your release workflow with Yasa