概要
構成証明を使用することで、ビルドするソフトウェアに対して検証不可能な証明と整合性の保証を作成できます。 さらに、ソフトウェアを使用するユーザーは、ソフトウェアがビルドされた場所と方法の確認ができます。
ソフトウェアで成果物の構成証明を生成する場合は、ビルドの実績を確立し、次の情報など暗号署名付き要求を作成します。
- 成果物に関連付けられているワークフローへのリンク
- 成果物のリポジトリ、organization、環境、コミット SHA、トリガー イベント
- 証明の確立に使用する OIDC トークンからのその他の情報。 詳しくは、「OpenID Connect」をご覧ください。
関連するソフトウェア部品表 (SBOM) を含む構成証明を生成することもできます。 ビルドを、その中で使用されるオープンソースの依存関係の一覧に関連付けることで、透明性は提供され、コンシューマーがデータ保護標準に準拠できるようになります。
アーティファクト証明の SLSA レベル
SLSA フレームワークは、サプライ チェーンのセキュリティを評価に使用される業界標準です。 レベルごとに編成されています。 各レベルは、ソフトウェア サプライ チェーンのセキュリティと信頼性の程度を表します。 アーティファクトの証明そのものが、SLSA v1.0 ビルドレベル 2 を提供します。
これにより、アーティファクトとその構築命令間のリンクが提供されますが、既知の検査済みの構築命令を使用して構築を要求することで、この手順をさらに進めることができます。 これを実現するのに良い方法は、組織全体の多くのリポジトリが共有する再利用可能なワークフローで構築を実行することです。 再利用可能なワークフローは、SLSA v1.0 構築レベル 3 を満たすために、構築プロセスと呼び出し元のワークフローの間で分離を提供できます。 詳しくは、「成果物の構成証明と再利用可能なワークフローを使用して SLSA v1 ビルド レベル 3 を実現する」をご覧ください。
SLSA レベルの詳細については、「SLSA セキュリティ レベル」を参照してください。
GitHub が成果物検証を生成する方法
成果物の構成証明を生成するために、GitHub は Sigstore を使用します。これは、構成証明を介してソフトウェア成果物に署名して検証するための包括的なソリューションを提供するopen source プロジェクトです。
**アーティファクト構成証明を生成するパブリック リポジトリ** では、[Sigstore Public Good Instance](https://openssf.org/blog/2023/10/03/running-sigstore-as-a-managed-service-a-tour-of-sigstores-public-good-instance/) が使用されます。 生成された Sigstore バンドルのコピーは、GitHubと共に格納され、インターネット上でパブリックに読み取り可能な不変の透過性ログにも書き込まれます。
アーティファクト構成証明を生成する Private リポジトリは、GitHubの Sigstore インスタンスを使用します。 GitHubの Sigstore インスタンスは Sigstore Public Good Instance と同じコードベースを使用しますが、透過性ログはなく、GitHub Actions とのみフェデレーションされます。
アテステーションを生成するタイミング
構成証明を生成するだけではセキュリティ上の利点はありません。利点を実現するには、構成証明を検証する必要があります。 署名の対象と頻度について検討する方法に関するガイドラインを次に示します。
以下に署名する必要があります。
- ユーザーが
gh attestation verify ...を実行することを期待しているリリース対象のソフトウェア。 - ユーザーが実行するバイナリ、ユーザーがダウンロードするパッケージ、または詳細な内容のハッシュを含むマニフェスト。
以下に署名しないでください。
- 自動テスト用の頻繁な構築。
- ソース コード、ドキュメント ファイル、埋め込みイメージなどの個々のファイル。
アーティファクト証明書の検証
アーティファクト構成証明を発行するソフトウェアを使用する場合は、GitHub CLI を使用してそれらの構成証明を確認できます。 構成証明ではソフトウェアの構築場所と方法に関する情報が提供されるため、その情報を使用して、サプライ チェーンのセキュリティを昇格させるセキュリティ ポリシーを作成して適用できます。
警告
アーティファクトの証明書は、アーティファクトが安全である保証_ではない_ことを忘れないことが重要です。 代わりに、アーティファクト構成証明はお客様を、ソース コードやそれらを生成したビルド手順にリンクします。 ポリシーの条件を定義し、コンテンツを評価してそのポリシーを評価して、ソフトウェアを使用する際に情報に基づいたリスクを判断するのは、ユーザーの責任です。
次のステップ
ビルドの成果物構成証明の生成と検証を始めるには、「アーティファクトの構成証明を使用して構築の実績を確立する」をご覧ください。