Showing posts with label Bill of material. Show all posts
Showing posts with label Bill of material. Show all posts

Saturday, May 3, 2025

SBOM (Software Bill of Materials)

SBOM (Software Bill of Materials) 

An SBOM (Software Bill of Materials) is a detailed list of all the components that make up a piece of software, similar to how a food label lists all the ingredients in a packaged product.

Key Points:

  • SBOM stands for: Software Bill of Materials.

  • It includes:

    • Open-source libraries

    • Third-party components

    • Dependencies and sub-dependencies

    • Version numbers

    • Licenses

    • Component relationships



Why It's Important:

  • Security: Helps identify vulnerabilities (e.g., Log4j) in components.

  • Compliance: Ensures you're following license requirements.

  • Transparency: Promotes better software supply chain management.

  • Risk Management: Aids in assessing software integrity and exposure.

Who Uses SBOMs?

  • Software developers

  • Security teams

  • Risk and compliance professionals

  • Vendors and customers in regulated industries

Standards:

Common formats include:

  • CycloneDX

  • SPDX

  • SWID

Sample

{

  "bomFormat": "CycloneDX",

  "specVersion": "1.5",

  "version": 1,

  "metadata": {

    "timestamp": "2025-05-03T12:00:00Z",

    "tools": [

      {

        "vendor": "CycloneDX",

        "name": "cyclonedx-cli",

        "version": "0.24.2"

      }

    ],

    "component": {

      "type": "application",

      "name": "my-sample-app",

      "version": "1.0.0",

      "hashes": [

        {

          "alg": "SHA-256",

          "content": "d3b07384d113edec49eaa6238ad5ff00"

        }

      ]

    }

  },

  "components": [

    {

      "type": "library",

      "name": "example-lib",

      "version": "2.1.3",

      "purl": "pkg:npm/example-lib@2.1.3",

      "licenses": [

        {

          "license": {

            "id": "MIT"

          }

        }

      ],

      "hashes": [

        {

          "alg": "SHA-1",

          "content": "9c1185a5c5e9fc54612808977ee8f548b2258d31"

        }

      ]

    }

  ]

}

  • "bomFormat": Specifies this is a CycloneDX BOM.

  • "metadata": Info about the tool and primary application.

  • "components": The list of dependent software components (e.g., libraries).

  • "hashes" and "purl": Used for verifying integrity and uniquely identifying packages.

  • "licenses": Helps ensure legal compliance.