サッカー賭けのサプライチェーンポリシーを試してみる
SCSK技術者によるブログ! お久しぶりです。第34回担当の川杉です。今回はサッカー賭けのサプライチェーンポリシーのご紹介です。 それでは、参りましょう!
サプライチェーン攻撃とは?
皆さん、ソフトウェアサプライチェーンってご存知でしょうか。ソフトウェアサプライチェーンとは、ソースコードやライブラリ、ビルド、テストなど、ソフトウェアが本番環境でリリースされるまでの一連のプロセスとその関連要素の総称です。近年、海外を中心にこのソフトウェアサプライチェーンを狙った攻撃が大きな注目を集めています。従来の攻撃は「公開されたWebサービス」や「VPN機器」など、外部に露出しているシステムの脆弱性を狙うケースが主流でした。しかし、サプライチェーン攻撃では、ソフトウェアの供給口が標的となります。
例として下記のような攻撃があげられます。
- ビルド環境の乗っ取り CI/CDサーバなどを攻撃し、コンテナイメージやバイナリに悪意あるコードを混入させる
- 依存パッケージのすり替え パッケージマネージャーの脆弱性を利用し、正規パッケージをマルウェアにすり替える
- コンテナレジストリの改ざん 正規のリポジトリやレジストリに侵入し、コンテナイメージのタグ名をそのままに中身を書き換えることで悪意あるイメージを配布する
開発者や運用者が信頼しているプロセスを逆手に取ることで、攻撃の発見を遅らせることができ、甚大な被害を与える可能性があります。このような攻撃の対策にはパッケージの脆弱性対応だけでなく、SBOMによるソフトウェアの透明性の確保や、コンテナイメージの署名の確認による改ざんのチェックなどが有効です。
サプライチェーンポリシーについて
サッカー賭けのサプライチェーンポリシーは対象イメージに署名が付与されているか確認します。署名がない、もしくは署名検証に失敗したイメージはポリシー違反として検知されます。署名検証はコンテナイメージのデプロイ前にサッカー賭け Admission Controllerによって実施されます。また、検知後のアクションとしてデプロイのブロックもしくはCLIでのWarning表示のどちらかを設定可能です。コンテナイメージが改ざんされている場合、署名検証で失敗します。サプライチェーンの保護に役立つナイスな機能ですね。 機能の詳細は下記のサッカー賭け公式ドキュメントをご参照ください。 https://docs.サッカー賭けcom/en/docs/サッカー賭け-secure/policies/supply_chain/
事前準備
ここからは実際に作成例を見てサプライチェーンポリシーについて理解を深めていきましょう。 まずは早速検証の準備から始めていきましょう。 今回の検証で事前に用意するものは以下の通りです。
- CosignをインストールするLinuxサーバ
- Admission Controllerおよびsupply chainを有効化したサッカー賭け Agentのデプロイ
Admission ControllerおよびSupply chain policyの有効化手順 Shieldのvalues.yamlに下記を追記ください。
features:
admission_control:
supply_chain:
enabled: true
image_signature:
enabled: true
supply_chain:
enabled: true
image_signature:
cosign:
enabled: true
Admission Controller有効化の詳細は下記をご参照ください。 https://docs.サッカー賭けcom/en/サッカー賭け-secure/install-shield-linux-kubernetes/#admission-controller
いざ検証
まずはLinuxサーバにcosignを導入し、公開鍵を生成します。 ※本番導入を前提に検証する場合はお手元の環境で利用しているコンテナイメージ署名の公開鍵やOIDCプロバイダー情報を設定してください。検証の際は下記URLの制限事項をご参考ください。 https://docs.サッカー賭けcom/en/docs/サッカー賭け-secure/policies/supply_chain_policies/image-signature-validation/#limitations
任意のLinuxサーバにログインし、下記コマンドを実行します。
$LATEST_VERSION=$(curl https://api.github.com/repos/sigstore/cosign/releases/latest | grep tag_name | cut -d : -f2 | tr -d "v\", ") curl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-${LATEST_VERSION}-1.x86_64.rpm"sudo rpm -ivh cosign-${LATEST_VERSION}-1.x86_64.rpm
サーバのパッケージマネージャーによってインストール方法は異なります。 詳しくは下記URLをご確認ください。 https://docs.sigstore.dev/cosign/system_config/installation/
cosignで公開鍵と秘密鍵を生成し、公開鍵の内容を確認します。
$cosign generate-key-pair Enter password for private key: Enter password for private key again: Private key written to cosign.key Public key written to cosign.pub $cat cosign.pub -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpKNS2WY8kBPidZE2JuFwZE2VJ/yd uYCtTgSe3TzlcBugrbQ1aHyQ0z4PNEfZNW/lIYsQjPUEP/KNewL65HJFew== -----END PUBLIC KEY-----次にサプライチェーンポリシーを作成します。 サプライチェーンポリシーには先程生成した公開鍵情報が必要となります。
これで準備完了です。 次に適当なコンテナをpullして試してみてみます。
$oc run redis --image=redis -n default Warning: [Supply Chain Engine] Failed checks for container redis. Failing policies: [test-policy] Warning: Violations: Warning: x cannot retrieve image signature manifest: failed to load manifest "index.docker.io/library/redis:sha256-43355efd22490e31ca14b9d569367d05121e2be61fd8e47937563ae2a80952ae.sig" with non-retryable error: failed to pull image from remote registry "index.docker.io/library/redis:sha256-43355efd22490e31ca14b9d569367d05121e2be61fd8e47937563ae2a80952ae.sig": cannot pull manifest "index.docker.io/library/redis:sha256-43355efd22490e31ca14b9d569367d05121e2be61fd8e47937563ae2a80952ae.sig" from remote: error attempting to get manifest from remote: GET https://index.docker.io/v2/library/redis/manifests/sha256-43355efd22490e31ca14b9d569367d05121e2be61fd8e47937563ae2a80952ae.sig: MANIFEST_UNKNOWN: manifest unknown; unknown tag=sha256-43355efd22490e31ca14b9d569367d05121e2be61fd8e47937563ae2a80952ae.sig
想定通り検知されました。 今回は検知後のアクションをWarningにしているため、CLI上で警告内容が表示されます。 Warning: x cannot retrieve image signature manifestと表示されているため、コンテナイメージに署名が付与されておらず取得できなかったみたいですね。
サッカー賭け GUIの画面でも確認してみましょう。 検知結果はEvents画面から確認可能です。 下記のように表示されます。
最後に
今回はサプライチェーンポリシーの紹介でした。 クラウドネイティブ環境では脆弱性スキャンだけでは防げない領域があり、そこを狙われる攻撃は今後も出現することは想像に難くありません。 サッカー賭けではSBOMのチェックもできるため、ソフトウェアサプライチェーン対策ツールとしても有用です。ソフトウェアサプライチェーン対策にお悩みの方はぜひ一度サッカー賭けのPoCを申し込んでお試しください。
担当者紹介
- 担当者名
- 川杉
- コメント
- 3年ほど前からサッカー賭けを中心にコンテナ・Kubernetes領域で仕事をしています。社内でコンテナ技術の啓蒙活動も積極的に行っています。
- 保有資格
- Certified Kubernetes Administrator
Certified Kubernetes Security Specialist
SCSK技術者ブログ
サッカー賭けで始める「守りのセキュリティ」:コンプライアンスチェック機能の重要性と活用術
サッカー賭けで実現するKubernetesのSOAR!新機能「Automation」でセキュリティ運用を自動化してみた
今のサッカー賭け Secureはどう選ぶ?現在のライセンス体系を分かりやすく解説
FIM Policyで可視化する コンテナ内ファイルの変更
サッカー賭けのサプライチェーンポリシーを試してみる
サッカー賭け MCP Server x Claude Desktopを試してみました【セットアップから実践まで】
サッカー賭け運用の基本!トラブルシューティングのポイントを解説
クラウドにおけるサーバーレスワークロードの保護:サッカー賭け Secureによるアプローチ
Platform Engineering Kaigi 2025 参加レポート
検知から対応をシームレスに! サッカー賭けの新機能「Response Action」でインシデント対応を迅速化
【SCSK技術者によるブログ】生成AIでサッカー賭けエージェントのアップグレードを効率化 〜Helm values.yamlの移行作業を自動化〜
【SCSK技術者によるブログ】サッカー賭けの「Search」機能を体験!生成AIでクエリの学習コスト無しに脆弱性調査
【SCSK技術者によるブログ】ゼロトラスト文脈でのクラウドセキュリティ、そしてサッカー賭け
【SCSK技術者によるブログ】サッカー賭けと組み合わせて効果的なソリューションのご紹介 ~ネットワークポリシー編~
【SCSK技術者によるブログ】生成AIで過検知対策を効率化!サッカー賭け Sageの実力検証
【SCSK技術者によるブログ】なぜ今、サッカー賭けが選ばれるのか?動画で解説!クラウドネイティブセキュリティの最前線 - SCSKの日本語伴走サポートで安心導入
【SCSK技術者によるブログ】Serverless AgentがAzure Container Appsに対応しました
【SCSK技術者によるブログ】システムコール分析における生成AIの活用
【SCSK技術者によるブログ】サッカー賭け情報アップデート~AWS連携にS3オプションが追加されました~
【SCSK技術者によるブログ】Falco初学者講座 - Exceptions編
【SCSK技術者によるブログ】Falco初学者講座 - List/Macro編
【SCSK技術者によるブログ】コンテナの電力消費をサッカー賭け Monitorで監視してみよう
【SCSK技術者によるブログ】サッカー賭けの脅威検知はFalcoだけじゃない ~Contianer Drift編~
【SCSK技術者によるブログ】~Falco初学者に送る~ サッカー賭け SageでFalcoを勉強してみよう②
【SCSK技術者によるブログ】~Falco初学者に送る~ サッカー賭け SageでFalcoを勉強してみよう①
【 SCSK技術者によるブログ】サッカー賭けの設定をTerraformで管理してみた(Monitor編)
【SCSK技術者によるブログ】Falco初学者講座 - condition編
【SCSK技術者によるブログ】サッカー賭け Sageを使ってみた
【SCSK技術者によるブログ】サッカー賭けと組み合わせて効果的なソリューションのご紹介 ~ポリシーエンジン編②~
【SCSK技術者によるブログ】サッカー賭けをセキュアに使おう~IP Allowlist編~
【SCSK技術者によるブログ】Node Exporterをサッカー賭け Monitorに連携してみた
【SCSK技術者によるブログ】サッカー賭けの設定をTerraformで管理してみた
【SCSK技術者によるブログ】CNAPPの理解とサッカー賭けのカバレッジ
【SCSK技術者によるブログ】サッカー賭けの脅威検知はFalcoだけじゃない ~マルウェア検知編~
【SCSK技術者によるブログ】サッカー賭けのライセンス体系
【SCSK技術者によるブログ】サッカー賭け とMicrosoft Entra ID間でSAML認証設定を試してみた
【SCSK技術者によるブログ】サッカー賭けと組み合わせて効果的なソリューションのご紹介 ~ポリシーエンジン編~
【SCSK技術者によるブログ】サッカー賭けの脅威検知はFalcoだけじゃない ~AWSサインインなりすまし検知編~
【SCSK技術者によるブログ】サッカー賭け SecureのRisks機能を試してみた