Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Практическая работа: развести термины на своём продукте
Цель Научиться безошибочно классифицировать любую запись из отчёта/SBOM как факт состава, факт уязвимости, решение о применимости или вопрос доверия к источнику — и привязать каждую к угрозе из модели цепочки поставки. Это понятийный навык без установки инструментов; запуск сканеров будет в следующих модулях.
Исходные данные
Возьмите один знакомый продукт (или учебный репозиторий курса) и любой из артефактов: - готовый SBOM в CycloneDX JSON (можно учебный фрагмент с занятия), или - выгрузку findings (список CVE по компонентам), или - таблицу заимствованных библиотек продукта.
Если своего артефакта нет — используйте фрагмент CycloneDX из Конспекта.
Шаги
-
Зафиксируйте контекст. Запишите: продукт, источник артефакта, дата. Без даты разметка не воспроизводима.
-
Заполните таблицу терминов. Для своего продукта подберите по одному конкретному примеру на каждую строку. Где примера честно нет — пишите «нет, и вот почему».
| Термин | Пример из вашего продукта |
|---|---|
| SCA (что выявляем) | |
| SBOM / ППК (где хранится состав) | |
| VDR (список найденных CVE) | |
| VEX (решение «затрагивает / не затрагивает») | |
| OSA / SCS (контроль источника и поставки) |
-
Разметьте артефакт. Возьмите 5–7 строк из своего SBOM/отчёта и для каждой проставьте метку:
состав/факт-CVE/решение-VEX/доверие-OSA. -
Привяжите к угрозам. Для каждой строки укажите, какую угрозу из ГОСТ Р 58412-2019 она помогает закрыть: 5.3.2 (заимствованный уязвимый компонент), 5.5.1 (подмена при поставке) или 5.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 её не видит.
Связь с практиками и нормативкой
- П02. Чтение CycloneDX JSON руками — детальный разбор полей.
- П09. VDR и VEX — продолжение про пару факт/решение.
- П17. OSA controlled repository policy — закрытие OSA-угроз источника.
- Нормативка: ГОСТ Р 58412-2019 (пп. 5.3.2, 5.3.3, 5.5.1), OWASP Top 10 A06.