SLSA フレームワークとは? - サプライチェーンの完全性のためのレベル
SLSA(Supply-chain Levels for Software Artifacts)とは、build プロセスがどれだけ信頼できるかを記述する、段階的なセキュリティレベルのフレームワークです。
SLSA は「サルサ」と発音され、チームが安全なサプライチェーンへ向かって登るはしごを提供します。曖昧な「もっと安全に」ではなく、具体的なレベルを定義し、各レベルが、artifact がどう build されるか、その出所がどう記録されるか、プロセスがどれだけ改ざんに強いかについての要件を追加します。これにより、サプライチェーンセキュリティが、目標にでき監査もできるものになります。
SLSA が対処する問題
ほとんどのソフトウェアは自動化されたパイプラインによって build され、攻撃者はソースコードよりもそうしたパイプラインをますます狙っています。SLSA は build の完全性に焦点を当てます。artifact が、期待されるソースから期待されるプロセスによって、途中の改ざんなしに build されたことを証明するのです。
レベル
- レベル 1: build がスクリプト化され、provenance を生成する。
- レベル 2: provenance が、ホステッドで認証された build サービスによって署名される。
- レベル 3: build が、改ざんに強い、強化・分離されたプラットフォーム上で実行される。
- 上位レベルは、再現性と分離のより強い保証を追加する。
中心にある provenance
すべての SLSA レベルは provenance の上に築かれます。artifact がどう生成されたかについての検証可能なメタデータです。上位レベルは、provenance が署名されること、そして build 環境自体が転覆させにくいことを要求します。
チームはどう採用するか
チームは通常、CI で provenance を生成することでレベル 1 から始め、次にそれを署名し、マネージドで分離されたプラットフォーム上で build を実行することで上へ進みます。各ステップが、偽造または改ざんされた artifact をリリースに紛れ込ませることをより難しくします。
build プラットフォームが重要になる場面
上位の SLSA レベルは、攻撃者が容易に改ざんできない build 環境を要求します。強化され、分離され、エフェメラルな環境です。各 job に新しく分離された環境を与えるマネージド runner(Latchkey のような)は、SLSA が上位レベルで期待する分離と完全性に沿っています。
重要なポイント
- SLSA は、ソフトウェアサプライチェーンの完全性のための段階的なレベルのフレームワークである。
- 各レベルは、provenance、署名、build の分離に関する要件を追加する。
- provenance と、強化・分離された build プラットフォームが、上位レベルを支える。