bom
: Multialat SBOM bom
? bom
adalah utilitas yang memungkinkan Anda membuat, melihat, dan mengubah Software Bills of Materials (SBOMs). bom
dibuat sebagai bagian dari proyek untuk membuat SBOM untuk proyek Kubernetes. Hal ini memungkinkan pembuat perangkat lunak untuk menghasilkan SBOM untuk proyek mereka dengan cara yang sederhana namun kuat.
bom adalah proyek yang sedang diinkubasi di TAC Toling Kepatuhan Otomatisasi Linux Foundation
bom
adalah alat serba guna yang dapat menghasilkan paket SPDX dari direktori, gambar kontainer, file tunggal, dan sumber lainnya. Utilitas ini memiliki pengklasifikasi lisensi bawaan yang mengenali 400+ lisensi dalam katalog SPDX.
Fitur lainnya termasuk analisis ketergantungan Golang dan dukungan penuh .gitignore
saat memindai repositori git.
Untuk petunjuk lebih mendalam tentang cara membuat SBOM untuk proyek Anda, lihat "Membuat Bill of Materials untuk Proyek Anda".
Panduan ini mencakup informasi tentang Bill of Materials Perangkat Lunak, standar SPDX, dan instruksi untuk menambahkan file, gambar, direktori, dan sumber lain ke SBOM Anda.
bom generate
bom document
Untuk menginstal bom
:
go install sigs.k8s.io/bom/cmd/bom@latest
bom generate
bom generate
adalah subperintah bom
untuk menghasilkan manifes SPDX.
Saat ini mendukung pembuatan SBOM dari file, gambar, dan arsip buruh pelabuhan (gambar dalam tarball). Ini mendukung penarikan gambar dari registri jarak jauh untuk dianalisis.
bom dapat melihat lebih dalam pada gambar menggunakan semakin banyak penganalisis yang dirancang untuk menambah pemahaman pada gambar dasar.
Data SBOM juga dapat diekspor ke pengesahan asal in-toto. Outputnya akan menghasilkan pernyataan asal yang mencantumkan semua data SPDX sebagai subjek in-toto, namun siap untuk diselesaikan pada tahap selanjutnya dalam pipeline CI/CD Anda. Lihat bendera --provenance untuk lebih jelasnya.
Usage:
bom generate [flags]
Flags:
-a, --analyze-images go deeper into images using the available analyzers
--archive strings list of archives to add as packages (supports tar, tar.gz)
-c, --config string path to yaml SBOM configuration file
-d, --dirs strings list of directories to include in the manifest as packages
-f, --file strings list of files to include
--format string format of the document (supports tag-value, json) (default "tag-value")
-h, --help help for generate
--ignore strings list of regexp patterns to ignore when scanning directories
-i, --image strings list of images
--image-archive strings list of docker archive tarballs to include in the manifest
-l, --license string SPDX license identifier to declare in the SBOM
--name string name for the document, in contrast to URLs, intended for humans
-n, --namespace string an URI that serves as namespace for the SPDX doc
--no-gitignore don't use exclusions from .gitignore files
--no-gomod don't perform go.mod analysis, sbom will not include data about go packages
--no-transient don't include transient go dependencies, only direct deps from go.mod
-o, --output string path to the file where the document will be written (defaults to STDOUT)
--provenance string path to export the SBOM as an in-toto provenance statement
--scan-images scan container images to look for OS information (currently debian only) (default true)
Global Flags:
--log-level string the logging verbosity, either 'panic', 'fatal', 'error', 'warning', 'info', 'debug', 'trace' (default "info")
bom document
bom document subcommand
dapat memvisualisasikan SBOM serta menanyakan informasinya.
bom document → Work with SPDX documents
Usage:
bom document [command]
Available Commands:
outline bom document outline → Draw structure of a SPDX document
query bom document query → Search for information in an SBOM
bom document outline
Dengan menggunakan bom document outline
konten SBOM dapat dirender dan melihat bagaimana informasi yang dikandungnya disusun. Berikut ini contoh rendering gambar debian:bookworm-slim
untuk amd64:
bom generate --output=debian.spdx --image
debian@sha256:0aac521df91463e54189d82fe820b6d36b4a0992751c8339fbdd42e2bc1aa491 | bom document outline -
bom document outline debian.spdx
_
___ _ __ __| |_ __
/ __| '_ / _` / /
__ |_) | (_| |> <
|___/ .__/ __,_/_/_
|_|
SPDX Document SBOM-SPDX-71f1009c-dc17-4f4d-b4ec-72210c1a8d7f
│
│ ? DESCRIBES 1 Packages
│
├ sha256:0aac521df91463e54189d82fe820b6d36b4a0992751c8339fbdd42e2bc1aa491
│ │ ? 1 Relationships
│ └ CONTAINS PACKAGE sha256:b37cbf60a964400132f658413bf66b67e5e67da35b9c080be137ff3c37cc7f65
│ │ │ ? 86 Relationships
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE bsdutils@1:2.38.1-4
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]+git20210903+057cd650a4ed-9
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE diffutils@1:3.8-3
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]~rc1-1+b1
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]
│ │ ├ CONTAINS PACKAGE [email protected]+nmu1
│ │ ├ CONTAINS PACKAGE [email protected]
[trimmed]
Contoh berikut menunjukkan bagaimana bom dapat memproses berbagai sumber untuk menghasilkan SPDX Bill of Materials. Berbagai sumber dapat digabungkan untuk mendapatkan dokumen yang menjelaskan paket berbeda.
Untuk memproses direktori sebagai sumber SBOM Anda, gunakan tanda -d
atau cukup berikan jalur (atau direktori saat ini) sebagai argumen pertama yang akan bom generate
:
bom generate .
Contoh ini mengambil image kube-apiserver
, menganalisisnya, dan menjelaskannya di SBOM. Masing-masing lapisannya kemudian dinyatakan sebagai subpaket dalam dokumen yang dihasilkan:
bom generate -n http://example.com/ --image registry.k8s.io/kube-apiserver:v1.21.0
Anda dapat membuat SBOM hanya dengan file di manifes. Untuk itu, gunakan -f
:
bom generate -n http://example.com/
-f Makefile
-f file1.exe
-f document.md
-f other/file.txt
Partisipasi dalam komunitas Kubernetes diatur oleh Kode Etik Kubernetes.