Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Tern
Для чего
Tern — генератор SBOM, специализированный на контейнерных образах. Он анализирует образ послойно и связывает установленные ОС-пакеты с командами Dockerfile, которые их добавили. Главная ценность — не просто список пакетов, а понимание, на каком шаге сборки и какой слой принёс конкретный компонент и его лицензию.
Как применяют
Анализ образа с отчётом и экспортом SBOM:
tern report -i registry.example.org/app:1.4.2 -o report.txt
tern report -i app:1.4.2 -f spdxjson -o sbom.spdx.json
В человекочитаемом отчёте по каждому пакету видно: имя, версию, лицензию и слой/инструкцию Dockerfile-происхождения. Для воспроизводимости анализа Tern может запускать контейнер во внутренней песочнице и инспектировать установленные пакеты.
Зачем привязка к слоям Tern показывает не только «что внутри», но и «какой шаг Dockerfile это принёс». Это превращает разбор образа в разбор сборки: видно, какая инструкция тянет лишний или нелицензионный пакет, и где именно его убирать.
Сильные стороны
- Привязка пакетов к слоям и инструкциям Dockerfile — уникальная для разбора «как собран образ».
- Сильный акцент на лицензиях ОС-пакетов, полезен для лицензионной чистоты базовых образов.
- Экспорт в SPDX (JSON и tag-value) и CycloneDX, плюс подробный текстовый отчёт.
- Помогает выявлять «лишние» пакеты, привнесённые конкретным шагом сборки.
Ограничения
ОС-уровень, не приложение Tern силён по пакетам базового образа, но пакеты языковых менеджеров и собственно приложение детектирует слабее, чем Syft/cdxgen. Для полного состава образа Tern дополняют, а не заменяют ими.
- Заточен под ОС-уровень образа; пакеты языковых менеджеров и приложения детектируются слабее, чем у Syft/cdxgen.
- Анализ медленнее: для полноты Tern может запускать контейнеры, что требует Docker-движка.
- Нет покрытия C/C++ исходников и статической линковки внутри образа.
Offline / on-premise
Работает офлайн: образы подаются из локального tar или внутреннего реестра, внешние каталоги уязвимостей не используются. Песочница для инспекции пакетов поднимается на локальном Docker-движке закрытого контура. Базы лицензий поставляются вместе с инструментом.
Связанные темы
М05 Инструменты генерации SBOM · М16 Честный SBOM контейнеров · П37. Контейнерный образ слои секреты и удаленные файлы · П38. Честный SBOM контейнерного образа · Syft · Docker BuildKit · SPDX