Skip to content

Commit 0d430a3

Browse files
committed
feat(linux): Add how to guide for working with SBOMs
Add How to guide for working with SBOM's with sections * Generating SBOM in SPDX and CycloneDX format * Tools and references for Working with SBOM i.e visualizing, merging, modifying SBOMs Signed-off-by: Yogesh Hegde <y-hegde@ti.com>
1 parent 007d0df commit 0d430a3

8 files changed

Lines changed: 185 additions & 4 deletions

File tree

configs/AM62LX/AM62LX_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ linux/How_to_Guides/Target/How_To_Enable_M2CC3301_in_linux
127127
linux/How_to_Guides/Target/Runtime_debug_unlock_on_secure_device
128128
linux/How_to_Guides/FAQ/How_to_Check_Device_Tree_Info
129129
linux/How_to_Guides/FAQ/How_to_Integrate_Open_Source_Software
130+
linux/How_to_Guides/FAQ/How_to_work_with_SBOM
130131
linux/How_to_Guides_Hardware_Setup_with_CCS
131132
linux/How_to_Guides/Hardware_Setup_with_CCS/AM62Lx_EVM_Hardware_Setup
132133
linux/Demo_User_Guides/index_Demos

configs/AM62PX/AM62PX_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ linux/How_to_Guides/Target/Runtime_debug_unlock_on_secure_device
172172
linux/How_to_Guides/Target/How_to_Tune_Real_Time_Linux
173173
linux/How_to_Guides/FAQ/How_to_Check_Device_Tree_Info
174174
linux/How_to_Guides/FAQ/How_to_Integrate_Open_Source_Software
175+
linux/How_to_Guides/FAQ/How_to_work_with_SBOM
175176
linux/How_to_Guides_Hardware_Setup_with_CCS
176177
linux/How_to_Guides/Hardware_Setup_with_CCS/AM62Px_EVM_Hardware_Setup
177178
linux/How_to_Guides/Target/How_To_Carve_Out_CMA

configs/AM62X/AM62X_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ linux/How_to_Guides/Target/Runtime_debug_unlock_on_secure_device
176176
linux/How_to_Guides/Target/How_to_Tune_Real_Time_Linux
177177
linux/How_to_Guides/FAQ/How_to_Check_Device_Tree_Info
178178
linux/How_to_Guides/FAQ/How_to_Integrate_Open_Source_Software
179+
linux/How_to_Guides/FAQ/How_to_work_with_SBOM
179180
linux/How_to_Guides_Hardware_Setup_with_CCS
180181
linux/How_to_Guides/Hardware_Setup_with_CCS/AM62x_EVM_Hardware_Setup
181182

configs/AM64X/AM64X_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ linux/How_to_Guides/Hardware_Setup_with_CCS/AM64x_EVM_Hardware_Setup
153153
linux/How_to_Guides/FAQ/How_to_Verify_Ipc_Linux_R5
154154
linux/How_to_Guides/FAQ/How_to_Check_Device_Tree_Info
155155
linux/How_to_Guides/FAQ/How_to_Integrate_Open_Source_Software
156+
linux/How_to_Guides/FAQ/How_to_work_with_SBOM
156157
linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization
157158

158159
devices/AM64X/index_RTOS

source/devices/AM62PX/linux/Release_Specific_Release_Notes.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ found on the SDK download page or in the installed directory as indicated below.
4040
Software Bill of Materials (SBOM)
4141
=================================
4242

43-
|SDK_FULL_NAME| releases include Software Bill of Materials (SBOM) files in SPDX 3.0
43+
|__SDK_FULL_NAME__| releases include Software Bill of Materials (SBOM) files in SPDX 3.0
4444
format by default. SBOMs for all released artifacts are bundled into a single
45-
archive and can be found on the |SDK_DOWNLOAD_URL|.
45+
archive and can be found on the |__SDK_DOWNLOAD_URL__|.
4646
Release 12.00.00.07.04
4747
======================
4848

source/devices/AM64X/linux/Release_Specific_Release_Notes.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ found on the SDK download page or in the installed directory as indicated below.
3838
Software Bill of Materials (SBOM)
3939
=================================
4040

41-
|SDK_FULL_NAME| releases include Software Bill of Materials (SBOM) files in SPDX 3.0
41+
|__SDK_FULL_NAME__| releases include Software Bill of Materials (SBOM) files in SPDX 3.0
4242
format by default. SBOMs for all released artifacts are bundled into a single
43-
archive and can be found on the |SDK_DOWNLOAD_URL|.
43+
archive and can be found on the |__SDK_DOWNLOAD_URL__|.
4444

4545
Release 12.00.00.07.04
4646
======================
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
***************************************************************
2+
How to Guide for working with Software Bill of Materials (SBOM)
3+
***************************************************************
4+
5+
Glossary
6+
========
7+
8+
.. glossary::
9+
10+
SBOM
11+
Software Bill of Materials - is a comprehensive list of all the software components, dependencies, and metadata associated with an application.
12+
13+
SPDX
14+
Software Package Data Exchange - is an open standard (or format) for communicating Software Bill of Materials (SBOM) information including components, licenses, copyrights, and security references.
15+
16+
CycloneDX
17+
CycloneDX is a full-stack Bill of Materials (BOM) standard that provides advanced supply chain capabilities for cyber risk reduction.
18+
19+
VEX
20+
Vulnerability Exploitability eXchange - is a standardized format for sharing information about vulnerabilities and their exploitability.
21+
22+
23+
Generating SBOM
24+
===============
25+
26+
|__SDK_FULL_NAME__| build generates SBOMs in the following formats and versions:
27+
28+
.. list-table::
29+
:header-rows: 1
30+
31+
* - Format
32+
- Version
33+
- Yocto
34+
- Buildroot
35+
* - SPDX
36+
- 3.0
37+
- Supported
38+
- Not-Supported
39+
* - CycloneDX
40+
- 1.6
41+
- Supported
42+
- Supported
43+
44+
Follow the steps below based on your required format.
45+
46+
Generating SBOM in SPDX 3.0 Format
47+
----------------------------------
48+
49+
SPDX 3.0 is generated by default when building |__SDK_FULL_NAME__| Yocto, no extra steps required.
50+
If you require additional vulnerability information, follow these steps:
51+
52+
1. Add the following line to your ``local.conf``:
53+
54+
.. code-block:: text
55+
56+
INHERIT += "vex"
57+
58+
2. Build Yocto according to the build instructions in :ref:`Processor SDK - Building the SDK with Yocto <building-the-sdk-with-yocto>`.
59+
60+
The following artifacts will be generated in the Yocto deploy directory:
61+
62+
.. list-table::
63+
:header-rows: 1
64+
:widths: 50 50
65+
66+
* - File
67+
- Description
68+
* - ``${IMAGE_NAME}.rootfs.spdx.json``
69+
- The SPDX v3.0 SBOM file
70+
* - ``${IMAGE_NAME}.rootfs.json``
71+
- Vulnerability information file generated by ``vex.bbclass``
72+
73+
74+
Generating SBOM in CycloneDX Format
75+
--------------------------------------
76+
77+
To generate SBOM in CycloneDX format, follow these steps:
78+
79+
1. Start with the build instructions in :ref:`Processor SDK - Building the SDK with Yocto <building-the-sdk-with-yocto>`
80+
2. After cloning ``oe-layersetup``, uncomment the ``meta-cyclonedx`` line in
81+
the layer configuration file, for example:
82+
83+
.. code-block:: text
84+
85+
meta-cyclonedx,https://github.com/iris-GmbH/meta-cyclonedx.git,main,0170751b487162f8e476fd32d441ddfcf24ca78a,layers=
86+
87+
3. Add the following line to your ``local.conf``:
88+
89+
.. code-block:: text
90+
91+
INHERIT += "cyclonedx-export"
92+
93+
4. Continue to build Yocto according to the build instructions in :ref:`Processor SDK - Building the SDK with Yocto <building-the-sdk-with-yocto>`.
94+
95+
The following artifacts will be generated in the Yocto deploy directory:
96+
97+
.. list-table::
98+
:header-rows: 1
99+
:widths: 50 50
100+
101+
* - File
102+
- Description
103+
* - ``${IMAGE_NAME}.rootfs.cyclonedx.bom.json``
104+
- The CycloneDX SBOM file
105+
* - ``${IMAGE_NAME}.rootfs.cyclonedx.vex.json``
106+
- The CycloneDX VEX file
107+
108+
Working with SBOM
109+
=================
110+
111+
It is recommended to use open-source tools for working with SBOMs.
112+
The following open-source tools are recommended for working with SBOMs:
113+
114+
.. list-table::
115+
:header-rows: 1
116+
:widths: 20 40 40
117+
118+
* - Format
119+
- Tool
120+
- Description
121+
* - CycloneDX
122+
- `CycloneDX Sunshine <https://github.com/CycloneDX/Sunshine/>`_
123+
- Visualize CycloneDX SBOMs in a human-readable format
124+
* - CycloneDX
125+
- `CycloneDX CLI <https://github.com/CycloneDX/cyclonedx-cli>`_
126+
- BOM analysis, modification, diffing, merging, format conversion, signing and verification.
127+
* - SPDX
128+
- `SPDX Open Source Tools <https://spdx.dev/tools/open-source-tools/>`_
129+
- A collection of open-source tools for working with SPDX SBOMs
130+
131+
.. note::
132+
133+
SPDX 3.0 is not yet widely supported by SPDX tools. Using such tools with
134+
SPDX 3.0 files may give varied or unexpected results.
135+
136+
CVE Analysis
137+
============
138+
139+
The `sbom-cve-check <https://pypi.org/project/sbom-cve-check/>`_ tool can be
140+
used to perform CVE analysis on the generated SPDX SBOM.
141+
142+
1. Install the tool:
143+
144+
.. code-block:: console
145+
146+
pip install sbom-cve-check
147+
148+
.. note::
149+
150+
It is recommended to install this tool in a Python virtual environment.
151+
152+
2. Retrieve the following artifacts from the Yocto deploy directory:
153+
154+
.. list-table::
155+
:header-rows: 1
156+
:widths: 50 50
157+
158+
* - File
159+
- Description
160+
* - ``${IMAGE_NAME}.rootfs.spdx.json``
161+
- The SPDX v3.0 SBOM file
162+
* - ``${IMAGE_NAME}.rootfs.json``
163+
- Vulnerability information file generated by ``vex.bbclass``
164+
165+
3. Run the CVE analysis:
166+
167+
.. code-block:: console
168+
169+
sbom-cve-check --sbom-path ${IMAGE_NAME}.rootfs.spdx.json \
170+
--yocto-vex-manifest ${IMAGE_NAME}.rootfs.json \
171+
--export-type yocto-cve-check-manifest \
172+
--export-path cve-check.json
173+
174+
.. note::
175+
176+
``sbom-cve-check`` only supports SPDX format and does not support CycloneDX.

source/linux/How_to_Guides_Developer_Notes.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Developer Notes
3838
How_to_Guides/FAQ/How_to_Configure_MSMC_memory
3939
How_to_Guides/FAQ/How_to_Check_Device_Tree_Info
4040
How_to_Guides/FAQ/How_to_Integrate_Open_Source_Software
41+
How_to_Guides/FAQ/How_to_work_with_SBOM
4142
How_to_Guides/Host/How_to_Build_a_Ubuntu_Linux_host_under_VMware
4243
How_to_Guides/Host/K3_Resource_Partitioning_Tool
4344
How_to_Guides/Host/How_to_Setup_and_Debug_using_Lauterbach

0 commit comments

Comments
 (0)