テックカリキュラム

SLSA(サプライチェーン成熟モデル) ── ソフトウェア供給網を守るセキュリティ標準

SLSA(サプライチェーン成熟モデル) ── ソフトウェア供給網を守るセキュリティ標準

はじめに

近年のセキュリティインシデントの多くは、アプリケーションそのものではなく、ソフトウェアサプライチェーンを狙った攻撃です。

  • 依存パッケージの改ざん
  • CI/CDパイプライン侵害
  • ビルド成果物のすり替え

こうしたリスクに対抗するために登場したのが、SLSA(Supply-chain Levels for Software Artifacts)です。

SLSAは、ソフトウェアの信頼性を段階的に高めるための成熟度モデルです。


1. SLSAとは?

SLSAはGoogle主導で提唱された、ソフトウェアサプライチェーンのセキュリティフレームワークです。

目的

  • ソフトウェアの出所を証明する
  • 改ざんを防ぐ
  • 再現可能なビルドを実現する

2. SLSAレベル(1〜4)

レベル概要
SLSA 1ビルドプロセスの記録(ログあり)
SLSA 2改ざん防止されたビルド環境
SLSA 3信頼されたビルドサービス
SLSA 4完全な再現性・検証可能なビルド

3. 各レベルの詳細

SLSA Level 1

  • ビルドプロセスの可視化
  • ログ保存

SLSA Level 2

  • CI/CDの認証(GitHub Actionsなど)
  • ビルド定義のバージョン管理

SLSA Level 3

  • 改ざん不可能なビルド環境
  • 署名付きビルド

SLSA Level 4

  • 再現可能ビルド(Reproducible Builds)
  • ソースと成果物の完全一致検証

4. SLSAとSigstoreの関係

SLSAの実装において重要なのがSigstoreです。

SLSA要件Sigstore対応
署名cosign
証明書Fulcio
透明ログRekor

5. SLSA準拠CI/CDアーキテクチャ

 Source(Git) ↓ CI(GitHub Actions) ↓ Build(再現可能) ↓ Sign(cosign) ↓ Provenance生成 ↓ Verify(Kubernetes) 

6. Provenance(証明情報)

SLSAの核心は「Provenance(来歴)」です。

{ "builder": "GitHub Actions", "source": "repo URL", "commit": "abc123", "artifact": "image digest" }

この情報を検証することで信頼性を担保します。


7. Kubernetesでの活用

SLSAはKubernetesと組み合わせることで真価を発揮します。

  • Admission Controllerで署名検証
  • 未署名イメージの拒否
  • Provenanceチェック

8. 実務での導入ステップ

Step1

CI/CDログの保存(Level 1)

Step2

OIDC認証導入(Level 2)

Step3

Sigstore署名(Level 3)

Step4

再現可能ビルド(Level 4)


9. よくある課題

  • 再現可能ビルドが難しい
  • 開発フローが複雑化
  • ツール統合の難易度

10. ベストプラクティス

  • 段階的導入(Level 1→3)
  • Sigstoreを標準採用
  • CI/CDと完全統合

まとめ

  • SLSAはサプライチェーンセキュリティの標準
  • Level 3以上で実用レベル
  • Sigstoreと組み合わせることで実現可能

これからの時代、「信頼できるビルド」だけが本番に入るのが前提になります。