Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Чек-лист качества SPDX
Назначение
Покомпонентная проверка качества SBOM в формате SPDX (ISO/IEC 5962): корректность идентификаторов SPDXID, namespace документа, секции relationships, разделение LicenseConcluded / LicenseDeclared и наличие PackageVerificationCode. Проверяет, пригоден ли SPDX-документ как доказательная опись поставки.
Когда применяется
После приёмки конверта (Чек-лист ZIP поставки), когда соисполнитель поставляет SBOM в SPDX (а не CycloneDX). Применяется к каждому файлу *.spdx.json / *.spdx поставки.
Контекст формата SPDX — документо-ориентированный формат с явной моделью отношений: пакеты (
packages), файлы (files) и связи (relationships) между ними. Лицензионная модель богаче CycloneDX за счёт разделения «объявлено/заключено». Форматные детали — SPDX ISO IEC 5962.
Блок 1. Заголовок документа
- [ ]
spdxVersionуказан и поддерживается (SPDX-2.2/2.3). - [ ]
dataLicense=CC0-1.0(требование спецификации). - [ ]
SPDXIDдокумента =SPDXRef-DOCUMENT. - [ ]
documentNamespaceприсутствует, является уникальным URI (не переиспользуется между поставками). - [ ]
creationInfoсодержитcreators(инструмент + роль/организация, без ФИО) иcreated(timestamp).
Блок 2. Пакеты и идентификаторы
- [ ] У каждого пакета задан уникальный
SPDXIDвидаSPDXRef-.... - [ ] Заполнены
nameиversionInfo. - [ ]
downloadLocationзадан (или явноNOASSERTIONс обоснованием). - [ ]
externalRefsсодержатpurl(PACKAGE-MANAGER) и, где применимо,cpe23Type(SECURITY) — для сопоставления с уязвимостями. - [ ]
PackageVerificationCodeприсутствует для пакетов с файлами (контроль целостности содержимого).
Блок 3. Отношения (relationships)
- [ ] Присутствует
DESCRIBESотSPDXRef-DOCUMENTк корневому пакету продукта. - [ ] Зависимости выражены
DEPENDS_ON/CONTAINS(граф не плоский список без связей). - [ ] Все
relationshipsссылаются на существующиеSPDXID(нет «висячих» ссылок). - [ ] Для C/C++ граф согласован с build evidence поставки (см. П20. CMake dependency graph).
Блок 4. Лицензии
- [ ] У пакетов заполнены оба поля:
licenseConcludedиlicenseDeclared. - [ ] Расхождения
Concluded≠Declaredотмечены и идут в юридический разбор (см. П27. Юридическое заключение и реестр лицензий). - [ ] Лицензионные выражения валидны (SPDX License Expression);
NOASSERTIONне используется как «заглушка по умолчанию». - [ ] При наличии —
licenseInfoInFilesне противоречитlicenseConcludedпакета.
Метрики покрытия (фиксируются в отчёте)
| Метрика | Порог приёмки | Факт |
|---|---|---|
| purl/externalRefs coverage | ≥ 95 % пакетов | |
| licenseConcluded заполнено | ≥ 90 % пакетов | |
| relationships связны | без висячих SPDXID | |
| VerificationCode | у пакетов с файлами |
Связь с курсом
- Модуль: М03. Форматы SBOM · М07. Лицензионная чистота
- Практики: П11. ScanCode для лицензий · П27. Юридическое заключение и реестр лицензий · П34. SBOM quality gate
- Нормативка: SPDX ISO IEC 5962 · OpenChain ISO IEC 5230 · CISA Minimum Elements for SBOM
- Связанные шаблоны: Соглашение о качестве данных SBOM · Чек-лист качества CycloneDX · Реестр unresolved libraries