Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Microsoft SBOM Tool
Для чего
Microsoft SBOM Tool (sbom-tool) генерирует SBOM в формате SPDX 2.2 для каталога сборки. Его особенность — связка содержимого с метаданными конвейера: на выходе документ с зафиксированными именем, версией и пространством имён пакета, плюс файловые хеши. Внутри он использует ComponentDetection, поэтому опознаёт зависимости множества менеджеров.
Как применяют
Генерация по каталогу с собранными артефактами и манифестами:
sbom-tool generate -b ./buildDropPath -bc ./buildComponentPath \
-pn MyApp -pv 1.4.2 -ps Organization -nsb https://sbom.example.org
Результат кладётся в _manifest/spdx_2.2/manifest.spdx.json. Документ содержит SPDXID, documentNamespace с уникальным URI, перечень packages с PURL во externalRefs и files с SHA256/SHA1-хешами.
Разделяйте «что собрали» и «из чего»
-b(build drop) — это итоговые артефакты,-bc(build components) — каталог с манифестами зависимостей. Явная граница между ними определяет, что попадёт в SBOM как продукт, а что — как зависимость. Перепутанные пути дают либо раздутый, либо пустой состав.
Сильные стороны
- Сразу даёт валидный SPDX 2.2 с пространством имён и файловыми хешами — пригоден как доказательная единица.
- ComponentDetection покрывает npm, NuGet, PyPI, Maven, Go, Cargo и др. одним проходом.
- Чёткое разделение «что собрали» (build drop) и «из чего собрали» (build components) — управляемая граница SBOM.
- Кроссплатформенный CLI, удобно встраивается в конвейер сборки .NET и не только.
Ограничения
Только SPDX на выходе Нативного CycloneDX нет. Если трассировка Организации построена на CycloneDX, документ придётся конвертировать (например, через protobom), а часть SPDX-специфичных полей при этом упростится.
- Жёстко завязан на SPDX; нативного CycloneDX на выходе нет — нужна конвертация.
- Ориентирован на каталог артефактов сборки, а не на готовый контейнерный образ из реестра.
- Для C/C++ без поддерживаемого менеджера детектирование зависимостей слабое.
Offline / on-premise
Генерация манифеста и хеширование работают офлайн. Опциональное обогащение лицензий обращается к внешнему API ClearlyDefined — в закрытом контуре эту функцию отключают (-li false, -pm false), и тогда сеть не нужна. Пространство имён (-nsb) задаётся на внутренний домен Организации.
Связанные темы
М05 Инструменты генерации SBOM · М03 Форматы SBOM · П03. Генерация SBOM через Syft · П34. SBOM quality gate · SPDX · Package URL · protobom