Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Порядок работы с неопознанной библиотекой
Назначение
Пошаговый регламент идентификации компонента, который сканер увидел, но не сопоставил с координатами. Описывает, как от симптома «не распозналось» дойти до purl и паспорта либо до обоснованного принятого риска — без молчаливого пропуска.
Когда применяется
Запускается на каждый компонент со статусом unresolved после форматных чек-листов. Результат каждого шага фиксируется в Реестр unresolved libraries (порядок поставляет в реестр записи и двигает их статусы).
Порядок vs реестр Этот документ — что делать (шаги). Где это учитывается — в реестре unresolved. Каждый шаг ниже меняет статус соответствующей записи реестра.
Шаги
-
Зафиксировать симптом. Завести запись в реестре: артефакт, поставка, тип проблемы (
static link/vendored/cpe alias/binary/format gap). Назначить владельца и срок. -
Собрать сборочный контекст. Для C/C++ — поднять build evidence: логи сборки, граф (см. П19. C C++ make build inventory, П20. CMake dependency graph). Часто координаты восстанавливаются именно из контекста сборки, а не из бинарника.
-
Поискать апстрим и метаданные. Проверить заголовки исходников, README, hash файлов против публичных индексов. Для vendored-кода — найти оригинальный репозиторий и версию.
-
Сформировать кандидата
purl. Построить нормализованныйpurl(тип, namespace, name, version) по П24. PURL нормализация и private qualifiers. Если versions диапазон — зафиксировать неопределённость. -
Сопоставить уязвимостные координаты. Если
cpeне совпал — провести alias-сопоставление (см. П25. CPE alias worklist), чтобы компонент проверялся против БДУ ФСТЭК/OSV. -
Эскалировать соисполнителю при тупике. Если данных недостаточно — запросить у соисполнителя исходные метаданные/SBOM-фрагмент. Перевести запись в статус «эскалация».
-
Закрыть запись одним из исходов: - Идентифицирована → завести паспорт, статус «закрыта-идентифицирована». - Риск принят → оформить по П30. Исключения и принятие риска с владельцем и сроком пересмотра, статус «закрыта-риск принят». - Подтверждённый ложный элемент → удалить из состава с обоснованием.
Критерий завершения
- [ ] У записи нет статуса «новая»/«в работе» без движения дольше срока.
- [ ] Каждый закрытый элемент имеет либо
purl+паспорт, либо принятый риск со сроком. - [ ] Итог отражён в доле unresolved для соглашения о качестве.
Связь с курсом
- Модуль: М04. Идентификаторы · М09. C/C++ legacy
- Практики: П25. CPE alias worklist · П24. PURL нормализация и private qualifiers · П22. ELF dynamic dependencies
- Нормативка: БДУ ФСТЭК · NIST SP 800-161 Rev.1 · CISA Minimum Elements for SBOM
- Связанные шаблоны: Реестр unresolved libraries · Паспорт open source библиотеки · Чек-лист качества CycloneDX