Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Docker BuildKit
Для чего
Docker BuildKit — движок сборки образов, который умеет порождать SBOM прямо в момент сборки и прикладывать его к образу как attestation. Ключевое отличие от пост-сканирования готового образа: BuildKit видит сборку изнутри (стадии, копируемые слои, базовый образ) и формирует SBOM на этапе, когда контекст ещё известен, а затем сохраняет его в OCI-манифесте рядом с образом.
Как применяют
Сборка с генерацией SBOM-attestation и его последующий просмотр:
docker buildx build --sbom=true -t registry.example.org/app:1.4.2 --push .
docker buildx imagetools inspect registry.example.org/app:1.4.2 --format '{{ json .SBOM }}'
Флаг --sbom=true (внутри использует генератор-сканер) прикрепляет SBOM как attestation к образу; он переезжает вместе с образом в реестр и доступен через imagetools inspect. Дополнительно --provenance=true добавляет SLSA-provenance о самой сборке.
SBOM не отрывается от образа Главное преимущество — SBOM рождается в момент сборки и хранится в OCI-манифесте рядом с образом, а не лежит отдельным файлом, который легко потерять или подменить. При выгрузке образа в реестр attestation едет вместе с ним.
Сильные стороны
- SBOM генерируется на этапе сборки и хранится вместе с образом — не отрывается от артефакта.
- Знание контекста сборки (стадии, базовый образ) повышает корректность состава.
- Параллельно может прикладывать provenance-attestation о том, как собран образ.
- Не нужен отдельный шаг сканирования образа — всё в одном
buildx build.
Ограничения
Глубина — за встроенным генератором SBOM описывает то, что распознал встроенный генератор BuildKit; C/C++ и статическая линковка остаются слепой зоной. Для глубокого графа зависимостей образ всё равно прогоняют через Syft/cdxgen.
- SBOM описывает то, что распознал встроенный генератор; C/C++ и статическая линковка по-прежнему слепая зона.
- Привязка к экосистеме buildx/OCI: вне этого конвейера ценность теряется.
- Качество зависит от версии и встроенного генератора; для глубокого графа всё равно нужен cdxgen/Syft.
Offline / on-premise
Сборка и генерация attestation работают офлайн при наличии базовых образов в локальном/внутреннем реестре. SBOM сохраняется в OCI-формате рядом с образом и не требует внешних сервисов — пригодно для закрытого контура с собственным реестром.
Связанные темы
М16 Честный SBOM контейнеров · М08 Защита цепочки поставки и OSA · П37. Контейнерный образ слои секреты и удаленные файлы · П38. Честный SBOM контейнерного образа · Syft · Tern · SLSA