Pular para o conteúdo
getnextpdf.com

Integridade da cadeia de suprimentos

Os controles de cadeia de suprimentos do NextPDF operam em dois pontos: gates de CI que rodam em todo pull request que altera dependências e em toda tag de versão, e o workflow de release, que configura a geração de proveniência, a assinatura keyless e a emissão de SBOM.

ControleTipo
SBOM CycloneDX 1.7 do buildGate de CI, rígido
Declaração in-toto que se compromete com os insumos do buildGate de CI, rígido
Comparação de fingerprints SHA-256 das dependências com uma linha de base fixadaGate de CI, rígido
Verificação de consistência OpenVEX em relação à política de advisories de dependênciasGate de CI, rígido
Verificação de determinismo entre fixturesVerificação de CI, melhor esforço
Geração de proveniência com slsa-github-generator fixadoConfiguração de workflow — workflow de release
Assinatura keyless com cosign da Sigstore, com registro de transparência no RekorConfiguração de workflow — workflow de release
Emissão de SBOM CycloneDX 1.7 e SPDX 2.3Configuração de workflow — workflow de release
Matriz noturna de php-fuzzer sobre os caminhos de parser e writerCI agendada

Todo pull request que altera dependências, e toda tag de versão, executa:

VerificaçãoO que fazGate
InventárioEmite um SBOM CycloneDX 1.7 do buildRígido
Registro de insumos do buildEmite uma declaração in-toto que se compromete com os insumos do buildRígido
Integridade das dependênciasCompara fingerprints SHA-256 dos bytes com uma linha de base fixadaRígido
Consistência VEXExige que cada entrada da política de advisories de dependências tenha uma declaração correspondente no documento OpenVEX v0.2.0 do repositórioRígido
ReprodutibilidadeExecuta uma verificação de determinismo entre as fixturesMelhor esforço

O gate de integridade das dependências compara fingerprints SHA-256 dos bytes da árvore de dependências com uma linha de base fixada no repositório, de forma independente dos metadados dos pacotes.

O workflow de release fixa o workflow reutilizável canônico slsa-github-generator, configurado para gerar proveniência in-toto dentro de um builder isolado e efêmero, e configura o slsa-verifier para rodar em linha contra a saída do gerador.

Assinatura e transparência — configuração de workflow

Seção intitulada “Assinatura e transparência — configuração de workflow”

O workflow de release configura a assinatura keyless com cosign da Sigstore para o bundle de artefatos, com registro de transparência no Rekor. A assinatura keyless deriva um certificado de curta duração da identidade OIDC do workflow (https://token.actions.githubusercontent.com), de modo que esse caminho de assinatura de release é configurado sem nenhuma chave de longa duração para assinatura de artefatos.

O workflow de release configura a emissão dupla de SBOM — um documento CycloneDX 1.7 e um documento SPDX 2.3.

Uma matriz noturna de php-fuzzer, junto com um harness de AST/árvore de estrutura, exercita os caminhos de parser e writer.