bom
: أداة SBOM المتعددة bom
؟ bom
هي أداة مساعدة تتيح لك إنشاء قوائم مواد البرامج (SBOMs) وعرضها وتحويلها. تم إنشاء bom
كجزء من مشروع إنشاء SBOM لمشروع Kubernetes. فهو يمكّن مؤلفي البرامج من إنشاء SBOM لمشاريعهم بطريقة بسيطة ولكنها قوية.
bom هو مشروع حاضن في Toling TAC للامتثال الآلي لمؤسسة Linux
bom
هي أداة للأغراض العامة يمكنها إنشاء حزم SPDX من الدلائل وصور الحاويات والملفات الفردية ومصادر أخرى. تحتوي الأداة المساعدة على مصنف ترخيص مضمن يتعرف على أكثر من 400 ترخيص في كتالوج SPDX.
تتضمن الميزات الأخرى تحليل تبعية Golang ودعم .gitignore
الكامل عند فحص مستودعات git.
لمزيد من الإرشادات المتعمقة حول كيفية إنشاء SBOM لمشروعك، راجع "إنشاء قائمة مواد لمشروعك".
يتضمن الدليل معلومات حول ماهية قائمة مواد البرنامج ومعيار SPDX وتعليمات لإضافة الملفات والصور والأدلة والمصادر الأخرى إلى SBOM الخاص بك.
bom generate
bom document
لتثبيت bom
:
go install sigs.k8s.io/bom/cmd/bom@latest
bom generate
bom generate
هو الأمر الفرعي bom
لإنشاء بيانات SPDX.
يدعم حاليًا إنشاء SBOM من الملفات والصور وأرشيفات عامل الإرساء (الصور في كرات القطران). وهو يدعم سحب الصور من السجلات البعيدة للتحليل.
يمكن لـ bom إلقاء نظرة أعمق على الصور باستخدام عدد متزايد من المحللين المصممين لإضافة المزيد من المعنى إلى الصور الأساسية المشتركة.
يمكن أيضًا تصدير بيانات SBOM إلى شهادة المصدر الشاملة. سوف ينتج عن الإخراج بيان المصدر الذي يسرد جميع بيانات SPDX كمواضيع شاملة، ولكنه بخلاف ذلك جاهز للاستكمال في مرحلة لاحقة في مسار CI/CD الخاص بك. راجع علامة --provance لمزيد من التفاصيل.
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
تصور SBOMs وكذلك الاستعلام عنها للحصول على معلومات.
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
باستخدام bom document outline
يمكن عرض محتويات SBOM أيضًا لمعرفة كيفية تنظيم المعلومات التي تحتوي عليها. فيما يلي مثال لعرض صورة debian:bookworm-slim
لـ 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]
توضح الأمثلة التالية كيف يمكن لـ bom معالجة مصادر مختلفة لإنشاء قائمة مواد SPDX. يمكن دمج مصادر متعددة للحصول على مستند يصف الحزم المختلفة.
لمعالجة دليل كمصدر لـ SBOM الخاص بك، استخدم العلامة -d
أو ببساطة قم بتمرير المسار (أو dir الحالي) كأول وسيطة bom generate
:
bom generate .
يسحب هذا المثال صورة kube-apiserver
، ويحللها، ويصفها في SBOM. يتم بعد ذلك التعبير عن كل طبقة من طبقاتها كحزمة فرعية في الوثيقة الناتجة:
bom generate -n http://example.com/ --image registry.k8s.io/kube-apiserver:v1.21.0
يمكنك إنشاء SBOM باستخدام الملفات الموجودة في البيان فقط. لذلك استخدم -f
:
bom generate -n http://example.com/
-f Makefile
-f file1.exe
-f document.md
-f other/file.txt
تخضع المشاركة في مجتمع Kubernetes لقواعد سلوك Kubernetes.