Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
CPE
Для чего
CPE (Common Platform Enumeration, NIST IR 7695) — структурированное имя для операционных систем, прикладного ПО и аппаратных платформ. Это ключ, по которому записи NVD связываются с компонентом: уязвимость в NVD описывает диапазон затронутых версий именно через CPE-конфигурации (cpe:2.3:a:openssl:openssl:...). Без сопоставления «компонент → CPE» сопоставить находку с CVE через NVD нельзя.
Как применяют
Современная форма — CPE 2.3 formatted string binding: ровно 13 полей, разделённых двоеточием, где * означает ANY, а - означает NA (не применимо):
cpe:2.3:a:openssl:openssl:3.0.13:*:*:*:*:*:*:*
│ │ │ │ └ обновление, edition, language, sw_edition, target_sw, target_hw, other
│ │ │ └ version
│ │ └ product
│ └ vendor
└ part: a (application) | o (os) | h (hardware)
Устаревшая форма — CPE 2.2 URI binding: cpe:/a:openssl:openssl:3.0.13. В записи NVD затронутые версии задаются через versionStartIncluding / versionEndExcluding поверх базового CPE. Сканер (например, OWASP Dependency-Check) строит CPE-кандидаты по имени артефакта и проверяет их по локальной выгрузке CPE Dictionary и NVD.
Сильные стороны
- Единственный ключ для сопоставления с NVD: без CPE запись NVD недостижима по имени.
- Покрывает не только пакеты, но и ОС и «железо» (
part:o,part:h) — то, что Package URL не адресует. - Диапазоны версий (
versionEndExcluding) позволяют одной CPE-конфигурацией закрыть множество выпусков.
Ограничения
- Строки
vendor:productназначаются вручную аналитиками NVD и нестабильны: один продукт встречается какopenssl:openssl,openssl_project:opensslи т. п. — отсюда пропуски при сопоставлении (работа с алиасами — П25. CPE alias worklist). - Нет детерминированного алгоритма «артефакт → CPE»: имя угадывается эвристикой, отсюда и ложные срабатывания, и пропуски.
- Для C/C++ и вендорённых библиотек CPE часто просто отсутствует в словаре.
Offline / on-premise
Сама схема именования сетевого доступа не требует. Для сопоставления в закрытом контуре нужны зеркала официальной выгрузки CPE Dictionary и NVD (JSON-фиды); их разворачивают локально и обновляют по расписанию, после чего сопоставление идёт без выхода в интернет.
Связанные темы
М04 Идентификаторы компонентов и уязвимостей · М06 Поиск уязвимостей Практики: П25. CPE alias worklist Смежные карточки: Package URL · NVD · CVE · OWASP Dependency-Check