What is a Software Bill of Materials (SBOM)?
A Software Bill of Materials (SBOM) is a comprehensive inventory of all components, libraries, and dependencies that make up a software application. Think of it as a "nutrition label" for software — it tells you exactly what's inside.
With the rise of supply chain attacks like SolarWinds and Log4Shell, SBOMs have become essential for modern security teams. Executive Order 14028, signed in 2021, mandated SBOM requirements for software sold to the U.S. federal government, putting SBOMs firmly in the security spotlight.
Why SBOMs Matter for Security
1. Vulnerability Discovery
When a new CVE is published (like the infamous CVE-2021-44228 for Log4j), security teams need to answer one critical question: "Are we affected?" Without an SBOM, answering this requires manual code audits across every application. With an SBOM, you can search your inventory in seconds.
2. Supply Chain Transparency
Modern applications contain hundreds of transitive dependencies. An SBOM reveals the full dependency tree, including components your developers didn't explicitly choose but are pulled in by other libraries.
3. License Compliance
SBOMs also track license information for each component, helping legal teams ensure compliance with open-source licenses like GPL, MIT, and Apache.
4. Regulatory Requirements
Beyond EO 14028, frameworks like NIST SP 800-218 (SSDF) and the EU Cyber Resilience Act are pushing SBOM adoption as a baseline requirement.
SBOM Formats
Two major SBOM formats dominate the industry:
SPDX (Software Package Data Exchange)
Maintained by the Linux Foundation, SPDX is an ISO/IEC standard (ISO/IEC 5962:2021). It's widely adopted in the open-source community and supports detailed license metadata.
CycloneDX
Created by OWASP, CycloneDX is designed specifically for security use cases. It supports vulnerability tracking, service descriptions, and is more security-focused than SPDX.
How to Generate SBOMs
Using Syft (Recommended)
Syft by Anchore is the most popular open-source SBOM generator. It supports Docker images, filesystems, and archives:
# Generate SBOM from a Docker image
syft alpine:latest -o cyclonedx-json > sbom.json
# Generate SBOM from a local directory
syft dir:./my-project -o spdx-json > sbom.spdx.json
Using Trivy
Trivy by Aqua Security can also generate SBOMs alongside its vulnerability scanning:
trivy image --format cyclonedx --output sbom.json alpine:latest
Scanning SBOMs for Vulnerabilities
Once you have an SBOM, you can scan it against vulnerability databases:
Using Grype
Grype is the companion tool to Syft. It takes an SBOM as input and matches components against the NVD, GitHub Advisory Database, and other sources:
grype sbom:./sbom.json
Automated Scanning with Vulnios
Vulnios automates the entire SBOM lifecycle: upload a binary, container image, or application package, and our engine runs Syft for SBOM generation and Grype for vulnerability scanning — all in a single workflow.
Results include EPSS (Exploit Prediction Scoring System) scores and KEV (Known Exploited Vulnerabilities) enrichment so you can prioritize remediation effectively.
Best Practices for SBOM Management
Conclusion
SBOMs are no longer optional for security teams. Whether driven by regulation, supply chain risk, or the need for faster incident response, maintaining accurate SBOMs is a fundamental practice for modern security programs.
The key is automation: generate SBOMs in your CI/CD pipeline, scan them continuously against vulnerability databases, and enrich findings with threat intelligence data like EPSS scores to prioritize what matters most.
Ready to secure your organization?
Start scanning with 32 security engines — free tier available.
Get Started Free