Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
План занятия (90 минут)
Цели
По итогам занятия слушатель умеет: - читать и собирать руками строку PURL и строку CPE 2.3 для заданного компонента; - объяснить, почему битый/отсутствующий PURL или CPE даёт тихий ноль находок (false negative), а не ошибку; - распознать alias-проблему CPE (несколько vendor у одного продукта) и связать её с C/C++ без пакетного менеджера; - различить координаты уязвимостей CVE / GHSA / OSV / BDU ФСТЭК и понимать, зачем их несколько.
Материалы
- Конспект М04;
- демо-проект с готовым SBOM (CycloneDX JSON), в котором у части компонентов координаты битые;
- доступ к публичным базам: NVD CPE Search (nvd.nist.gov), osv.dev, БДУ ФСТЭК (bdu.fstec.ru);
- спецификация PURL (github.com/package-url/purl-spec) и CPE 2.3 (NIST) — как справочник.
Ход занятия
| Мин | Блок | Что происходит |
|---|---|---|
| 0–5 | Вводный кейс | Отчёт сканера: «0 уязвимостей» по компоненту, который заведомо уязвим. Вопрос аудитории: что не так? Подводка к «нет координаты → нет находки». |
| 5–25 | Лекция: две системы координат | PURL (грамматика, примеры по экосистемам) и CPE 2.3 (13 полей, vendor:product). Разбор log4j: расхождение Maven groupId:artifactId и CPE vendor:product. |
| 25–35 | Лекция: координаты уязвимостей | CVE, GHSA, OSV (aliases как кросс-walk), БДУ ФСТЭК (BDU:YYYY-NNNNN, записи без CVE). Зачем источников несколько. |
| 35–55 | Демо матчинга | Преподаватель собирает PURL и CPE для OpenSSL/libcurl, ищет в osv.dev и в NVD CPE Search; показывает alias curl (haxx:curl vs curl:curl); затем ломает PURL приватным qualifier и показывает, как находки исчезают. |
| 55–80 | ПЗ в парах | Слушатели заполняют таблицу координат для 4 компонентов и воспроизводят «битый PURL → пропавшие находки» (см. Практическая работа). |
| 80–88 | Разбор результатов | Сравниваем таблицы пар, обсуждаем найденные alias и нормализацию; что попадает в worklist (П24. PURL нормализация и private qualifiers, П25. CPE alias worklist). |
| 88–90 | Рефлексия | Что закрепить в регламенте Организации: требование двух координат, нормализация PURL, сверка CPE-alias, учёт БДУ. |
Демонстрация (опорные шаги)
- Показать фрагмент SBOM с полями
purlиcpe. - Найти компонент в osv.dev по PURL → получить CVE/GHSA.
- Найти тот же продукт в NVD CPE Search → показать несколько vendor (alias).
- Внести в PURL приватный qualifier → повторить поиск → находок нет; снять qualifier → находки вернулись.
Контрольная точка
Слушатель предъявляет заполненную таблицу координат и устно объясняет на одном примере, почему сканер мог бы вернуть ложный ноль и как это поймать. Детальные критерии — в Практической работе.