Supply chain Levels for Software Artifacts(SLSA) は、ソースコード、ライブラリ、ソフトウェアパッケージなどの一連の入力が、バイナリやソフトウェア部品表などの明確に定義された出力につながることへの信頼を提供するセキュリティフレームワークです。これは、プロデューサーが直接管理するサプライチェーンの部分を信頼し、ビルドプロセスへの信頼を提供してアップストリームのサプライチェーン攻撃を検出するための構造化された技術要件のセットです。
Adoptium は、プロジェクトのセキュアエンジニアリングプラクティスを評価して、適切な SLSA 証明レベルを決定しました。SLSA レベルの要件と Adoptium がそれらをどのように満たしているかの詳細を以下に示します。SLSA はまだ「アルファ」状態にあり、特に SLSA レベル 3 と 4 については要件が変更される可能性があることに注意してください。
SLSA レベル 1
Eclipse Temurin の Adoptium ビルドについて以下の要件が達成されており、SLSA レベル 1 を満たす必要な要件を充足しています。
このレベルは、Adoptium のビルドプロセスが完全にスクリプト化および自動化されており、各バイナリのビルドに必要なコンポーネント、ライブラリ、モジュールをリストアップした正式に構造化されたソフトウェア部品表(SBOM)の証明を公開していることを意味します。
- ビルド - スクリプト化されたビルド
-
Eclipse Temurin を生成するすべてのステップは、バージョン管理された Jenkins パイプラインによって定義されており、https://github.com/adoptium/temurin-build[adoptium/temurin-build] リポジトリに保存されたビルドスクリプトを呼び出します。パイプラインとビルドスクリプトは誰でも閲覧・検証可能であり、https://ci.adoptium.net/[Jenkins システム^]の実行は公開精査が可能です。ビルドスクリプトの使用に関するドキュメントは、ビルドリポジトリの readme ファイルに記載されています。
- プロベナンス - 利用可能
-
Adoptium は Eclipse Temurin ビルドのプロベナンスのための SBOM 証明を提供しています。SBOM は OWASP CycloneDX 形式で、各 Temurin リリースアーティファクトとともに利用可能です。
SBOM には、ビルドプロセスで使用されたソースリポジトリタグ、使用されたパラメーターの完全なセット、設定ステップからの出力、その他さまざまな情報など、必要に応じてビルドを再作成するために必要な情報が含まれています。SBOM に含まれる具体的な詳細については 継続的に改善しています。
SLSA レベル 2
Eclipse Temurin の Adoptium ビルドについて以下の追加要件が達成されており、SLSA レベル 2 を満たす必要な要件を充足しています。
このレベルでは、すべてのコードをバージョン管理し、ビルドサービスを使用してビルドを生成・配布するという領域を中心に、ビルドプロセスの改ざん耐性を提供するための追加要件が加わります。
- ソース - バージョン管理
-
Adoptium は OpenJDK Java SE 参照実装のソースコードをローカル GitHub リポジトリ(例:https://github.com/adoptium/jdk17u[adoptium/jdk17u^])にミラーリングしています。ビルドするソースおよび使用するスクリプトへのすべての変更は、GitHub のバージョン管理システムによって追跡されます。これにより、各リビジョンに含まれた変更の履歴が記録されます。各変更には、アップローダーおよびレビュアーの身元、レビューおよび提出のタイムスタンプ、変更の説明・理由、変更内容、親リビジョンが含まれます。すべてのコミッターとレビュアーは強力な認証を受け、すべての貢献者は Eclipse 貢献者契約を締結し遵守する必要があります。
管理下のコードの各不変リビジョンは、GitHub(リポジトリURL + ブランチ/タグ/ref + コミットID)を通じて無期限の存続期間を持つ一意の参照を持ちます。Eclipse Temurin はミラーのタグ付きリビジョンからビルドされ、各リリースのソースアーカイブファイルを利用可能にしています。
- ビルド - ビルドサービス
-
Adoptium のすべてのビルドステップは 独自のマネージド Jenkins ビルドサービスと Eclipse Foundation のコード署名サービス上で実行されます。これらのサービスがビルドを実行し、SBOM を生成し、必要に応じてインストーラーをビルドします。ビルドの出力は Jenkins CI システムによって GitHub リリースリポジトリにアップロードされます。プロセスのいかなる部分も開発者のワークステーション上では実行されません。
ビルドサービスへのアクセスはプロジェクトによって慎重に管理されています。ビルドシステムはセキュリティを損なうことなくコミュニティによる精査を可能にするために、できる限りオープンにされています。
- プロベナンス - 認証済み
-
TODO: プロベナンスの信頼性と完全性はコンシューマーによって検証できます。これはプロベナンスを生成するサービスのみがアクセスできる秘密鍵からのデジタル署名によって行われるべきです。
- プロベナンス - サービス生成
-
Adoptium のすべてのプロベナンスデータは、プロジェクトの継続的ビルドおよびテストシステムによって直接生成されます。サービスユーザーはプロベナンスの内容を注入または変更することはできません。Eclipse Temurin の GNU Privacy Guard(GPG)コード署名は Eclipse コード署名サービスによって生成され、ソフトウェア部品表、暗号ハッシュ、ビルドメタデータなどのその他のプロベナンスデータはプロジェクトビルドシステムによって直接出力されます。
SLSA レベル 3 - 進行中
Eclipse Temurin の Adoptium ビルドについて以下の追加要件のいくつかが達成されています。SLSA レベル 3 の達成に向けて残りの項目の取り組みを継続しています。
- ソース - 18ヶ月以上保持
-
ソースコードおよびその変更履歴へのすべてのリビジョンは、法的要件または Eclipse Foundation ポリシーの要件などの確立された透明なポリシーに従う場合を除き、無期限に保存され削除できません。履歴の変更または削除に対するこのレベルのスーパーユーザー制御は、プロジェクトを代表して Eclipse Foundation によって直接かつ独占的に維持されています。
すべてのコードを GitHub に保存しているため、財団の削除ポリシーに従い二者承認を得た信頼された Eclipse Foundation プラットフォーム管理者による場合を除き、複数人の承認があっても誰も履歴を削除または変更することはできません。このポリシーに関する質問は Eclipse Foundation にお問い合わせください。
- ビルド - コードとしてのビルド
-
ビルドサービスによって実行される Adoptium のビルド定義と構成は、バージョン管理システムに保存されたテキストファイル定義から検証可能に導出されます。
- ビルド - エフェメラル環境
-
コンテナや VM などのエフェメラル環境ビルド(このビルドのためだけにプロビジョニングされ、以前のビルドから再利用されない)が Linux x86、ARM32、aarch64 ビルドに対して実施されています。その他のプラットフォームはプロジェクトで現在取り組み中です。
- ビルド - 分離
-
Adoptium ビルドサービスは、各ビルドステップが以前または同時実行中の他のビルドインスタンスの影響を受けない分離された環境で実行されることを確保します。
プロベナンス署名キーなどのビルドサービスの秘密には、ビルドシステムの外部に保存され別のシステムへのリモート呼び出しによってアクセスされるため、ビルドからアクセスすることはできません。同時に実行される 2 つのビルドが互いに影響を与えることはできません。各ビルドステップは Jenkins CI システムによってオーケストレーションされた分離されたマシン環境で実行され、各ビルドのステップは管理されたパイプラインの使用を通じて組み立てられます。使用されるビルドキャッシュは、改ざんを防ぐために純粋にコンテンツアドレッサブルです。
1 つのビルドが後続のビルドの環境を持続または影響することができないようにすることに引き続き取り組んでいます。環境の各部分はビルドスクリプトで指定されています。これはあらゆる場所でエフェメラルマシン上でビルドを実行し、結果が同一であることを確認することで保証されます。
- プロベナンス - 偽造不可
-
SBOM プロベナンス情報は、ビルドプロセスによってマシン生成され、改ざんを防ぐために Eclipse Foundation コード署名サービスによって暗号的に署名されているため、サービスユーザーによって偽造することはできません。コード署名サービスは通常のプロジェクトコミッターや Jenkins ユーザーはアクセスできません。
SLSA レベル 4 - 進行中
Adoptium は SLSA レベル 4 の要件を満たすための項目に取り組んでいます。これらは 課題追跡システムを通じて追跡されており、それらのタスクへの貢献を歓迎します。


