Integralność łańcucha dostaw
W skrócie
Dział zatytułowany „W skrócie”Kontrole łańcucha dostaw NextPDF działają w dwóch punktach: bramki CI uruchamiane na każdym pull requeście zmieniającym zależności i na każdym tagu wersji oraz workflow wydania, który konfiguruje generowanie provenance, podpisywanie bezkluczowe i emisję SBOM.
| Kontrola | Typ |
|---|---|
SBOM CycloneDX 1.7 dla builda | Bramka CI, twarda |
| Oświadczenie in-toto wiążące dane wejściowe builda | Bramka CI, twarda |
| Porównanie odcisków SHA-256 zależności z przypiętą linią bazową | Bramka CI, twarda |
| Kontrola spójności OpenVEX względem polityki biuletynów bezpieczeństwa zależności | Bramka CI, twarda |
| Kontrola determinizmu na zbiorze fixture’ów | Kontrola CI, best-effort |
Generowanie provenance przypiętym slsa-github-generator | Konfiguracja workflow — workflow wydania |
Bezkluczowe podpisywanie Sigstore cosign z rejestrowaniem przejrzystości w Rekor | Konfiguracja workflow — workflow wydania |
Emisja SBOM CycloneDX 1.7 i SPDX 2.3 | Konfiguracja workflow — workflow wydania |
Nocna macierz php-fuzzer na ścieżkach parsera i zapisu | CI uruchamiane wg harmonogramu |
Bramki CI
Dział zatytułowany „Bramki CI”Każdy pull request dotykający zależności i każdy tag wersji uruchamia:
| Kontrola | Co robi | Bramka |
|---|---|---|
| Inwentaryzacja | Emituje SBOM CycloneDX 1.7 dla builda | Twarda |
| Zapis danych wejściowych builda | Emituje oświadczenie in-toto wiążące dane wejściowe builda | Twarda |
| Integralność zależności | Porównuje bajtowe odciski SHA-256 z przypiętą linią bazową | Twarda |
| Spójność VEX | Wymaga, aby każda pozycja w polityce biuletynów bezpieczeństwa zależności miała odpowiadające jej oświadczenie w dokumencie OpenVEX v0.2.0 w repozytorium | Twarda |
| Odtwarzalność | Uruchamia kontrolę determinizmu na fixture’ach | Best-effort |
Bramka integralności zależności porównuje bajtowe odciski SHA-256 drzewa zależności z linią bazową przypiętą w repozytorium, niezależnie od metadanych pakietów.
Konfiguracja workflow wydania
Dział zatytułowany „Konfiguracja workflow wydania”Provenance — konfiguracja workflow
Dział zatytułowany „Provenance — konfiguracja workflow”Workflow wydania przypina kanoniczny, wielokrotnego użytku workflow
slsa-github-generator, skonfigurowany tak, aby generować provenance in-toto
wewnątrz izolowanego, efemerycznego buildera, oraz konfiguruje slsa-verifier
do uruchamiania inline na wyniku generatora.
Podpisywanie i przejrzystość — konfiguracja workflow
Dział zatytułowany „Podpisywanie i przejrzystość — konfiguracja workflow”Workflow wydania konfiguruje bezkluczowe podpisywanie Sigstore cosign dla pakietu
artefaktów, z rejestrowaniem przejrzystości w Rekor. Podpisywanie bezkluczowe
wyprowadza krótkotrwały certyfikat z tożsamości OIDC workflow
(https://token.actions.githubusercontent.com), dzięki czemu ta ścieżka
podpisywania wydań jest skonfigurowana bez długotrwałego klucza do podpisywania
artefaktów.
SBOM — konfiguracja workflow
Dział zatytułowany „SBOM — konfiguracja workflow”Workflow wydania konfiguruje podwójną emisję SBOM — dokument CycloneDX 1.7
i dokument SPDX 2.3.
Fuzzing
Dział zatytułowany „Fuzzing”Nocna macierz php-fuzzer, wraz z harnessem AST/drzewa struktury, testuje
ścieżki parsera i zapisu.