Overview

What Is SBOM Generation?

An SBOM, or software bill of materials, is a list of components within a software application. It details the various third-party libraries, open-source modules, and dependencies present. SBOMs improve transparency and security in software development by allowing organizations to track and manage the software components they use.

SBOMs help in identifying potential vulnerabilities, ensuring compliance with licensing agreements, and maintaining operational efficiency. An SBOM serves as a snapshot of the software's component landscape, offering insights into its construction and associated risks. By systematically documenting components, developers can pinpoint outdated libraries or components that need updates.

SBOMs also support informed decision-making regarding software adoption and integration, promoting a proactive approach to software lifecycle management. They are increasingly becoming a standard requirement in software development.

This is part of a series of articles about open source security.

Methods for Generating SBOMs

Source Code Analysis

Source code analysis is a method of generating SBOMs by examining the source code of software projects. This approach is important during the early stages of development, as it allows for identifying third-party dependencies and licensing issues.

By analyzing the codebase directly, developers can create an accurate and detailed SBOM that reflects the latest development changes. This method often involves automated tools that scan the source code to identify all dependencies and generate an SBOM.

Build-Time Generation

Build-time generation refers to the creation of SBOMs during the software build phase. As part of this process, build tools examine compiled components and libraries to produce a list of dependencies and their versions. This real-time monitoring ensures that the generated SBOM reflects the software that actually ships.

Build-time SBOM generation provides precise insights into the final compiled product, ensuring it includes all elements from the development process. This method is particularly valuable in agile environments where software builds occur frequently. Implementing SBOM generation during build-time ensures that every software release includes an updated list of components.

Runtime Analysis

Runtime analysis examines software during execution. It monitors the actual components loaded into memory and their interactions, providing a real-world snapshot of the operational environment. This approach ensures that the SBOM reflects the components in active use, which can differ from those detected in source code or during the build.

Runtime analysis offers the most accurate picture of software as it runs in production. By capturing real-time data on how dependencies behave during runtime, it helps in identifying unused libraries or dynamically loaded components that may pose security risks. The insight gained from runtime analysis aids in optimizing both performance and security postures.

Notable SBOM Generation Tools

1. Oligo Security

Oligo Security enhances SBOM generation by integrating runtime analysis to deliver real-time visibility into software components in active use. By focusing on runtime behavior, Oligo helps organizations identify not just present vulnerabilities but those that directly affect their operational environment. This ensures prioritization of exploitable risks, improving security and efficiency.

Key features include:

  • Runtime Visibility: Captures components and libraries in active use to provide an accurate SBOM tailored to production environments.
  • Vulnerability Prioritization: Identifies critical vulnerabilities based on runtime behavior and exploitability.
  • Seamless Integration: Works with existing development workflows to generate SBOMs that reflect actual usage, enhancing security posture.

2. Syft

Syft is an open-source tool to generate SBOMs for container images, filesystems, and archives. It provides developers with insights into their software's components, including packages and dependencies, enabling better management of vulnerabilities, compliance, and overall software supply chain security. The project is sponsored by Anchore.

License: Apache-2.0
Repository: https://github.com/anchore/syft
GitHub stars: 6K+
Contributors: 100+

Key features include:

  • SBOM generation for container images, filesystems, archives, and more.
  • Compatibility with OCI, Docker, and Singularity image formats.
  • Integration with Grype for vulnerability scanning.
  • In-toto attestation support and SBOM format conversion.

3. Microsoft’s SBOM Tool

Microsoft’s SBOM tool is an open-source solution for generating SBOMs compliant with the SPDX 2.2 standard. It leverages component detection libraries to identify components and integrates with the ClearlyDefined API to enrich SBOMs with accurate license information.

License: MIT
Repository: https://github.com/microsoft/sbom-tool
GitHub stars: 1K+
Contributors: 40+

Key features include:

  • SPDX 2.2 compatibility and comprehensive component detection.
  • ClearlyDefined API integration for license information.
  • Platform flexibility and Docker image support.

4. CycloneDX Generators

CycloneDX Generators (cdxgen) is a CLI tool, library, REPL, and server for creating CycloneDX-compliant BOMs. It supports SBOMs, CBOMs, OBOMs, SaaSBOMs, and attestation BOMs.

License: Apache-2.0
Repository: https://github.com/CycloneDX/cdxgen
GitHub stars: 500+
Contributors: 60+

Key features include:

  • Multi-format BOM support and high precision for component detection.
  • Compatibility with various programming languages and environments.
  • BOM signing and attestations for improved compliance.

5. Tern

Tern is an inspection tool for analyzing container images and generating a software bill of materials by examining the metadata of installed packages.

License: BSD-2-Clause license
Repository: https://github.com/tern-tools/tern
GitHub stars: 900+
Contributors: 60+

Key features include:

  • Layer-by-layer analysis of container images.
  • Integration with Dockerfiles for traceability.
  • Flexible report formats and dependency pinning.

Why Runtime SBOMs Are Essential

Runtime SBOMs go beyond static inventories by focusing on the components actively used in production environments. Traditional SBOMs generated during source code analysis or build-time may include libraries and dependencies that are never executed in runtime, leading to unnecessary remediation efforts and missed risks.

Benefits of Runtime SBOMs

  • Enhanced Accuracy: Provides a precise view of software components in operation, reducing noise from unused dependencies.
  • Prioritized Security: Identifies vulnerabilities that impact actively executed code, helping security teams focus on real threats.
  • Dynamic Insights: Captures dynamically loaded components or runtime-specific behaviors often overlooked in static SBOMs.
  • Optimized Compliance: Ensures that only necessary components are tracked and assessed for regulatory adherence.

Oligo Security’s runtime analysis capabilities ensure SBOMs are tailored to the realities of your production environment. By focusing on what’s actually running, Oligo helps organizations streamline vulnerability management, reduce false positives, and enhance their overall security posture.

5 Best Practices for SBOM Generation

  1. Regularly Update SBOMs
    Frequent updates ensure an accurate reflection of software components, enabling proactive vulnerability management and compliance.
  2. Ensure SBOM Accuracy and Completeness
    Cross-reference SBOM data with actual inventories and conduct regular audits to confirm accuracy.
  3. Secure SBOM Storage and Distribution
    Use encryption and access controls to protect SBOMs and distribute them securely via VPNs or secure protocols.
  4. Educate Development Teams on SBOM Usage
    Train developers on SBOM tools and practices to foster effective implementation and collaboration.
  5. Align SBOMs with Compliance Requirements
    Tailor SBOMs to meet regulatory standards, detailing component origins, licenses, and vulnerabilities for audit readiness.

Conclusion

The generation and maintenance of SBOMs have become essential practices in modern software development, fostering transparency, security, and compliance. By leveraging advanced tools like Oligo Security, adhering to best practices, and integrating runtime SBOM workflows into the software lifecycle, organizations can proactively address vulnerabilities, ensure regulatory compliance, and enhance the integrity of their software supply chains.

Ready to Optimize Your Software Security?

Discover how Oligo’s runtime SBOM capabilities can transform your vulnerability management and compliance strategy. Schedule a demo today to see it in action.

Subscribe and get the latest security updates

Zero in on what's exploitable

Oligo helps organizations focus on true exploitability, streamlining security processes without hindering developer productivity.