-
Notifications
You must be signed in to change notification settings - Fork 7
Description
SBOMit Phase I (lightweight, transparent to adopters):
The initial phase of SBOMit adoption is designed to be a streamlined process, involving minimal changes to existing SBOM generation tools used by adopters.
This phase comprises two pivotal actions:
- In-toto Attestation for SBOM Generation: The SBOM generation tool creates an in-toto attestation, a form of metadata that provides evidence of the SBOM generation process. This attestation, though not extensive, serves as preliminary proof that the SBOM was generated correctly. This step is crucial for establishing a foundation of trust in the SBOM's accuracy and integrity.
- Linking In-toto Attestations to the SBOM: The second action involves embedding all available in-toto attestations and relevant metadata directly into the SBOM. This integration ensures that the complete set of metadata describing the software supply chain is readily accessible and transparent. However, it's important to note that at this stage, the scope of the metadata is somewhat limited, primarily encompassing the SBOM tool itself.
Tooling Provider: Protobomit
"Protobomit" is a command-line tool specifically designed to augment the SBOMit initiative. Its functionalities are aligned with the objectives of SBOMit Phase I and extend beyond:
- SBOM Generation with Attestations: Protobomit enables the creation of new SBOMs, integrated with in-toto attestations. This feature is pivotal for ensuring that the SBOMs not only list software components but also carry verifiable metadata about their generation process.
- Provenance Verification: The tool offers capabilities to verify the provenance of SBOMs. This step is essential in authenticating the source and process of SBOM creation, thereby bolstering trust in the SBOM's reliability.
- Adding In-toto Attestations: Protobomit facilitates the addition of in-toto attestations as external references within SBOMs. This enhancement enriches the SBOM with a layer of metadata that speaks to the integrity of the software supply chain.
- Support for Key SBOM Formats: Recognizing the diverse ecosystem of SBOM formats, Protobomit supports both CycloneDX and SPDX formats. Protobom, the library that offers this functionality, is also an OpenSSF project. This versatility ensures wider applicability and integration with different toolchains and systems.
Optimal Placement of SBOMit Phase I Information in Different SBOM Formats
CycloneDX:
External References Field:
Pros:
- Clarity and Traceability: Linking in-toto attestations in "External References" provides clear traceability. For example, a component's build process can be directly linked to its attestation, making verification straightforward.
- Maintaining SBOM Readability: Keeping attestations as external references helps maintain the readability and simplicity of the SBOM itself. The SBOM won’t be cluttered with extensive attestation data.
- Flexibility: This method offers flexibility in managing attestations. Users can update or modify attestations without altering the SBOM.
Cons:
- Dependency on External Resources: Relying on external links means the SBOM’s completeness is contingent on the availability of these external resources. If a link breaks, the attestation is lost.
- Additional Verification Steps: Users must take an extra step to verify attestations, as they are not directly embedded in the SBOM. This might complicate the verification process.
- Security Risks: External links could be more susceptible to tampering or redirection, posing potential security risks.
- Access Issues: The external attestations may not be reachable. If an SBOM relies on URLs for important verification data, users in an air-gapped environment can't access this information.
- Integrity and Security: In secure environments, fetching data from external sources can be a security risk. The inability to access external references due to security policies could render parts of the SBOM less useful.
Custom Properties Field:
Pros:
- Embedded Information: Attestations are directly embedded in the SBOM, ensuring all relevant data is contained within a single document. This is beneficial in secure or air-gapped environments where external access is limited.
- Security and Integrity: Direct inclusion enhances the security and integrity of the SBOM by reducing reliance on external sources, which can be crucial in sensitive environments.
Cons:
- SBOM Size: Embedding in-toto attestations can significantly increase the size of the SBOM, potentially making it more cumbersome to handle or process.
- Complexity: Managing and parsing the SBOM becomes more complex with additional embedded data, which may require more sophisticated tooling or processing capabilities.
- Update Challenges: Updating embedded attestations can be more challenging, requiring modifications to the entire SBOM rather than just changing an external reference.
In Summary:
The SBOMit committee members have unanimously agreed in meeting to store in-toto attestations in the "Custom Properties" field of CycloneDX offers several advantages, particularly in contexts where security, integrity, and direct access to data are paramount. Embedding attestations directly within the SBOM ensures that all relevant data is self-contained, crucial in secure or air-gapped environments. This method enhances the overall security and integrity of the SBOM by reducing dependency on external sources. While embedding attestations increases the SBOM's size and may add complexity to its management, the benefits of having a comprehensive, self-contained, and secure record of attestations outweigh these concerns. Opting not to use the "External References" field is primarily due to challenges in dependency on external resources, security risks, and access issues in restricted environments.
SPDX:
External References Field:
Pros:
- Clarity and Traceability: Linking in-toto attestations in "External References" provides clear traceability. For example, a component's build process can be directly linked to its attestation, making verification straightforward.
- Maintaining SBOM Readability: Keeping attestations as external references helps maintain the readability and simplicity of the SBOM itself. The SBOM won’t be cluttered with extensive attestation data.
- Flexibility: This method offers flexibility in managing attestations. Users can update or modify attestations without altering the SBOM.
Cons:
- Dependency on External Resources: Relying on external links means the SBOM’s completeness is contingent on the availability of these external resources. If a link breaks, the attestation is lost.
- Additional Verification Steps: Users must take an extra step to verify attestations, as they are not directly embedded in the SBOM. This might complicate the verification process.
- Security Risks: External links could be more susceptible to tampering or redirection, posing potential security risks.
- Access Issues: The external attestations may not be reachable. If an SBOM relies on URLs for important verification data, users in an air-gapped environment can't access this information.
- Integrity and Security: In secure environments, fetching data from external sources can be a security risk. The inability to access external references due to security policies could render parts of the SBOM less useful.
Annotation Field:
Pros:
- Direct Association: Embedding allows each attestation to be directly associated with its relevant component, enhancing clarity.
- Security Verification: Provides immediate, built-in verification details within the SBOM, crucial for security audits.
Cons:
- Space Constraints: The "Annotation" field might be too restrictive for detailed attestations, limiting the amount of information that can be embedded.
- Complexity for User: For those using the SBOM, extracting and utilizing embedded attestation data from annotations might require additional parsing capabilities.
In Summary:
The SBOMit committee members have unanimously agreed in meeting to store in-toto attestations in the "Annotation" field of SPDX offers distinct advantages. This method allows for direct association of attestations with relevant software components. Embedding attestations in the SBOM provides immediate, built-in verification details, crucial for security audits. Concerns about space constraints and added complexity for users are outweighed by the benefits of having a tightly integrated SBOM. Opting not to use "External References" is due to the reliance on external resources and associated security risks, especially in restricted environments.