Introduction
Software Bill of Materials (SBOM) operations is the discipline of producing, ingesting, signing, distributing, and acting on machine-readable manifests of software composition. What began as a US Executive Order 14028 compliance requirement in 2021 has, by 2026, become a routine part of enterprise software delivery in regulated sectors — with SEBI’s CSCRF, EU’s Cyber Resilience Act, FDA medical-device guidance, and CERT-In’s vendor-procurement direction all naming SBOM explicitly.
This guide is for platform engineers, AppSec teams, and procurement security architects who need to move beyond “we generate an SBOM” toward a programme that actually reduces breach risk and survives audit scrutiny. We cover the format choices, the toolchain, the SLSA provenance layer, the operational ingestion and reachability analysis problem, and a maturity model for grading where your programme sits.
Background: From Compliance Artefact to Operational Tool
The original SBOM use case — transparency to downstream consumers — remains valid but is the least operationally interesting one. The use cases that drive SBOM investment in 2026 are downstream:
- Vulnerability triage. When the next high-severity OpenSSL CVE drops, which of our 4,200 deployed services are exposed?
- Supply-chain incident response. When XZ-Utils-style backdoor surfaces, which builds shipped with the compromised version?
- Procurement due diligence. Does this SaaS vendor we are buying ship dependencies with known critical vulnerabilities?
- License compliance. Are we shipping anything under GPL that we should not be, given our distribution model?
- Regulatory attestation. SEBI Phase 2, CERT-In vendor questionnaires.
Each of these requires different SBOM workflows. The first two require centralised ingestion and rapid query; the third requires standardised vendor-side production; the fourth requires license-field accuracy; the fifth requires production-grade attestation, not just generation.
Theory: CycloneDX vs SPDX
Two specifications dominate. They are interoperable in practice but differ in design philosophy.
CycloneDX (OWASP project, current version 1.6) is engineered for security use cases. First-class concepts include vulnerabilities, services, ML model components, formulation (how the artefact was built), and as of 1.6, cryptographic assets for PQC migration planning. Native JSON, with XML and Protobuf serialisations. The most common choice for new programmes.
SPDX (Linux Foundation project, current version 3.0) was engineered first for license compliance and has a stronger license-detection ecosystem. Used heavily in open-source projects (Linux kernel, Kubernetes), in regulated medical-device space, and where ISO/IEC 5962:2021 certification matters.
Practical guidance: pick CycloneDX for security-driven programmes, SPDX for license-driven programmes, accept both for incoming vendor SBOMs. Conversion tools (cyclonedx-cli, spdx-tools) handle round-trips.
Theory: SLSA Provenance
SBOM tells you what is in an artefact. SLSA (Supply-chain Levels for Software Artifacts) tells you how it was built: which source repository, which CI system, which build command, which inputs. SBOM and SLSA together let a consumer verify both composition and origin.
SLSA levels:
- Build L1: provenance exists.
- Build L2: provenance is signed by a hosted build platform.
- Build L3: build is isolated, hosted, hardened — the build can be reproduced from provenance.
SLSA Build L3 is achievable today with GitHub Actions OIDC-issued attestations stored in Sigstore Rekor, or with Google Cloud Build with binary authorization. Most Indian enterprises are at L1 or L2 with intent to reach L3 over 2026-27.
Technical Deep Dive: SBOM Generation Toolchain
SBOM generation tools by ecosystem:
- Container images: Syft (Anchore), Trivy (Aqua), Docker Scout. Syft is the workhorse; Trivy bundles SBOM generation with vulnerability scanning.
- Build-time, language-aware: cyclonedx-maven-plugin, cyclonedx-gradle-plugin, cyclonedx-python, cyclonedx-node-npm. Generated at build time, capturing exact resolved dependency graphs (not just declared dependencies).
- Binary analysis: cve-bin-tool, Binsider, FACT. For closed-source binaries.
- Source code static: Black Duck, Snyk, Mend (formerly WhiteSource). Commercial, broader ecosystem coverage, license enrichment.
A modern delivery pipeline produces three SBOMs per artefact:
- Source SBOM (what the repo declares).
- Build SBOM (what actually got compiled in).
- Runtime SBOM (what is actually loaded at execution — via tools like Cilium Tetragon or eBPF profilers).
The deltas between these are themselves diagnostic. If the build SBOM contains packages not in the source SBOM, the build pipeline is pulling in undeclared dependencies — supply-chain risk.
Technical Deep Dive: Storage and Distribution
SBOMs in a flat directory become unmanageable past a few hundred artefacts. Three storage patterns:
- Co-located with the artefact: OCI registry attaches the SBOM as an annotation or referrer. The standard pattern for containers (cosign attach sbom, oras push).
- Dependency-track or Guac: a dedicated SBOM/provenance database that ingests, indexes, and queries.
- Vendor SCA platforms: Snyk, Anchore, Sonatype, Chainguard.
For Indian enterprises with mid-volume artefact production (hundreds to low thousands of artefacts per day), Dependency-Track is the highest-ROI starting point — open source, self-hosted, OWASP-stewarded, integrates with both CycloneDX and SPDX, ingests vulnerability feeds from NVD, OSV, and GitHub Advisory Database.
Technical Deep Dive: Reachability Analysis
A naive SBOM-driven vulnerability process reports every CVE in every dependency, producing thousands of findings, most non-exploitable. The next maturity step is reachability analysis: does the vulnerable function actually get called by the application’s code path?
Tools that perform reachability for major languages:
- Endor Labs, Semgrep Supply Chain, Snyk Reachability — commercial; call-graph analysis from application entry points.
- VEX statements (CycloneDX VEX / OpenVEX) — producer-issued statements declaring “this vulnerability is not exploitable in this product because [reason],” consumed by downstream tooling.
- OSV-Scalibr, Trivy with experimental call-graph mode — open source, partial language coverage.
Reachability typically cuts vulnerability backlog by 60-90%. A 4,000-finding backlog becomes 400-800 reachable findings, which is a tractable engineering workload.
Technical Deep Dive: VEX
Vulnerability Exploitability eXchange (VEX) is a standardised way for a software producer to communicate that a CVE in a dependency is or is not exploitable in their product.
A VEX statement has four canonical states:
- not_affected — the vulnerable code path is not reachable.
- affected — the vulnerability is exploitable.
- fixed — a patched version is available in this artefact.
- under_investigation — producer is still triaging.
VEX is essential to the SBOM ecosystem because it lets producers communicate triage decisions downstream, preventing every customer from independently investigating the same CVE.
Practical Implementation: The CI Pipeline
A reference pipeline:
# GitHub Actions workflow snippet
- uses: anchore/sbom-action@v0
with:
artifact-name: app-sbom.cdx.json
format: cyclonedx-json
- name: Sign SBOM with cosign
run: |
cosign sign-blob --bundle app-sbom.bundle app-sbom.cdx.json
- name: Generate SLSA provenance
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1
with:
base64-subjects: ${{ needs.build.outputs.hashes }}
- name: Attach SBOM to container image
run: |
cosign attach sbom --sbom app-sbom.cdx.json $IMAGE_REF
- name: Upload SBOM to Dependency-Track
run: |
curl -X POST -H "X-Api-Key: $DT_API_KEY"
-F "[email protected]"
-F "projectName=app" -F "projectVersion=$VERSION"
$DT_URL/api/v1/bom
Every artefact ships with: a signed SBOM, a signed SLSA provenance, both attached to the OCI registry as referrers, and ingested into Dependency-Track for ongoing vulnerability monitoring.
Practical Implementation: Vendor SBOM Intake
The hardest operational SBOM problem is not generating your own — it is ingesting vendor SBOMs at procurement and at every version update. A defensible workflow:
- Procurement contract requires SBOM at delivery, in CycloneDX or SPDX, signed.
- SBOM is validated for completeness (no
unknowncomponents beyond a threshold) and format conformance. - SBOM is ingested into Dependency-Track as a separate project per vendor product.
- Vulnerability monitoring fires alerts when new CVEs affect ingested components.
- Vendor is notified of high-severity findings and asked for VEX or a patched build.
- SLA on response is contractually committed.
Enterprise Use Cases
SEBI CSCRF (capital markets). SBOM for in-house and procured trading-critical applications is a phase-2 requirement. Stockbrokers and depository participants should be operationalising SBOM ingestion now.
Healthcare and medical devices. FDA 524B requires SBOM for cyber devices; Indian regulatory equivalents are following. Medical device manufacturers exporting from India need both SPDX/CycloneDX with FDA-mandated fields and SLSA L2+ provenance.
BFSI vendor management. RBI’s Master Direction on outsourcing increasingly invokes supply-chain considerations. SBOM ingestion at vendor onboarding becomes a control.
Defence and government. National Critical Information Infrastructure Protection Centre (NCIIPC) procurement is moving toward SBOM-required RFPs through 2026-27.
SBOM Maturity Model
- Level 0 — None. No SBOM generation.
- Level 1 — Generation. SBOMs produced for some artefacts; not stored centrally.
- Level 2 — Centralised storage. All artefacts produce SBOMs, ingested into a central tool, queryable.
- Level 3 — Continuous vulnerability monitoring. SBOMs drive automated CVE alerts; engineering teams triage with defined SLAs.
- Level 4 — Reachability and VEX. Findings are filtered by reachability; producer publishes VEX for known-non-exploitable CVEs.
- Level 5 — Full provenance. SBOM + SLSA L3 provenance + signed attestations; vendor SBOMs ingested at parity with in-house.
Common Pitfalls
- Generating SBOMs without ingestion. An SBOM in a build artefact that nobody queries is a compliance artefact, not a control.
- Trusting declared SBOMs over scanned ones. A package.json lists what was requested; what got resolved into node_modules may differ.
- Ignoring transitive dependencies. Most vulnerabilities live deeper than first-tier deps.
- Vendor SBOM blind spots. Vendors that ship only top-level component lists, not full dependency trees, hide the real exposure.
- No version normalisation. The same package can appear under
org.apache.logging.log4j:log4j-core,log4j-core, andapache/log4j; without normalisation, queries miss matches.
Action Items
- Run Syft against your most critical container image today; generate the first SBOM.
- Stand up Dependency-Track in a non-prod environment; ingest the first SBOM; explore the UI.
- Add SBOM generation to one CI pipeline; commit the workflow.
- Draft a procurement clause requiring SBOM at delivery; route through Legal.
- Inventory your top 20 internal artefacts by criticality; sequence SBOM coverage.
- If you are SEBI-regulated, file your SBOM readiness status with your designated SEBI contact.
SBOM operations is shifting from “produce a JSON file” to “operationalise a software-composition control plane.” The organisations that treat it as the latter are the ones that survive the next supply-chain incident with a confident inventory in hand.
Get a DPDP gap assessment
Free 30-minute call. We map your data flows against DPDP §8 obligations and tell you exactly which gaps to fix first. Auditor-defensible output.