Создаёт SBOM для образов Docker

Спецификация программного обеспечения (SBOM) аналогична упаковочному листу для отгрузки. В нем перечислены все компоненты, из которых состоит программное обеспечение или которые использовались для его создания. Для образов контейнеров сюда входят установленные пакеты операционной системы (например, ca-certificates), а также языковые пакеты, от которых зависит программное обеспечение (например, Log4j). SBOM может включать в себя подмножество этой информации или даже больше деталей, таких как версии компонентов и их источник.

Предупреждение

Команда docker sbom в настоящее время является экспериментальной. Это может быть изменено или удалено из будущих релизов.

Экспериментальная команда docker sbom позволяет создать SBOM образа контейнера. Сегодня он делает это, сканируя слои образа с помощью Сифт проект, но в будущем он может считывать SBOM из самого образа или из другого места.

Простое использование

Чтобы выводит табличный SBOM для образа, используйте docker sbom <image>:<tag>:

$ docker sbom neo4j:4.4.5
Syft v0.43.0
 ✔ Loaded image
 ✔ Parsed image
 ✔ Cataloged packages      [385 packages]

NAME                      VERSION                        TYPE
...
bsdutils                  1:2.36.1-8+deb11u1             deb
ca-certificates           20210119                       deb
...
log4j-api                 2.17.1                         java-archive
log4j-core                2.17.1                         java-archive
...

Выходные данные включают как системные пакеты, так и программные библиотеки, используемые приложениями в образе контейнера.

Форматирование вывода и сохранение вывода

Вы можете просматривать выходные данные SBOM в стандартных форматах, таких как SPDX и ЦиклонDX, а также в форматах Syft и GitHub, используя параметр --format.

$ docker sbom --format spdx-json alpine:3.15
{
 "SPDXID": "SPDXRef-DOCUMENT",
 "name": "alpine-3.15",
 "spdxVersion": "SPDX-2.2",
 "creationInfo": {
  "created": "2022-04-06T21:13:32.035571Z",
  "creators": [
   "Organization: Anchore, Inc",
   "Tool: syft-[not provided]"
  ],
  "licenseListVersion": "3.16"
 },
 "dataLicense": "CC0-1.0",
 "documentNamespace": "https://anchore.com/syft/image/alpine-3.15-4b1b99d8-bbb5-4426-af8e-c510189134ab",
 "packages": [
  {
   "SPDXID": "SPDXRef-1e3f3285636676f3",
   "name": "alpine-baselayout",
   "licenseConcluded": "GPL-2.0-only",
   "description": "Alpine base dir structure and init scripts",
   "downloadLocation": "https://git.alpinelinux.org/cgit/aports/tree/main/alpine-baselayout",
   "externalRefs": [
    {
...
}

Данные выходные данные являются более подробными и содержат больше информации, чем табличные выходные данные по умолчанию.

По умолчанию команда выводит SBOM на стандартный вывод. Вы можете сохраняет вывод в файл, указав его с флагом --output.

$ docker sbom --format spdx-json --output sbom.json alpine:3.15
Syft v0.43.0
 ✔ Loaded image
 ✔ Parsed image
 ✔ Cataloged packages      [14 packages]

$ cat sbom.json
{
 "SPDXID": "SPDXRef-DOCUMENT",
 "name": "alpine-3.15",
 "spdxVersion": "SPDX-2.2",
...
}

Обратная связь

Спасибо, что попробовали плагин Docker SBOM CLI. Мы хотели бы услышать от вас. Вы можете оставлять отзывы и сообщать о любых ошибках через средство отслеживания проблем в репозитории GitHub docker / sbom-cli-плагин.