Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
План занятия (90 минут)
Цели
К концу занятия слушатель умеет:
- перечислить минимальные элементы SBOM (NTIA/CISA) и показать их в CycloneDX JSON;
- развести три слоя — факт, интерпретацию, решение — на конкретном компоненте;
- объяснить, чем ППК Организации дополняет одноразовый SBOM;
- оценить полноту произвольного bom.json командами jq и сформулировать, что в нём дефект данных, а что дефект процесса.
Материалы
- Тестовый
bom.json(CycloneDX) с заранее внесёнными дефектами: компоненты безpurl, пустая версия, отсутствующиеmetadata.authors/timestamp. - Установленный
jq; редактор для просмотра JSON. - Раздаточная таблица минимальных элементов и шаблон Минимальный набор полей ППК.
- Доступ к практике П02. Чтение CycloneDX JSON руками.
Ход занятия
| Мин | Блок | Что происходит |
|---|---|---|
| 0–10 | Вводный кейс | «У нас где-то есть уязвимая версия библиотеки, но какой именно — не знает никто.» Показываем, как этот вопрос превращается из созвона в одну команду jq по SBOM. |
| 10–30 | Лекция: минимальные элементы | Семь элементов NTIA/CISA, кластер метаданных (автор SBOM, инструмент, timestamp, контекст генерации). Почему отсутствие purl/версии ломает автоматическое сопоставление с CVE. |
| 30–45 | Лекция: факт → интерпретация → решение | Разбор на pkg:npm/lodash@4.17.19: что факт, что интерпретация (CVE-2021-23337), что решение. Где чему место: SBOM vs ППК vs реестр исключений. |
| 45–55 | Лекция: SBOM и ППК дополняют друг друга | Снимок vs учётный реестр; почему SBOM один не повышает безопасность и должен быть подключён к анализу. |
| 55–70 | Демо | Преподаватель на «битом» bom.json показывает: подсчёт компонентов без purl, чтение metadata, обнаружение пустой версии. Вслух классифицирует каждую находку по слою. |
| 70–85 | Практика в парах | Слушатели на своём bom.json повторяют проверки и заполняют таблицу дефектов: что данные, что процесс. (Запуск практики П02. Чтение CycloneDX JSON руками.) |
| 85–90 | Рефлексия и контрольная точка | Каждая пара называет один дефект факта и одно решение, которое НЕ должно жить в SBOM. Фиксируем, что закрепить в Соглашение о качестве данных SBOM. |
Контрольная точка
Слушатель на конкретном компоненте показывает: где факт (поля SBOM), где интерпретация (сопоставление с уязвимостью/лицензией), где решение (вердикт с автором и датой), и объясняет, почему интерпретацию и решение нельзя записывать внутрь bom.json.
Домашнее задание
Прогнать проверку полноты на SBOM реального учебного репозитория и оформить вывод по форме практики П02. Чтение CycloneDX JSON руками со ссылкой на Чек-лист качества CycloneDX.