Пиков / КАПО
Как читать авторский курс и нормативные материалы

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.

План занятия: Инструменты генерации SBOM

Цели

Тайминг и ход занятия

Мин Блок Что делаем
0–10 Вводный кейс Показываю три bom.json одного репозитория от Syft/Trivy/cdxgen с разным числом компонентов. Вопрос группе: какой «правильный» и почему вопрос поставлен неверно.
10–30 Лекция: что видит инструмент Манифест-скан vs бинарь-скан. Таблица инструмент→что видит. Где теряются версии и лицензии. Зачем нужны PURL/CPE для матчинга CVE.
30–45 Демо 1: Syft и Trivy syft dir:. и trivy image на тестовом проекте; сравниваем компоненты; показываю, что Syft не считает CVE, а Trivy считает. Фиксируем syft version/trivy --version.
45–60 Демо 2: cdxgen + C/C++ cdxgen -t cpp на C/C++ проекте; показываю каркас без версий .so; объясняю, как обогащение читает ELF, маппит на DEB через apt и пишет обогащённый bom.json.
60–80 Практика в парах Слушатели генерируют SBOM тремя инструментами, заполняют сравнительную таблицу охвата (компоненты, доля PURL, лицензии, dependencies). См. практическую работу.
80–90 Разбор и рефлексия Где какой инструмент сильнее; что фиксировать в регламенте Организации; какие данные нельзя гнать во внешние сервисы без отдельного решения.

Демонстрационные команды

syft dir:. -o cyclonedx-json=syft-bom.json
trivy fs --format cyclonedx --output trivy-bom.json .
cdxgen -t cpp -o cdxgen-bom.json .

Материалы

Контрольная точка

Слушатель может объяснить: какой инструмент выбрать под конкретную экосистему; чем манифест-скан отличается от бинарь-скана; почему C/C++ SBOM от cdxgen требует обогащения; что именно фиксируется рядом с bom.json для воспроизводимости.

Частая ошибка занятия Группа склонна искать «лучший» генератор. Возвращайте к мысли: инструмент выбирается под экосистему и режим, а не абсолютно — Trivy хорош для образов с CVE одним шагом, cdxgen незаменим для C/C++, Syft даёт чистую инвентаризацию.