This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

3.9 AI SBOM

Explains the procedure and formats for generating and managing an AI SBOM, automation tools, and the verification areas that tools alone struggle to fill.

    1. Clause Overview

    An AI SBOM (AI System Bill of Materials) is a list capturing the elements that make up an AI system and the information about them. Where a traditional SBOM records software components, an AI SBOM adds models, weights, datasets, and hyperparameters on top. 3.9 requires a procedure for generating and managing the AI SBOM.

    The format is left open. The specification states that SPDX, CycloneDX, or any other format is acceptable. There is, however, one obligation: the AI SBOM shall account for inbound materials from third parties. If pre-trained models and datasets brought in from outside are left out, the basis for tracking license obligations (3.5) and transparency obligations disappears.

    The AI SBOM area is where the line “generation is automated by tools, but accuracy and compliance judgment are filled by people” is sharpest. This page walks through the procedure along that line.

    2. Activities to Perform

    • Establish a procedure for identifying, tracking, reviewing, approving, and archiving the components of an AI system (models, datasets, etc.).
    • Decide on an AI SBOM format (SPDX 3.0 AI Profile or CycloneDX ML-BOM recommended). ([Guide Recommendation])
    • Ensure models and datasets brought in from third parties are always included in the AI SBOM.
    • Wire a generation tool into CI/CD to regenerate the AI SBOM repeatedly. ([Guide Recommendation])
    • Have a person review whether the license and provenance fields of the generated AI SBOM are accurate. ([Guide Recommendation])
    • Retain records (generation history, approval history) demonstrating that the procedure was followed.

    3. Requirement and Verification Material

    ClauseRequirementVerification Material
    3.9A procedure shall exist for generating and managing an AI SBOM. Any format — SPDX, CycloneDX, or another — is acceptable. The AI SBOM shall account for inbound materials from third parties.3.9.1 A documented procedure for identifying, tracking, reviewing, approving, and archiving information about the components of an AI system (models, datasets, etc.)
    3.9.2 Records demonstrating the procedure was properly followed for the supplied system
    View original English text

    3.9 AI System Bill of Materials A process shall exist for creating and managing an AI SBOM, this can be in any format e.g. SPDX, CycloneDX, or another format. The AI SBOM shall account for inbound materials from third-parties.

    Verification material(s):

    • A documented procedure for identifying, tracking, reviewing, approving, and archiving information related to the components of an AI system (e.g., model, datasets, etc).
    • Records for the supplied system that demonstrates the documented procedure was properly followed.

    4. How to Comply with Each Verification Material, with Samples

    3.9.1 AI SBOM Management Procedure (Identification, Tracking, Review, Approval, Archiving)

    How to Comply

    Design the AI SBOM procedure around four stages: generation, review, approval, and archiving. Automate the generation stage with tools, and leave the review and approval stages to people. Even when a tool copies a license field straight from a model card, it cannot judge whether that license actually fits the use case, or whether something is missing or misstated.

    The figure below shows the flow from AI SBOM generation to archiving.

    Procedure that generates an AI SBOM, checks inbound material inclusion and accuracy, then approves and archives it. Omissions and inaccuracies loop back to an earlier stage

    Figure 1. Procedure from AI SBOM generation to archiving

    Tool Mapping

    Below are open source tools usable at each stage. “Automation level” indicates how far a tool handles that task on its own.

    StageTaskAutomation LevelRepresentative Tool
    GenerationCode/dependency BOMMaturecdxgen, Syft
    GenerationModel/metadata AIBOMTools emergingOWASP AIBOM Generator, cdxgen aibom
    AnalysisStatic inspection of model binariesTools emergingLab700x AI SBOM Scanner
    ManagementSBOM storage, vulnerability monitoringMatureDependency-Track, SW360
    ReviewLicense/provenance accuracy judgmentPeople/policyTool support still developing

    Installation, usage, and execution screens for each tool are covered in detail in the Tools section (OWASP AIBOM Generator, cdxgen, Model/Container Scanners).

    The command to generate an AI BOM with cdxgen is as follows. You can pass a Hugging Face model URL and purl, a Modelfile, or a GGUF artifact directly (cdxgen AI-BOM docs).

    # Generate an AI BOM from the AI project directory
    cdxgen -t ai -o aibom.json .
    
    # Generate including AI/ML metadata (formulation)
    cdxgen -t ai --include-formulation -o aibom.json .
    

    The OWASP AIBOM Generator takes a Hugging Face model as input, builds a CycloneDX-format AIBOM, and scores its completeness. It is maintained by the OWASP Gen AI Security Project and is also available as a Hugging Face Space (OWASP AIBOM Generator).

    Hands-On — Generating with cdxgen

    This is the result of actually running cdxgen against a summarization app (depending on transformers and torch) that loads a pre-trained model (facebook/bart-large-cnn). The tool automatically identifies 5 dependencies and produces a CycloneDX 1.7-format BOM.

    $ cdxgen -t python --include-formulation -o aibom.json .
    CycloneDX Generator 12.5.1 (Node.js)
    
    Generated components — 5 items (CycloneDX 1.7):
      transformers     4.44.2    pkg:pypi/transformers@4.44.2      license: empty
      torch            2.4.0     pkg:pypi/torch@2.4.0             license: empty
      numpy            1.26.4    pkg:pypi/numpy@1.26.4            license: empty
      tokenizers       0.19.1    pkg:pypi/tokenizers@0.19.1       license: empty
      huggingface-hub  0.24.6    pkg:pypi/huggingface-hub@0.24.6   license: empty
    

    One component from the generated BOM looks like this. The identification evidence is filled in, but the licenses field is empty.

    {
      "name": "transformers",
      "version": "4.44.2",
      "purl": "pkg:pypi/transformers@4.44.2",
      "type": "library",
      "evidence": {
        "identity": [
          { "field": "purl", "confidence": 0.5,
            "methods": [{ "technique": "manifest-analysis", "value": "requirements.txt" }] }
        ]
      }
    }
    

    Figure 2. cdxgen 12.5.1 execution output (run on 2026-06-13, -t python --include-formulation)

    Format Sample (CycloneDX ML-BOM)

    Below is a shortened example of the model component structure in a CycloneDX 1.6 ML-BOM. The key structure follows the machine-learning-model component and modelCard in the official CycloneDX spec. If the license is non-standard (has no SPDX ID), state it with name.

    {
      "bomFormat": "CycloneDX",
      "specVersion": "1.6",
      "components": [
        {
          "bom-ref": "model-llama31-8b",
          "type": "machine-learning-model",
          "group": "meta-llama",
          "name": "Llama-3.1-8B",
          "version": "1.0",
          "licenses": [
            { "license": { "name": "Llama 3.1 Community License" } }
          ],
          "modelCard": {
            "modelParameters": {
              "task": "text-generation",
              "architectureFamily": "llama",
              "datasets": [
                { "type": "dataset", "name": "Public pretraining corpus", "classification": "public" }
              ]
            },
            "considerations": {
              "useCases": ["Internal document summarization"],
              "technicalLimitations": ["Potential for hallucination", "Performance variance in Korean"]
            }
          }
        }
      ]
    }
    

    If you use SPDX 3.0, the AI Profile and Dataset Profile express the same information (SPDX 3.0 AI Profile). The concrete fields of each format and the technical details of generation tools are covered in the ISO/IEC 42001 Guide — AI SBOM.

    Considerations

    • Reflect inbound materials (specification obligation): Set up a procedure that generates an SBOM entry at intake time so that models and datasets brought in from outside are never missing from the AI SBOM. This is a shall-level obligation.
    • Generation by tool, review by people: Generation tools copy the license written on the model card as-is. Because model cards themselves commonly have missing or incorrect license information, have a person check the license and provenance fields of the generated AI SBOM against the original source.
    • Format consistency: Pick either SPDX or CycloneDX as the organization’s default format and operate tools and repositories around it consistently. Both formats treat models and datasets as first-class components.
    • CI/CD integration: The AI SBOM is not a one-time deliverable. Wire it into the pipeline so it is regenerated whenever a model or dataset changes.

    3.9.2 Records Demonstrating Procedure Compliance

    How to Comply

    Verification material 3.9.2 is the record showing the procedure was actually followed. Alongside the AI SBOM file itself, keep a history of who generated, reviewed, and approved it and when. If it is generated automatically in CI/CD, the build logs and the generated SBOM artifact become the record, and the upload history to a management tool such as Dependency-Track also serves as evidence.

    Considerations

    • Retain generation history: Keep the AI SBOM from each point in time for every version of the supplied AI system to maintain traceability.
    • Approval record: Record who reviewed and approved it. This connects to the lifecycle review in Governance (3.10).

    5. References