コンテンツにスキップ
getnextpdf.com

サプライチェーンの完全性

NextPDF のサプライチェーン統制は 2 つのポイントで機能します。依存関係を変更するすべてのプルリクエストとすべてのバージョンタグで実行される CI ゲートと、 プロベナンス生成・キーレス署名・SBOM 生成を構成するリリースワークフローです。

統制種別
ビルドの CycloneDX 1.7 SBOMCI ゲート(ハード)
ビルド入力にコミットする in-toto ステートメントCI ゲート(ハード)
固定ベースラインとの SHA-256 依存関係フィンガープリント差分比較CI ゲート(ハード)
依存関係アドバイザリポリシーに対する OpenVEX 整合性チェックCI ゲート(ハード)
フィクスチャ横断の決定論性チェックCI チェック(ベストエフォート)
固定した slsa-github-generator によるプロベナンス生成ワークフロー構成 — リリースワークフロー
Rekor 透明性ログを伴う Sigstore cosign キーレス署名ワークフロー構成 — リリースワークフロー
CycloneDX 1.7 および SPDX 2.3 の SBOM 生成ワークフロー構成 — リリースワークフロー
パーサーおよびライターのパスを対象とする夜間 php-fuzzer マトリクススケジュール実行の CI

依存関係に触れるすべてのプルリクエストと、すべてのバージョンタグで、次のチェックが実行されます。

チェック内容ゲート
インベントリビルドの CycloneDX 1.7 SBOM を生成しますハード
ビルド入力の記録ビルド入力にコミットする in-toto ステートメントを生成しますハード
依存関係の完全性SHA-256 バイトフィンガープリントを固定ベースラインと差分比較しますハード
VEX 整合性依存関係アドバイザリポリシーのすべてのエントリについて、リポジトリの OpenVEX v0.2.0 ドキュメント内に対応するステートメントが存在することを要求しますハード
再現性フィクスチャ横断で決定論性チェックを実行しますベストエフォート

依存関係完全性ゲートは、依存関係ツリーの SHA-256 バイトフィンガープリントを、 リポジトリに固定されたベースラインと差分比較します。この比較はパッケージメタデータに依存しません。

リリースワークフローは、正規の slsa-github-generator 再利用可能ワークフローを固定して使用します。このワークフローは、分離されたエフェメラルなビルダー内で in-toto プロベナンスを生成するよう構成されており、さらにジェネレーターの出力に対して slsa-verifier をインラインで実行するよう構成されています。

リリースワークフローは、アーティファクトバンドルに対する Sigstore cosign キーレス署名を構成しており、Rekor への透明性ログ記録を伴います。キーレス署名は、 ワークフローの OIDC アイデンティティ (https://token.actions.githubusercontent.com)から短命の証明書を導出するため、 このリリース署名パスは長期有効なアーティファクト署名鍵を持たない構成になっています。

リリースワークフローは、CycloneDX 1.7 ドキュメントと SPDX 2.3 ドキュメントの 2 形式で SBOM を生成するよう構成されています。

夜間の php-fuzzer マトリクスが、AST/構造ツリーハーネスとともに、パーサーおよびライターの各パスを検証します。