Attestation
Sign the SBOMs the Vulnetix CLI writes with your CI runner's own OIDC identity, and verify signatures and in-toto provenance on any artefact with vulnetix attest verify.
The CLI signs documents with the identity of the machine that ran it, using public Sigstore, and verifies signatures and provenance on artefacts you consume. Nothing here uses a Vulnetix credential, and the results verify with stock cosign.
| Task | Command | Page |
|---|---|---|
| Sign an SBOM you generate | vulnetix cdx --sign |
Signing documents |
| Sign an SBOM you enriched | vulnetix bom enrich --sign |
Signing documents |
| Verify a signature and read provenance | vulnetix attest verify <artifact> |
attest verify |
| Verify at the point of import | vulnetix bom import --verify-attestation |
Import and validate |
| Pin the signer, or trust a private Sigstore | --identity, --issuer, --trusted-root |
Trust roots and signer pinning |
Quick start
jobs:
sbom:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # lets the job sign as itself
steps:
- uses: actions/checkout@v4
- run: vulnetix cdx --sign
- run: |
vulnetix attest verify .vulnetix/sbom.cdx.json \
--identity "https://github.com/${{ github.workflow_ref }}" \
--issuer github
The job assumes vulnetix is on the runner’s PATH; see installing the CLI. github.workflow_ref is owner/repo/.github/workflows/<file>@<ref>, which is the certificate identity Fulcio issues to a GitHub Actions job.
What is signed with what
| Piece | Value |
|---|---|
| Identity | The ambient OIDC token: SIGSTORE_ID_TOKEN if set, otherwise the GitHub Actions token (needs id-token: write) |
| Certificate authority | Fulcio, default https://fulcio.sigstore.dev, override with SIGSTORE_FULCIO_URL |
| Transparency log | Rekor, default https://rekor.sigstore.dev, override with SIGSTORE_REKOR_URL, or - to skip |
| Sidecars | <file>.sig, <file>.pem, <file>.intoto.jsonl, plus a JSF signature embedded in the document |
| Verification root | The built-in Sigstore public-good root, or yours |
Related
- SBOM produces the documents.
- TEA publishes them, with their signatures, for consumers.
- Software Factory trust and SLSA covers the factory’s own provenance.
GitHub Actions
Verify an artefact in a workflow with the attest GitHub Action. The other Vulnetix actions create GitHub artifact attestations with their attest input.
Platform IaC
There is no config-as-code for signing or verification: trust is set with flags, SIGSTORE_ROOT_FILE, or a committed .vulnetix/trusted-root.pem, and no kind covers it. The kinds that do exist are listed in the kind catalogue.