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

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

Практическая работа: развести термины на своём продукте

Цель Научиться безошибочно классифицировать любую запись из отчёта/SBOM как факт состава, факт уязвимости, решение о применимости или вопрос доверия к источнику — и привязать каждую к угрозе из модели цепочки поставки. Это понятийный навык без установки инструментов; запуск сканеров будет в следующих модулях.

Исходные данные

Возьмите один знакомый продукт (или учебный репозиторий курса) и любой из артефактов: - готовый SBOM в CycloneDX JSON (можно учебный фрагмент с занятия), или - выгрузку findings (список CVE по компонентам), или - таблицу заимствованных библиотек продукта.

Если своего артефакта нет — используйте фрагмент CycloneDX из Конспекта.

Шаги

  1. Зафиксируйте контекст. Запишите: продукт, источник артефакта, дата. Без даты разметка не воспроизводима.

  2. Заполните таблицу терминов. Для своего продукта подберите по одному конкретному примеру на каждую строку. Где примера честно нет — пишите «нет, и вот почему».

Термин Пример из вашего продукта
SCA (что выявляем)
SBOM / ППК (где хранится состав)
VDR (список найденных CVE)
VEX (решение «затрагивает / не затрагивает»)
OSA / SCS (контроль источника и поставки)
  1. Разметьте артефакт. Возьмите 5–7 строк из своего SBOM/отчёта и для каждой проставьте метку: состав / факт-CVE / решение-VEX / доверие-OSA.

  2. Привяжите к угрозам. Для каждой строки укажите, какую угрозу из ГОСТ Р 58412-2019 она помогает закрыть: 5.3.2 (заимствованный уязвимый компонент), 5.5.1 (подмена при поставке) или 5.3.3 (инструмент сборки).

  3. Найдите границу. Выпишите хотя бы одну угрозу вашего продукта, которую нельзя закрыть никаким SCA-сканом версий, только OSA (контроль источника). Объясните почему.

Что вы должны увидеть

Заполненная таблица + размеченный список вида:

log4j-core 2.14.1            -> состав        (закрывает учёт по 5.3.2)
CVE-2021-44228 на log4j-core -> факт-CVE      (VDR)
state: not_affected          -> решение-VEX
pkg пришёл с внешнего зеркала -> доверие-OSA   (риск по 5.5.1, SCA не видит)

Ключевой результат шага 5: формулировка вида «protestware в транзитивной зависимости не имеет CVE → список версий его не поймает → нужна политика контролируемого репозитория».

Если не получилось

Типичные ошибки - Всё свалили в «SCA». Если у вас в каждой строке метка состав — вы не отделили факт уязвимости от решения. Перечитайте пару VDR/VEX в конспекте. - VDR назвали VEX-ом. Список CVE — это VDR. VEX появляется только когда есть analysis.state и обоснование. - Не нашли OSA-угрозу. Если кажется, что всё закрывается версиями — вспомните подмену пакета при поставке (5.5.1) и protestware без CVE. - Нет даты/источника в шаге 1 — разметка не засчитывается как воспроизводимая.

Критерий зачёта

Показать преподавателю: (1) заполненную таблицу терминов с конкретными примерами продукта; (2) размеченный список из 5–7 строк с привязкой к угрозам ГОСТ; (3) одну угрозу, закрываемую только OSA, с объяснением, почему SCA её не видит.

Связь с практиками и нормативкой