Перейти к содержимому
getnextpdf.com

Целостность цепочки поставок

Средства контроля цепочки поставок NextPDF действуют в двух точках: CI-гейты, выполняющиеся на каждом pull request, меняющем зависимости, и на каждом теге версии, и релизный workflow, в котором настроены генерация provenance, keyless-подписание и формирование SBOM.

Средство контроляТип
SBOM сборки в формате CycloneDX 1.7CI-гейт, жёсткий
Заявление in-toto, фиксирующее входные данные сборкиCI-гейт, жёсткий
Сверка SHA-256-отпечатков зависимостей с закреплённым бейзлайномCI-гейт, жёсткий
Проверка согласованности OpenVEX с политикой по известным уязвимостям зависимостейCI-гейт, жёсткий
Проверка детерминизма на наборе фикстурCI-проверка, best-effort
Генерация provenance закреплённым slsa-github-generatorКонфигурация workflow — релизный workflow
Keyless-подписание Sigstore cosign с записью в журнал прозрачности RekorКонфигурация workflow — релизный workflow
Формирование SBOM в форматах CycloneDX 1.7 и SPDX 2.3Конфигурация workflow — релизный workflow
Ночная матрица php-fuzzer по путям парсера и модуля записиCI по расписанию

Каждый pull request, затрагивающий зависимости, и каждый тег версии проходят следующие проверки:

ПроверкаЧто делаетГейт
ИнвентаризацияФормирует SBOM сборки в формате CycloneDX 1.7Жёсткий
Запись входных данных сборкиФормирует заявление in-toto, фиксирующее входные данные сборкиЖёсткий
Целостность зависимостейСверяет SHA-256-отпечатки байтов с закреплённым бейзлайномЖёсткий
Согласованность VEXТребует, чтобы каждой записи политики по известным уязвимостям зависимостей соответствовало заявление в документе OpenVEX v0.2.0 репозиторияЖёсткий
ВоспроизводимостьВыполняет проверку детерминизма на наборе фикстурBest-effort

Гейт целостности зависимостей сверяет SHA-256-отпечатки байтов дерева зависимостей с бейзлайном, закреплённым в репозитории, независимо от метаданных пакетов.

Релизный workflow закрепляет канонический переиспользуемый workflow slsa-github-generator, настроенный генерировать in-toto provenance внутри изолированного эфемерного билдера, и настраивает инлайновый запуск slsa-verifier для проверки результата генератора.

Подписание и прозрачность — конфигурация workflow

Заголовок раздела «Подписание и прозрачность — конфигурация workflow»

Релизный workflow настраивает keyless-подписание бандла артефактов с помощью Sigstore cosign с записью в журнал прозрачности Rekor. Keyless-подписание выводит короткоживущий сертификат из OIDC-идентичности workflow (https://token.actions.githubusercontent.com), поэтому этот путь подписания релизов настроен без долгоживущего ключа подписи артефактов.

Релизный workflow настраивает формирование двойного SBOM — документа CycloneDX 1.7 и документа SPDX 2.3.

Ночная матрица php-fuzzer вместе с харнессом по AST и дереву структуры нагружает пути парсера и модуля записи.