Integriteit van de supply chain
In één oogopslag
Sectie met titel “In één oogopslag”De supply-chain-controles van NextPDF werken op twee punten: CI-gates die draaien op elke pull request die dependencies wijzigt en op elke versietag, en de releaseworkflow, die provenancegeneratie, keyless ondertekening en SBOM-generatie configureert.
| Controle | Type |
|---|---|
CycloneDX 1.7-SBOM van de build | CI-gate, hard |
| in-toto-statement dat zich aan de build-inputs committeert | CI-gate, hard |
| SHA-256-vingerafdrukvergelijking van dependencies met een vastgepinde baseline | CI-gate, hard |
| OpenVEX-consistentiecontrole tegen het dependency-advisory-beleid | CI-gate, hard |
| Determinismecontrole over meerdere fixtures | CI-controle, best-effort |
Provenancegeneratie via de vastgepinde slsa-github-generator | Workflowconfiguratie — releaseworkflow |
Keyless ondertekening met Sigstore cosign met transparantielogging naar Rekor | Workflowconfiguratie — releaseworkflow |
SBOM-generatie in CycloneDX 1.7 en SPDX 2.3 | Workflowconfiguratie — releaseworkflow |
Nachtelijke php-fuzzer-matrix over de parser- en writerpaden | Geplande CI |
CI-gates
Sectie met titel “CI-gates”Elke pull request die dependencies raakt en elke versietag draait:
| Controle | Wat deze doet | Gate |
|---|---|---|
| Inventaris | Genereert een CycloneDX 1.7-SBOM van de build | Hard |
| Build-inputregistratie | Genereert een in-toto-statement dat zich aan de build-inputs committeert | Hard |
| Dependency-integriteit | Vergelijkt SHA-256-bytevingerafdrukken met een vastgepinde baseline | Hard |
| VEX-consistentie | Vereist dat elk item in het dependency-advisory-beleid een corresponderend statement heeft in het OpenVEX v0.2.0-document van de repository | Hard |
| Reproduceerbaarheid | Voert een determinismecontrole uit over de fixtures | Best-effort |
De dependency-integriteitsgate vergelijkt SHA-256-bytevingerafdrukken van de dependency-tree met een in de repository vastgepinde baseline, onafhankelijk van pakketmetadata.
Configuratie van de releaseworkflow
Sectie met titel “Configuratie van de releaseworkflow”Provenance — workflowconfiguratie
Sectie met titel “Provenance — workflowconfiguratie”De releaseworkflow pint de canonieke herbruikbare workflow slsa-github-generator
vast, die is geconfigureerd om in-toto-provenance te genereren binnen een
geïsoleerde, kortstondige builder, en configureert slsa-verifier om inline tegen
de output van de generator te draaien.
Ondertekening en transparantie — workflowconfiguratie
Sectie met titel “Ondertekening en transparantie — workflowconfiguratie”De releaseworkflow configureert keyless ondertekening met Sigstore cosign voor
de artifactbundel, met transparantielogging naar Rekor. Keyless ondertekening
leidt een kortlevend certificaat af van de OIDC-identiteit van de workflow
(https://token.actions.githubusercontent.com), zodat dit
release-ondertekeningspad zonder langlevende artifact-ondertekeningssleutel is
geconfigureerd.
SBOM — workflowconfiguratie
Sectie met titel “SBOM — workflowconfiguratie”De releaseworkflow configureert dubbele SBOM-generatie — een CycloneDX
1.7-document en een SPDX 2.3-document.
Fuzzing
Sectie met titel “Fuzzing”Een nachtelijke php-fuzzer-matrix test, samen met een
AST-/structuurboom-harness, de parser- en writerpaden.