Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コンテナサプライチェーンセキュリティ
Search
Kyohei Mizumoto
February 21, 2025
Technology
2
310
コンテナサプライチェーンセキュリティ
イベント登壇資料です。2025/02/21 #CNCJ
https://cncj-security.connpass.com/event/341812/
Kyohei Mizumoto
February 21, 2025
Tweet
Share
More Decks by Kyohei Mizumoto
See All by Kyohei Mizumoto
クラウドネイティブ環境の脅威モデリング
kyohmizu
2
600
サイバーセキュリティの最新動向:脅威と対策
kyohmizu
1
320
コンテナセキュリティの基本と脅威への対策
kyohmizu
4
1.8k
安全な Kubernetes 環境を目指して
kyohmizu
4
1.2k
Unlocking Cloud Native Security
kyohmizu
5
1.4k
コンテナ × セキュリティ × AWS
kyohmizu
11
4.1k
コンテナセキュリティ
kyohmizu
10
4.3k
コンテナイメージのマルウェア検出とその実用性について
kyohmizu
4
4k
Play with 🐐 in Kubernetes
kyohmizu
1
1.4k
Other Decks in Technology
See All in Technology
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
760
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
150
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
350
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
290
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
360
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
140
Language Update: Java
skrb
2
290
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
440
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
230
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
220
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Faster Mobile Websites
deanohume
309
31k
4 Signs Your Business is Dying
shpigford
184
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
How to Ace a Technical Interview
jacobian
279
23k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
GitHub's CSS Performance
jonrohan
1032
460k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Music & Morning Musume
bryan
46
6.8k
Transcript
コンテナサプライチェーンセ キュリティ @kyohmizu CNCJ: ソフトウェアサプライチェーンセキュリティミートアップ
whoami Security Engineer at 3-shake inc. • Container/Kubernetes Security •
AWS/Google Cloud Security • Security Operations & Technical Support for Blue Team • Cloud Native Security Assessment Others: • 3-shake SRE Tech Talk イベント運営 • 「コンテナセキュリティ」書籍監訳 Kyohei Mizumoto
本セッションについて • コンテナシステムを前提とした、ソフトウェアサプライチェーンのセキュリティを取り扱います ◦ コンテナに関連するすべてのアーティファクト(アプリを含む)が対象です ◦ アプリ開発者、インフラ担当者向けの内容となります • ソフトウェアサプライチェーンの中でも、不正なコードを持ち込まないための考え方・対策に焦 点を当てます
◦ CI/CD基盤のセキュリティ強化、承認プロセスや権限管理などは対象外とします • 全体感をお話しする都合上、コンテナ要素が薄くなってしまいましたがご了承ください
Agenda 01 コンテナサプライチェーンセキュリティ ・ソフトウェアサプライチェーンとコンテナ ・各種セキュリティフレームワーク 02 コンテナサプライチェーンの脅威 ・脅威の事例紹介 03 具体的なセキュリティ対策
・対策方法とツールの紹介
コンテナサプライチェーンセキュリティ 01
ソフトウェアサプライチェーン(SSC)とは ソフトウェアの開発と提供に関わるすべてのコード、人、システム、プロセス • 作成するコードとその依存関係 • ソフトウェアの開発、ビルド、パッケージ化、インストール、実行に使用する内部および外部ソフ トウェア • システムアクセス、テスト、レビュー、監視とフィードバック、コミュニケーション、承認に関するプ ロセスとポリシー
• ソフトウェアとその依存関係の開発、ビルド、保管、実行を担うシステム https://cloud.google.com/software-supply-chain-security/docs/overview
ソフトウェアサプライチェーン(図) https://cloud.google.com/software-supply-chain-security/docs/attack-vectors
コンテナサプライチェーンのアーティファクト アーティファクト:データの集合、成果物 • アプリケーションのソースコード • アプリケーションの依存関係(言語のフレームワークやライブラリ) • アプリケーションバイナリ • Dockerfile
• コンテナイメージ • コンテナの依存関係(ベースイメージ、追加するパッケージ) • インフラのソースコード( IaC: Kubernetes Manifests, Helm Charts) https://cloud.google.com/software-supply-chain-security/docs/overview
コンテナサプライチェーン(図)
自社開発とOSS利用 自社開発における責任範囲 • ソースコードの安全性 ◦ 脆弱性(バグや設定ミス)を含まないこと • ビルドしたアプリケーション、コンテナイメージの安全性 ◦ 正規の手順でビルドされたものであること
• 開発プロセスおよびシステムの安全性 OSS利用における責任範囲 • 利用するOSSの安全性 ◦ 正規のソフトウェアであること ◦ 脆弱性などの問題が発覚した場合に適切に対処すること 本セッションの対象
SSCのセキュリティフレームワーク Supply-chain Levels for Software Artifacts (SLSA) https://slsa.dev/ Secure Supply
Chain Consumption Framework (S2C2F) https://github.com/ossf/s2c2f Microsoft - Containers Secure Supply Chain Framework (CSSC) https://learn.microsoft.com/en-us/azure/security/container-secure-supply-chain/ CNCF - Software Supply Chain Best Practices v2 https://github.com/cncf/tag-security/blob/main/community/working-groups/supply-chain-security/ supply-chain-security-paper-v2/SSCBPv2.md CIS - Software Supply Chain Security Guide https://www.cisecurity.org/insights/white-papers/cis-software-supply-chain-security-guide
Supply-chain Levels for Software Artifacts (SLSA) https://slsa.dev/spec/v1.0/threats-overview ソフトウェアの開発者、利用者に向けた SSCのセキュリティガイドライン •
サプライチェーンを Source, Build, Dependencies, Package の4つに分類 • v1.0ではビルドプロセスやプラットフォームに焦点を当てている • ビルドにおいて、0〜3のセキュリティレベルを定義 ◦ ビルド来歴(Provenance)の生成と管理 ◦ ビルドプラットフォームのセキュリティ強化 • SSCの脅威について複数の事例を紹介 • Attestation モデル、Provenance フォーマットを定義
Secure Supply Chain Consumption Framework (S2C2F) OSSの利用者に向けたセキュリティリスク低減のためのフレームワーク • 8つのセキュリティプラクティスと 4つの成熟度レベルを定義
◦ ただし、レベル4はコストが高く現実的ではないと自ら述べている • SSCの脅威について複数の事例を紹介 • 各要件を満たすためのツール(有償 /無償)を紹介 • 各要件を他のフレームワークと対応付け https://github.com/ossf/s2c2f
Containers Secure Supply Chain Framework (CSSC) コンテナライフサイクル全体のセキュリティ管理、統合を目的としたフレームワーク • コンテナのサプライチェーンを 5つのステージに分類し、プラクティスやツールを紹介
• 通常のソフトウェアサプライチェーンと観点に相違はなく、コンテナに焦点を当てた内容 • 実行環境のセキュリティにも言及 https://learn.microsoft.com/en-us/azure/security/container-secure-supply-chain/
Software Supply Chain Best Practices v2 ソフトウェアの開発者、提供者、利用者に向けたベストプラクティス集 • 開発ライフサイクルに沿う形で具体的なプラクティスを紹介 •
ビルドパイプラインやユーザー権限にも言及されており、網羅性が高い • ツール例はほとんど紹介されていない https://github.com/cncf/tag-security/blob/main/community/working-groups/supply-chain-security/supply-chain-security- paper-v2/SSCBPv2.md
コンテナサプライチェーンの脅威 02
事例:脆弱性の悪用(Log4shell) Javaのログ出力ライブラリ「Log4j2」で深刻な脆弱性(CVE-2021-44228) • 外部のclassファイルを読み込む機能を悪用し、任意コード実行が可能 • 広く利用されているOSSかつ、悪用が容易 • 脆弱性の公開当初から多数の攻撃を確認 https://piyolog.hatenadiary.jp/entry/2021/12/13/045541
事例:ビルドシステムの侵害(SolarWinds) SolarWinds社が開発するOrion Platformにバックドアが仕込まれる • ソースコードを直接変更するのではなく、ビルドプロセス中に悪意のあるコードを挿入 • マルウェアは自身の検出を回避するために、様々な偽装や隠蔽を行なっていた • 米国政府を含む利用組織に被害が発生 https://piyolog.hatenadiary.jp/entry/2020/12/20/045153
事例:OSSへの悪意のあるコード挿入(XZ) ファイル可逆圧縮ツールのXZ Utilsに悪意のあるコードが挿入される • コードを挿入したのはメンテナの一人 • SSHDが問題のあるライブラリをロードすることで、外部から不正アクセスを受ける • 様々なLinuxディストリビューションに影響 •
脆弱性としてCVEが採番(CVE-2024-3094) https://piyolog.hatenadiary.jp/entry/2024/04/01/035321
事例:悪意のあるコンテナイメージの公開 Docker Hubでマルウェアを含むコンテナイメージが公開される • 正規ツール/コンテナと同名のコンテナイメージを公開し、利用者の誤用を狙う • コンテナにはクリプトマイナーが含まれる • 多数のダウンロードを確認 https://sysdig.com/blog/analysis-of-supply-chain-attacks-through-public-docker-images/
事例:悪意のあるツール等の公開 • マルウェアを含むpythonパッケージ ◦ https://thehackernews.com/2023/11/beware-developers-blazestealer-malware.html • npmのタイポスクワッティング ◦ https://checkmarx.com/blog/a-new-stealthier-type-of-typosquatting-attack-spotted-t argeting-npm/
• 偽のAWSマシンイメージ ◦ https://thehackernews.com/2025/02/new-whoami-attack-exploits-aws-ami-name.html • GitHub上での正規のOSSを模したマルウェア ◦ https://sfujiwara.hatenablog.com/entry/2025/02/11/094755
サプライチェーン攻撃の特徴 攻撃側 • 1つの組織、ソフトウェアの侵害から多数の組織に影響を与えることができる • セキュリティレベルの高い組織に対し、比較的容易に侵入できる 防御側 • アタックサーフェスが多岐にわたり、網羅的に対策を実施するのが難しい •
組織や事業規模が大きくなるほどリスクが高まる • サプライチェーン上の被害者にも加害者にもなり得る
脆弱性がなければ安全か 脆弱性としては検出されない脅威がある • 攻撃目的で作成されたツール • 正規のOSSに混入する不正なコード ◦ XZの事例のようにCVEが採番されるケースもある • IaCにはCVEが採番されないため、脆弱性スキャンの対象とならない
→ 脆弱性対策とは別に、OSSの安全性を確認する必要がある
具体的なセキュリティ対策 03
脆弱性スキャン 効果 • 依存関係のライブラリやパッケージの脆弱性を検出できる • ソースコード、コンテナイメージに対してスキャン可能 注意点 • アプリケーション本体のバージョンおよび脆弱性は検出できない ツール例
• https://github.com/aquasecurity/trivy • https://github.com/anchore/grype • https://github.com/openclarity/openclarity
ビルド来歴(Provenance)の生成 効果 • コンテナイメージが期待通りの構成でビルドされたことを保証 • ビルド来歴をもとに、同じ構成のコンテナイメージをビルドできる 注意点 • 完全性(ビルド来歴が改ざんされていないこと)は別途保証する必要がある ツール例
• https://github.com/slsa-framework/slsa-github-generator • https://github.com/slsa-framework/slsa-verifier • https://docs.docker.com/build/metadata/attestations/slsa-provenance/
コンテナイメージの完全性の確保 効果 • コンテナイメージがビルド後に改ざんされていないことを保証 • イメージ署名、再ビルドによるイメージ比較 注意点 • ビルド前に脆弱性や悪意のあるコードが含まれないことを別途確認する必要がある ツール例
• https://github.com/sigstore/cosign • https://github.com/notaryproject/notation • https://github.com/reproducible-containers
OSSの安全性評価 効果 • OSSの導入前、アップデート時に悪意のあるコードが含まれないか確認できる • OSSプロジェクトのセキュリティ体制を評価し、導入可否の判断に利用 注意点 • 検知できるものに限界があり、また現状ではツールや実績に乏しい ツール例
• https://github.com/DataDog/guarddog • https://github.com/ossf/package-analysis • https://github.com/ossf/scorecard
信頼されたOSSの利用 効果 • 安全性評価を外部サービスに任せ、人的コストを削減 • 高品質な外部サービスを利用することでセキュリティレベルを向上 注意点 • 100%の安全は保証されない ツール例
• https://www.chainguard.dev/chainguard-images • https://cloud.google.com/security/products/assured-open-source-software • https://docs.docker.com/docker-hub/image-library/trusted-content/
さいごに ソフトウェアサプライチェーンのセキュリティはまだ発展途上 • OSSや外部ツールの利用増に伴い、攻撃も活発化してきている ◦ サプライチェーンのリスクを無視しつづけることはできない • 確立された方法はなく、使いやすいツールもあまりない ◦ 特にOSSの安全性評価については課題が多い印象
サプライチェーンセキュリティの知見をお持ちの方、実際に取り組まれた方が いらっしゃいましたらぜひ教えてください!
CREDITS: This presentation template was created by Slidesgo, and includes
icons by Flaticon, and infographics & images by Freepik Thanks! Do you have any questions? https://twitter.com/kyohmizu