【スルサ】

SLSA(サプライチェーンレベル) とは?

💡 コードの出どころを証明する、ソフト信頼の通知表
📌 このページのポイント
SLSA:ビルドの安全性を段階的に証明する ソースコード Git リポジトリ ビルドシステム CI/CD パイプライン 成果物 バイナリ / コンテナ 来歴(Provenance) SLSAレベル Level 1: ビルド手順の文書化 Level 2: 来歴の自動生成 Level 3: 隔離ビルド環境 レベルが上がるほどサプライチェーン攻撃への耐性が高まる
SLSAのイメージ:ビルドの来歴を記録し、レベルで安全性を評価
ひよこ ひよこ

SLSAって何?

ペンギン先生 ペンギン先生

ソフトウェアのビルドや配布プロセスがどれだけ安全かを評価するフレームワークだよ。「スルサ」と読むんだ。Googleが提唱してOpenSSFという業界団体が管理しているよ。

ひよこ ひよこ

なんで必要なの?

ペンギン先生 ペンギン先生

2020年のSolarWinds事件みたいに、ソフトウェアのビルドパイプラインに攻撃者が侵入して悪意あるコードを混入させる「サプライチェーン攻撃」が増えているからだよ。自分のコードが安全でもビルドプロセスが汚染されたら危ない、という問題への答えだね。

ひよこ ひよこ

レベル制度ってどういう意味なの?

ペンギン先生 ペンギン先生

Level 1から3まで段階があって、数字が大きいほどより厳しい要件を満たしているよ。Level 1はビルド手順を文書化する程度だけど、Level 3になると改ざん防止された専用の隔離環境でビルドすることが求められるんだ。

ひよこ ひよこ

「来歴(provenance)」って何のこと?

ペンギン先生 ペンギン先生

ビルドの出どころ情報のことだよ。「このソフトウェアは、このリポジトリのこのコミットを、このビルドシステムでビルドした」という記録を署名付きで残すんだ。改ざんされていないことを第三者が検証できる証拠になるね。

ひよこ ひよこ

実際に使うにはどうするの?

ペンギン先生 ペンギン先生

GitHub Actionsなら公式のSLSAジェネレーターアクションがあって、ビルド時に自動で来歴ファイルを生成してくれるよ。npmやGoなどのパッケージエコシステムでもSLSA準拠の来歴を提供する動きが広がっているね。

ひよこ ひよこ

全部のソフトウェアがLevel 3を目指すべきなの?

ペンギン先生 ペンギン先生

必ずしもそうじゃないよ。重要なインフラや広く使われるOSSライブラリはLevel 3が望ましいけど、社内ツールや影響範囲が小さいものはLevel 1〜2でも実用十分だね。リスクに見合ったレベルを選ぶのが現実的な使い方だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SLSA」って出てきたら「ソフトウェアのビルド安全性を証明するレベル制度」と思えればだいたいOK!
📖 おまけ:英語の意味
「Supply chain Levels for Software Artifacts」 = ソフトウェア成果物のサプライチェーンレベル
💬 「スルサ(SLSA)」と読むよ。Googleが2021年に提唱し、OpenSSFが管理する業界標準フレームワークだよ
← 用語集にもどる