Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

コンテナセキュリティの勘所

yasufumic
December 01, 2022

 コンテナセキュリティの勘所

コンテナでのアプリケーション開発花盛りの昨今、セキュリティの不安はいつでもついて回ります。 このセッションでは、「コンテナセキュリティの勘所」と題して、Kubernetes/OpenShiftといったコンテナ実行環境のセキュリティについて、 その概要をお伝えします。また、話題の認定資格 CKS(Certified Kubernetes Security)についても紹介します。

yasufumic

December 01, 2022
Tweet

Other Decks in Technology

Transcript

  1. © JTP Co., Ltd. All Rights Reserved. 千⽥ 泰史 2022/11/30

    コンテナセキュリティの勘所 JTP株式会社 技官、エバンジェリスト
  2. © JTP Co., Ltd. All Rights Reserved. きょうの⽬標 • コンテナとKubernetesとOpenShiftのおさらいをする

    • コンテナセキュリティの範囲を知る • コンテナセキュリティのリスクと脅威を知る • コンテナセキュリティガイドラインを知る • コンテナセキュリティの代表的なツールを知る • コンテナセキュリティについて網羅的に学習する⽅法を知る 2
  3. © JTP Co., Ltd. All Rights Reserved. 会 社 名

    本 社 所 在 地 設 ⽴ 従 業 員 事 業 内 容 JTP株式会社 東京都品川区北品川4-7-35 御殿⼭トラストタワー 1987年(昭和62年)10⽉31⽇ 435名 海外ITメーカー教育・保守・運⽤等 アウトソーシング事業 海外医療機器の法規制対応・販売・保守 ⼈⼯知能サービス開発 IBM Silver Business Partner AWS アドバンスドコンサルティングパートナー LINE 公式パートナー SoftBank ONESHIP Partner 認 定 パ ー ト ナ ー 上 場 市 場 東証JASDAQスタンダード 証券コード2488
  4. © JTP Co., Ltd. All Rights Reserved. 当社の強み Cloud by

    default Clould-First Hybrid-Cloud Cloud-Centric Multi-Cloud K8s & OpenShift 仮想化 2015 2018 2021~ 2020 AWS祭り ソリューションアーキテクト ・アソシエイト 100名 ・プロフェッショナル 20名 ・CKA 100名 コンテナ JTPは「テクノロジードリブン」な会社です マルチクラウド ・クラウド資格 200名 Data Engineering
  5. 6 © JTP Co., Ltd. All Rights Reserved. 6 千⽥

    泰史 ち だ や す ふみ JTP株式会社 ⼈財育成コンサルティング事業部、技官、エバンジェリスト 茅ヶ崎⽣まれ、⼤阪神⼾+茨城育ち、横浜在住、⼆児の⽗ l 講師⽣活27年 Red Hat、Microsoft、VMwareほか、ベンダー認定講師 インフラ、ネットワーク、仮想システム、コンテナ l Ansible, K8s, OpenShift, NSX-T, OpenStack, Linux Kernel etc. l 趣味: キャンプ、読書、ゲーム、ボドゲ、料理、カラオケ、🎺 l 特技: 外国語(英仏中露韓)、最近ウクライナ語を始めました l ⽇課: 朝ラン3キロ、懸垂20回、腹筋ローラー50往復、オンライン英会話 About me
  6. © JTP Co., Ltd. All Rights Reserved. コンテナセキュリティー • コンテナライフサイクルの安全性を保全する絶え間ない能動的な営み

    • ITインフラ全体のセキュリティ項⽬のなかの部分集合 • 従来型の(コンテナ以前の)セキュリティ対策+α • 可視化の難しさ • 終了したコンテナの事後分析(Post-mortem analysis)の課題 • 狭義ではコンテナ実⾏環境のセキュリティー • コンテナブレイクアウト • 広義ではクラウドネイティブセキュリティー 7 今回はコチラ!!
  7. © JTP Co., Ltd. All Rights Reserved. 脆弱性の例 • CVE-2022-0185

    • Kernel 内 Filesystem Context脆弱性・・・バッファオーバーフローからの⾮特権ユーザーの権限昇格 • CVE-2022-0492 • cgroupsの脆弱性・・・特権への昇格、コンテナブレイクアウト • CVE-2022-23648 • containerdの脆弱性・・・イメージ設定次第でコンテナホストの読み取り専⽤ファイルに書き込みアクセス 8
  8. © JTP Co., Ltd. All Rights Reserved. コンテナ技術のおさらい • OSやインフラ環境にかかわらずアプリケーションを⼀貫して確実に実⾏することを可能にする

    • コード、ランタイム、ライブラリ、設定など、サービスの実⾏に必要なすべてのものをバンドルした、 ポータブルかつスタンドアロンな実⾏可能パッケージを作成し、共有、実⾏する • 環境を「汚さずに」ソフトウェアを利⽤することができる • カーネルに「コンテナ機能」と呼べるような単⼀の機能が実装されて実現しているわけではない • コンテナOSのカーネルを共有し、そのカーネルの機能によって隔離されて実⾏されるプロセスである • 隔離の⽅式はランタイムによって異なる アプリケーションが依存しているライブラリがあるが、 コンテナは依存関係のあるものをカプセル化して実⾏ ࢿྉ
  9. © JTP Co., Ltd. All Rights Reserved. Kubernetes のおさらい •

    Kubernetes = コンテナにとっての「OS」 • コンテナオーケストレーション基板のデファクトスタンダード • オンプレミス、パブリッククラウド、マルチクラウド対応に対応した、クラウドネイティブアプリケーションの実⾏ 基盤 10 ࢿྉ
  10. © JTP Co., Ltd. All Rights Reserved. OpenShiftのおさらい • Kubernetesを内包するPaaS基板

    • Kubernetesの⼀(いち)ディストリビューション(Red Hat製) • エンタープライズに最適化されたKubernetesベースのコンテナプラットフォーム • ただでさえ便利な Kubernetes上に、Red Hat社が便利な機能を追加してくれていて、そのうえサポートまでしてく れる! 11 ࢿྉ
  11. © JTP Co., Ltd. All Rights Reserved. ⽤語の確認 • 以下のセキュリティ3要素を維持することが⽬標

    • 機密性(Confidentiality) • 完全性(Integrity) • 可⽤性(Availability) • セキュリティリスク • 脅威(Threat) • 漏洩、改竄、破壊などの攻撃、マルウェア、エクスプロイトなど • 脆弱性(Vulnerability) • 脅威を誘引する⽋陥 • 不具合、設計ミス、実装ミス、バグ、設定ミス、弱点など 12
  12. © JTP Co., Ltd. All Rights Reserved. 情報セキュリティの基本戦略 • 多層防御:Defense

    in Depth • 何層にもわたってセキュリティ対策を施すこと • 「セキュリティは破られる」という前提で、複数の⼿法を組み合わせてる • 最⼩特権の原則:Principle of Least Privilege • アクセス元のユーザーやプロセスに必要最低限の権限を付与し、余分な権限を与えないこと • 攻撃対象領域の削減:Attack Surface Reduction • 攻撃対象領域は、攻撃者によって侵害される可能性のある全てのデジタル資産を含む • 攻撃対象領域は、攻撃者が侵⼊する起点のみならず、侵⼊後に踏み台となる機器や、重要なデータの保存場所も含む • 攻撃者が攻撃できる余地、好きをできる限り少なくすること 13
  13. © JTP Co., Ltd. All Rights Reserved. クラウドネイティブセキュリティの “4c”モデル 14

    Cloud Cluster Container Code https://kubernetes.io/ja/docs/concepts/security/overview/ Clusterをデプロイするインフラ Containerを動作させる基盤、オーケストレーター Codeを実⾏するコンテナおよびその実⾏環境 コンテナに含まれるアプリケーション コンテナ環境におけるセキュリティモデルの1つ セキュアコーディング、アプリケーションセキュリティ カーネル資源の分離、制限 クラスタレベルのリソース設定、制限 Namespace/Node/Pod/Volumeの分離、制限 APIサーバー、etcd等の制御プレーンの分離、暗号化 インフラセキュリティ、ネットワークセキュリティ クラウドごとのセキュリティ設定
  14. © JTP Co., Ltd. All Rights Reserved. クラウドネイティブセキュリティの “4c”モデル 15

    Cloud Cluster Container Code https://kubernetes.io/ja/docs/concepts/security/overview/ Clusterをデプロイするインフラ Containerを動作させる基盤、オーケストレーター Codeを実⾏するコンテナおよびその実⾏環境 コンテナに含まれるアプリケーション コンテナ環境におけるセキュリティモデルの1つ セキュアコーディング、アプリケーションセキュリティ カーネル資源の分離、制限 クラスタレベルのリソース設定、制限 Namespace/Node/Pod/Volumeの分離、制限 APIサーバー、etcd等の制御プレーンの分離、暗号化 インフラセキュリティ、ネットワークセキュリティ クラウドごとのセキュリティ設定 • Cloud • クラウドプロバイダー各社のセキュリティベストプラクティス • 物理セキュリティ • ネットワーク、物理サーバー • Cluster • Kubernetesセキュリティベストプラクティス • Namespace / Node / Pod セキュリティ、分離、アクセス制限 • APIサーバー、etcd等コントロールプレーンセキュリティ設定 • Container • コンテナイメージ署名 • コンテナ脆弱性スキャン • コンテナランタイム制御 • Code • コード解析 • ライブラリーの脆弱性チェック • 通信ポートの公開制限、TLS
  15. © JTP Co., Ltd. All Rights Reserved. • Cloud •

    クラウドプロバイダー各社のセキュリティベストプラクティス • 物理セキュリティ • ネットワーク、物理サーバー • Cluster • Kubernetesセキュリティベストプラクティス • Namespace / Node / Pod セキュリティ、分離、アクセス制限 • APIサーバー、etcd等コントロールプレーンセキュリティ設定 • Container • コンテナイメージ署名 • コンテナ脆弱性スキャン • コンテナランタイム制御 • Code • コード解析 • ライブラリーの脆弱性チェック • 通信ポートの公開制限、TLS クラウドネイティブセキュリティの “4c”モデル Cloud Cluster 特に注⽬する部分
  16. © JTP Co., Ltd. All Rights Reserved. コンテナセキュリティのガイドライン NIST 800-SP190

    • National Institute of Standards and Technology(⽶国⽴標準技術研究所)発⾏ • NIST 800-SP190は「Application Container Security Guide」 • 原⽂ https://csrc.nist.gov/publications/detail/sp/800-190/final • IPAによる和訳 https://www.ipa.go.jp/security/publications/nist/ • コンテナ環境に特有のリスクとその対策について記述 17 開発・テスト環境 プロダクション環境 コンテナレジストリー 開発者 管理者 オーケストレーター コンテナ Build Push Run Pull インフラ インフラ ホストOS ホストOS イメージ イメージ コンテナ イメージ コンテナ イメージ コンテナ イメージ コンテナレジストリー イメージ イメージ イメージ
  17. © JTP Co., Ltd. All Rights Reserved. NIST 800-SP190 に⽰されている潜在的リスク

    18 開発・テスト環境 プロダクション環境 コンテナレジストリー 開発者 管理者 オーケストレーター コンテナ Build Push Run Pull インフラ インフラ ホストOS ホストOS イメージ イメージ コンテナ イメージ コンテナ イメージ コンテナ イメージ イメージ イメージ イメージ ・3.1節:イメージリスク ・3.2節:レジストリリスク ・3.3節:オーケストレーターリスク ・3.4節:コンテナリスク ・3.5節:ホストOSリスク ίϯςφ؀ڥͷ͋ΒΏΔͱ͜ΖʹϦεΫ͕͋Δʂ
  18. © JTP Co., Ltd. All Rights Reserved. NIST 800-SP190 に⽰されている潜在的リスク

    19 開発・テスト環境 プロダクション環境 コンテナレジストリー 開発者 管理者 オーケストレーター コンテナ Build Push Run Pull インフラ インフラ ホストOS ホストOS イメージ イメージ コンテナ イメージ コンテナ イメージ コンテナ イメージ イメージ イメージ イメージ ・3.1節:イメージリスク ・3.2節:レジストリリスク ・3.3節:オーケストレーターリスク ・3.4節:コンテナリスク ・3.5節:ホストOSリスク ίϯςφ؀ڥͷ͋ΒΏΔͱ͜ΖʹϦεΫ͕͋Δʂ サプライチェーン攻撃への対策 前提は「信頼できるコンテナイメージ」 そのための考え⽅: Secure By Design DevSecOps シフトレフト(Shift-Left) https://www.ipa.go.jp/icscoe/program/core_human_resource/final_project/security-by-design.html https://www.sqat.jp/tamatebako/7205/
  19. © JTP Co., Ltd. All Rights Reserved. リスクへの対策 項⽬ リスクの例

    対策 イメージ 脆弱性を含むイメージ 悪意のあるイメージ 信頼できないイメージ イメージ内の機密情報 悪⽤されやすいソフトウェア(開発ツール等) 不正な(指定外の)イメージ 脆弱性スキャン 機密データの分離 署名付きイメージ パブリックレジストリ禁⽌ 不要なパッケージの除去/加算アプローチの採⽤ 開発プロセスへのセキュリティ組み込み ベースイメージ、パッケージの継続的な更新 SBoMの利⽤ レジストリ 通信傍受 脆弱性を含むイメージ 不適切なアクセス権 TLS暗号化 脆弱性スキャン機能のあるレジストリの利⽤ アカウント管理の徹底 コンテナ 特権コンテナの利⽤ マルウェアの組み込み、実⾏ ランタイム脆弱性によるコンテナブレイクアウト 特権コンテナの実⾏禁⽌(seccomp / Capabilities / LSM ) rootfsファイルシステムの保護 隔離レベルの異なる適切なコンテナランタイムの選択 (runC, kata containers, gVisor, etc.) オーケストレーター デフォルト設定のまま本番環境を運⽤ 設定ミス 機密情報のトラフィック 適切な設定 適切な運⽤・管理 監視 APIアクセス、アカウント、権限の制限 通信の制限、フィルタリング(netpol / FW / TLS ) ホストOS OSの脆弱性 OSのバグ リソース不⾜ コンテナ⽤OSを利⽤(汎⽤ではなく) Closedなネットワークへの配置 マネージドサービスの利⽤ CIS benchmarkなどの適⽤ 20 SBoM (Software Bill of Materials): ソフトウェアの「部品表」
  20. © JTP Co., Ltd. All Rights Reserved. 攻撃⼿法を知る・・・MITRE ATT&CK •

    MITRE (マイター)は、情報セキュリティ研究の⾮営利団体 https://attack.mitre.org/ • 情報セキュリティの脅威となる攻撃の⼿⼝(Techniques)を観察、収集し、集計し、ナレッジベース化 • ATT&CK = Adversarial Tactics, Techniques, and Common Knowledge 参考:ڞ௨੬ऑੑࣝผࢠʢCVE: Common Vulnerabilities and ExposuresʣID Λ࠾൪͍ͯ͠Δͷ΋͜ͷ MITREͰ͋Δ https://cve.mitre.org/ • コンテナセキュリティを対象として、⽶国Microsoft社が纏め直したものが ”for K8s” → 次⾴ https://www.microsoft.com/en-us/security/blog/2020/04/02/attack-matrix-kubernetes/ (初版) https://www.microsoft.com/en-us/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat- matrix-for-kubernetes/ (改訂版) • 攻撃者が取る⾏動に着⽬し、⼿⼝を分類したもの • 昨今、どのような攻撃が来ているのかが分かる 参考:同様のものとして、Cyber Kill Chainがある https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html 21
  21. © JTP Co., Ltd. All Rights Reserved. 攻撃⼿法を知る・・・MITRE ATT&CK for

    K8s • MITRE (マイター)は、情報セキュリティ研究の⾮営利団体 • 情報セキュリティの脅威となる攻撃の⼿⼝(Techniques)を観察、収集し、集計し、ナレッジベース化している • ATT&CK = Adversarial Tactics, Techniques, and Common Knowledge • これを元に、⽶国Microsoft社は、コンテナセキュリティを主眼として纏め直したものが上記のもの • https://www.microsoft.com/en-us/security/blog/2020/04/02/attack-matrix-kubernetes/ (初版) • https://www.microsoft.com/en-us/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat- matrix-for-kubernetes/ (改訂版) 22 https://www.microsoft.com/en-us/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat-matrix-for-kubernetes/
  22. © JTP Co., Ltd. All Rights Reserved. ガイドラインあれこれ 先に紹介した NIST

    800-SP190 / MITRE ATT&CK に加えて、以下のものも読んでみましょう 23 • CIS Benchmarks https://www.cisecurity.org/benchmark • ⽶国Center for Internet Securityが作成し、公開しているセキュリティベストプラクティス集 • さまざまプラットフォーム、OSのためのバージョンがあり、K8s版を CIS Kubernetes Benchmarkという https://www.cisecurity.org/benchmark/kubernetes • OSSのみならず、クラウド各社マネージドサービス向けのベンチマークもある • OWASP cheat sheets https://cheatsheetseries.owasp.org/ • ⽶国Open Web Application Security Projectが作成し、公開しているセキュリティベストプラクティス集 • OWASP Top 10 https://owasp.org/Top10/ja/ • 同団体が発⾏している、Webアプリケーションセキュリティについてのリスク集 • OWASP K8s Top 10 https://owasp.org/www-project-kubernetes-top-ten/ • NSA CISA Kubernetes Hardening Guide • https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF • ⽶国National Security AgencyおよびCybersecurity and Infrastructure Security Agencyが発⾏するガイダンス • 主に、国家安全保障システムに携わるシステム管理者や開発者が対象 • Kubernetes本家 • https://kubernetes.io/ja/docs/concepts/security/overview/ • https://kubernetes.io/ja/docs/concepts/security/pod-security-standards/ • https://kubernetes.io/blog/2021/10/05/nsa-cisa-kubernetes-hardening-guidance/
  23. © JTP Co., Ltd. All Rights Reserved. CNCF Landscape 25

    https://l.cncf.io Security & compliance は このへんにあります
  24. © JTP Co., Ltd. All Rights Reserved. コンテナセキュリティの認定資格 • Linux

    Foundation 主催の認定資格 • CKA: Certified Kubernetes Administrator • CKAD: Certified Kubernetes Application Developer • CKS: Certified Kubernetes Security Specialist 26 https://training.linuxfoundation.org/ja/certification/certified-kubernetes-security-specialist/
  25. © JTP Co., Ltd. All Rights Reserved. CKS試験の概要 項⽬ 内容

    試験時間 120分間 問題数 20問程度 合格ライン 67% 受験の条件 有効期間内のCKA認定 形式 パフォーマンスベース(監視下でのオンライン、ハンズオン) 有効期間 2年間 受験料 $395 (たまにセールあり) 27
  26. © JTP Co., Ltd. All Rights Reserved. CKS試験の出題範囲と出題割合 • クラスター設定(10%)

    • ネットワーク セキュリティ ポリシーを使⽤してクラスタ レベルのアクセスを制限する • CISベンチマークを使⽤して、Kubernetesコンポーネントのセキュリティ構成を確認する(etcd、kubelet、kubedns、kubeapi) • セキュリティ制御によりIngressオブジェクトを適切に設定する • ノードのメタデータとエンドポイントを保護する • GUI要素の使⽤とアクセスを最⼩化する • デプロイ前にプラットフォーム バイナリを確認する • クラスター強化(15%) • Kubernetes APIへのアクセスを制限する • ロール ベース アクセス コントロールを使⽤して、露出を最⼩限に抑える • サービスアカウントを使⽤する際の注意事項を実践する(新しく作成したサービスアカウントについてのデフォルト禁⽌や権限の 最⼩化など) • Kubernetesを頻繁に更新する • システムの強化(15%) • ホストOSのフットプリントを最⼩化する(攻撃対象を減らす)IAMロールを最⼩限に抑える ネットワークへの外部アクセスを最⼩限に抑える AppArmor、seccompなどのカーネル強化ツールを適切に使⽤する 28 詳細:https://github.com/cncf/curriculum
  27. © JTP Co., Ltd. All Rights Reserved. CKS試験の出題範囲と出題割合 • マイクロサービスの脆弱性を最⼩限に抑える(20%)

    • 適切な OS レベルのセキュリティ ドメインをセットアップする • Kubernetesシークレットを管理する • マルチテナント環境(gvisor、kataコンテナなど)でコンテナ ランタイム サンドボックスを使⽤する • mTLSを使⽤してPod間の暗号化を⾏う • サプライチェーンのセキュリティ(20%) • 基本画像のフットプリントを最⼩化する • サプライチェーンを保護する:許可されたレジストリをホワイトリストに登録し、画像に署名して検証する • ユーザー ワークロード(Kubernetesリソース、Dockerファイルなど)の静的分析を使⽤する • 既知の脆弱性に関する画像をスキャンする • モニタリング、ロギング、ランタイムセキュリティ(20%) • ホストおよびコンテナ レベルでsyscallプロセスやファイルのアクティビティについて⾏動分析し、悪意のあるアクティビティを 検出する • 物理インフラ、アプリ、ネットワーク、データ、ユーザー、およびワークロード内の脅威を検出する • 発⽣場所や発⽣⽅法を問わず、あらゆるフェーズの攻撃を検出する • 詳細な分析調査を⾏い、環境内に存在する悪役を特定する • 実⾏時のコンテナの不変性を確保する • 監査ログを使⽤してアクセスを監視する 29 詳細:https://github.com/cncf/curriculum
  28. © JTP Co., Ltd. All Rights Reserved. きょうのまとめ • コンテナとKubernetesとOpenShiftのおさらいをする

    • コンテナセキュリティの範囲を知る • コンテナセキュリティのリスクと脅威を知る • コンテナセキュリティガイドラインを知る • コンテナセキュリティの代表的なツールを知る • コンテナセキュリティについて網羅的に学習する⽅法を知る 30
  29. © JTP Co., Ltd. All Rights Reserved. Thank you. またお⽬にかかりましょう

    2019.5 早朝 静岡県 ふもとっぱらキャンプ場から望む富⼠⼭