-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce "SBOM" as a new data structure in DejaCode #175
Comments
There is an another useful perspective on SBOM Types at: https://www.linkedin.com/pulse/types-uses-sboms-dirk-riehle-3jcpe/
|
There's more. SBOMs conforming to SPDX profiles such as:
|
Initial sketch of the SBOM Type table: SBOM Type Long description: Field Description |
Here is a link to the CISA definitions for SBOM Types: It defines these SBOM Types, which are generally associated with particular phases in the lifecycle of a Product, and provide the basis for the SBOM Types described by Dirk Riehle (see previous comment): Design |
I am not sure how an SBOM type would be for a product. A product exists outside of SBOM definitions entirely. Some of its packages and components may have a defined purpose and may be deployed or not. This may be what feeds into these types? So, if we need to support these SBOM "types", we would need first to define how an inventory can be sliced and categorized. And before we do this, I would like to see actual real world use case and value from adding this extra layer of complexity, beyond the categorization we already have. |
You are correct that multiple SBOM Types can apply to a Product so we probably need some new data structure that is related to, but separate from Product to handle SBOMs and their Types. See also aboutcode-org/scancode-toolkit#3915. |
We have explored the idea of Item Lists in the past; perhaps an SBOM is essentially the same thing, with the added feature that we can assign an SBOM Type to it, which would describe its scope and purpose. So the new SBOM Type would apply directly to an SBOM, not a Product. We could expand the Product Inventory capabilities by introducing the ability to attach one or more SBOMs to a Product, also a capability that we have discussed previously. This might be the best way to think about supporting the diversity of SBOM Types in DejaCode. Refer to a previous DejaCode issue somewhat related to this discussion: #87 |
Research needed to identify the canonical way to specify an SBOM Type in a generated SBOM for both CycloneDX and SPDX SBOMs. |
Refer to https://docs.google.com/document/d/1_K0qX_IKrfYuezPUp_fVDQIp_tGQ2sEk/edit?usp=sharing&ouid=117241222429542576816&rtpof=true&sd=true for in-progress design details. |
Problem
The SBOM community has identified multiple types of SBOM:
Software Bill of Materials (SBOM) -- the default of course
Software-as-a-Service Bill of Materials (SaaSBOM)
Hardware Bill of Materials (HBOM)
Machine Learning Bill of Materials (ML-BOM)
Cryptography Bill of Materials (CBOM)
Manufacturing Bill of Materials (MBOM)
Operations Bill of Materials (OBOM)
This list is ever-expanding; other variants include:
As-built SBOM
As-deployed SBOM
These various types are implemented variously by different SBOM standards (CycloneDX and SPDX).
The DejaCode Product definition is quite flexible, and Packages and Components can be defined to identify the kinds of things that exist in each SBOM type, but there is no standard way to identify the SBOM Type associated with a specific DejaCode Product, further complicated by the potential need to extract particular SBOMs of various types from the same Product Inventory.
Benefits
A new SBOM Type would address that need, and would support additional functionality related to various SBOM Types. Eventually this would support the generation of SBOMs from DejaCode that are more specific than the generic SBOM.
Design Challenges
Define SBOM Types in a new user-editable table in DejaCode?
OR
Define SBOM Types in a standard list in the source code?
OR
Do not validate SBOM Type and let it be free-form text?
Some advantages of an SBOM Type table would be:
Assumptions
A DejaCode Product definition can be associated with exactly one SBOM Type in a meaningful way.
The text was updated successfully, but these errors were encountered: