Salta ai contenuti
getnextpdf.com

Integrità della supply chain

I controlli di supply chain di NextPDF operano in due punti: i gate CI eseguiti su ogni pull request che modifica le dipendenze e su ogni tag di versione, e il workflow di rilascio, che configura la generazione della provenance, la firma keyless e l’emissione delle SBOM.

ControlloTipo
SBOM CycloneDX 1.7 della buildGate CI, bloccante
Dichiarazione in-toto che vincola gli input di buildGate CI, bloccante
Confronto delle impronte SHA-256 delle dipendenze con una baseline fissataGate CI, bloccante
Verifica di coerenza OpenVEX rispetto alla policy sugli advisory delle dipendenzeGate CI, bloccante
Verifica di determinismo tra le fixtureVerifica CI, best effort
Generazione della provenance con slsa-github-generator a versione bloccataConfigurazione di workflow — workflow di rilascio
Firma keyless Sigstore cosign con registrazione di trasparenza su RekorConfigurazione di workflow — workflow di rilascio
Emissione di SBOM CycloneDX 1.7 e SPDX 2.3Configurazione di workflow — workflow di rilascio
Matrice php-fuzzer notturna sui percorsi di parser e writerCI pianificata

Ogni pull request che tocca le dipendenze, e ogni tag di versione, esegue:

VerificaCosa faGate
InventarioEmette una SBOM CycloneDX 1.7 della buildBloccante
Registrazione degli input di buildEmette una dichiarazione in-toto che vincola gli input di buildBloccante
Integrità delle dipendenzeConfronta le impronte byte SHA-256 con una baseline fissataBloccante
Coerenza VEXRichiede che ogni voce della policy sugli advisory delle dipendenze abbia una dichiarazione corrispondente nel documento OpenVEX v0.2.0 del repositoryBloccante
RiproducibilitàEsegue una verifica di determinismo sulle fixtureBest effort

Il gate di integrità delle dipendenze confronta le impronte byte SHA-256 dell’albero delle dipendenze con una baseline fissata nel repository, indipendentemente dai metadati dei pacchetti.

Il workflow di rilascio vincola a una versione fissa il workflow riutilizzabile canonico slsa-github-generator, configurato per generare la provenance in-toto all’interno di un builder isolato ed effimero, e configura slsa-verifier per l’esecuzione inline sull’output del generatore.

Firma e trasparenza — configurazione del workflow

Sezione intitolata “Firma e trasparenza — configurazione del workflow”

Il workflow di rilascio configura la firma keyless Sigstore cosign per il bundle degli artefatti, con registrazione di trasparenza su Rekor. La firma keyless deriva un certificato a breve durata dall’identità OIDC del workflow (https://token.actions.githubusercontent.com), quindi questo percorso di firma dei rilasci è configurato senza alcuna chiave di firma degli artefatti a lunga durata.

Il workflow di rilascio configura l’emissione di una doppia SBOM — un documento CycloneDX 1.7 e un documento SPDX 2.3.

Una matrice php-fuzzer notturna, insieme a un harness su AST e albero della struttura, esercita i percorsi di parser e writer.