【スルサ】
SLSA(サプライチェーンレベル) とは?
💡 コードの出どころを証明する、ソフト信頼の通知表
📌 このページのポイント
- Level 1〜3の段階的な要件でサプライチェーンの安全性を高める
- ビルドの来歴(provenance)を記録・検証することが核心
- SolarWinds攻撃などのサプライチェーン侵害への対策として注目
- GitHub ActionsやSlsaなどCI/CDツールへの統合が進んでいる
SLSAって何?
なんで必要なの?
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が管理する業界標準フレームワークだよ