Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サイバー攻撃から Kubernetes クラスタを守るための効果的なセキュリティ対策

サイバー攻撃から Kubernetes クラスタを守るための効果的なセキュリティ対策

CloudNative Security Conference 2022 プレイベント の登壇資料です。
https://cloudnativedays.connpass.com/event/252961/

Kyohei Mizumoto

July 12, 2022
Tweet

More Decks by Kyohei Mizumoto

Other Decks in Technology

Transcript

  1. Copyrights©3-shake Inc. All Rights Reserved. 2 whoami 株式会社スリーシェイク Sreake事業部 SRE/CSIRT

    - AWS, GCP, kubernetes - 脆弱性評価・セキュリティアラートの基盤構築と運用 - セキュリティ運用改善(IaC, 自動化ツール作成など) - IAM設計、脅威情報の収集、サイバー演習 etc… イベント - 3-shake SRE Tech Talk 運営 - CloudNative Days 実行委員(~2021) 水元 恭平 (@kyohmizu)
  2. Copyrights©3-shake Inc. All Rights Reserved. 3 Kubernetes のセキュリティ対策を行っていますか? - アクセス制御(RBAC)

    - Pod セキュリティ(Security Context) - コンテナセキュリティ( Seccomp, AppArmor/SELinux, Runtime Security) - セキュリティポリシー( Pod Security Admission, OPA Gatekeeper, Conftest) - ネットワークセキュリティ( Network Policy) - イメージ・ノードセキュリティ( Trivy, Vuls) - イメージ署名(Sigstore) - 機密情報の管理(Sealed Secrets, External Secrets, Secrets Store CSI Driver) - ポスチャ管理(kube-bench, kube-hunter, Kubescape) - 振る舞い検知(Falco, Tracee, Tetragon) - フォレンジック(kube-forensics) - バックアップ(Velero)
  3. Copyrights©3-shake Inc. All Rights Reserved. 4 セキュリティ対策で抱える悩み - 開発優先でセキュリティ対策は後回し -

    セキュリティ対策に回すリソースがない - 効果が見えにくく、必要性がわからない - どこまで対策すれば良いかわからない - ツールを導入したものの、運用コストが高く正しく運用できていない サイバー攻撃の脅威を理解し、効果の高いセキュリティ対策から取り組んでいく
  4. Copyrights©3-shake Inc. All Rights Reserved. 5 本セッションについて お話しすること - Kubernetes

    へのサイバー攻撃とその影響 - Kubernetes やエコシステム(OSS)のセキュリティ機能 - サイバー攻撃に対する効果的なセキュリティ対策の検討 お話ししないこと - Kubernetes スコープ外のサイバー攻撃とその対策 - Web アプリケーションの脆弱性、 DDoS 対策など - CSP のセキュリティ対策 - 個々のセキュリティ機能の詳細な使用方法
  5. Copyrights©3-shake Inc. All Rights Reserved. 6 アジェンダ 1. Kubernetes に対するサイバー攻撃

    2. Kubernetes セキュリティ機能と有効性 3. 効果的にクラスタを守るセキュリティ対策
  6. Copyrights©3-shake Inc. All Rights Reserved. 8 攻撃者の目的と影響 重要データへのアクセス - 身代金の要求や、他者への販売による金銭獲得

    - データ破壊や改ざんが行われることも  → CIA(機密性/完全性/可用性)に多大な影響 リソースの悪用 - ボットネットを構築し、マイニングや DDoS 攻撃に利用  → 可用性に影響 クラスタ破壊 - サービスを停止に追い込む  → 可用性に影響
  7. Copyrights©3-shake Inc. All Rights Reserved. 9 Kubernetes を標的とするツール・マルウェア Peirates -

    Kubernetes のペネトレーションツール - https://github.com/inguardians/peirates Kubesploit - C2 サーバとエージェント - https://github.com/cyberark/kubesploit Siloscape - Windows コンテナを標的とするマルウェア - https://unit42.paloaltonetworks.com/siloscape/ Hildegard - クリプトジャッキングを行うマルウェア - https://unit42.paloaltonetworks.com/hildegard-malware-teamtnt/
  8. Copyrights©3-shake Inc. All Rights Reserved. 11 Threat Matrix for Kubernetes(Microsoft)

    https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/
  9. Copyrights©3-shake Inc. All Rights Reserved. 12 攻撃テクニックの分類:初期侵入 カテゴリ 攻撃テクニック 内容

    Threat Matrix との対応(青字は MS) 直接的侵入 公開サービスを利用した侵入 Kubernetes ダッシュボードや API サーバの設定ミスにより、外部からアクセス可能な状態 にあるものを介して侵入する External Remote Services Exposed dashboard アプリケーション脆弱性を利用した侵 入 外部公開されているアプリケーションの脆弱性を利用する コンテナに同梱されたパッケージの脆弱性も含む Exploit Public-Facing Application Vulnerable application 奪取した認証情報による侵入 不正アクセスで入手した認証情報、管理ミスで漏洩した認証情報などを利用する Steal Application Access Token Kubeconfig file 間接的侵入 悪意のあるコンテナイメージ 悪意のあるコードを含むコンテナイメージをリポジトリに公開し、クラスタ利用者にデプロイ させる(サプライチェーン攻撃) Compromised images in registry 悪意のあるマニフェストファイル 悪意のあるコードを含むマニフェストファイルを GitHub 等に公開し、クラスタ利用者にデプ ロイさせる(サプライチェーン攻撃)
  10. Copyrights©3-shake Inc. All Rights Reserved. 14 攻撃テクニックの分類:侵入後の不正操作① カテゴリ 攻撃テクニック 内容

    Threat Matrix との対応(青字は MS) コンテナ内 の操作 コンテナ内の情報収集 スキャンツールを利用した脆弱性や設定ミスの発見、与えられている権限の確認など Kubeconfig file コンテナブレイクアウト Pod の設定ミスや脆弱性、 hostPath マウント等を利用し、コンテナからホストの操作を可能 にする Escape to Host Exploitation for Privilege Escalation hostPath mount ネットワーク 経由の操作 内部ネットワークでの侵入拡大 内部ネットワークを探索して Service/Pod を発見する 発見した Service/Pod の公開サービスや脆弱性を利用して侵入を試みる Cluster internal networking Application exploit SSH server running inside container Network mapping 攻撃サーバとの通信 攻撃者の用意した C2サーバと通信し、命令の受信や情報送信等を行う Kubernetes API の操作 高権限ロールのバインドによる権限昇 格 攻撃者がロールバインドの権限を持つ場合、自身により強い権限を付与することができる Cluster-admin binding Kubernetes API による情報収集 kubectl コマンドの実行や Kubernetes/Kubelet API へのリクエスト、ダッシュボードへのア クセスにより、クラスタ内のリソースを確認する Container Administration Command Container and Resource Discovery Access the Kubernetes API server Access Kubelet API Access Kubernetes dashboard Container service account Kubernetes API によるコンテナ侵入 kubectl exec でコンテナに侵入し、侵入拡大や権限昇格、機密情報へのアクセスを行う Exec into container
  11. Copyrights©3-shake Inc. All Rights Reserved. 15 攻撃テクニックの分類:侵入後の不正操作② カテゴリ 攻撃テクニック 内容

    Threat Matrix との対応(青字は MS) Kubernetes API の操作 リソース作成による侵入拡大 脆弱なコンテナや Pod のデプロイ、高権限を持つサービスアカウントのアタッチによる権限 昇格を試みる 別ノードへの侵入、調査ツールのインストールやマルウェア展開にもつながる Deploy Container New container リソース作成による永続化 侵入を永続的なものとするため、 CronJob や Deployment の作成、ノードの hostPath 経 由でのバックドア設置を行う Scheduled Task/Job : Container Orchestration Job Backdoor container Writable hostPath mount Kubernetes CronJob 複数手段での 操作 機密情報の奪取 コンテナ内の環境変数やファイル、コンテナログ、 Metadata API、Secret リソースの読み取 りにより機密情報を入手する (クラウドサービスや DB アクセスの認証情報など) Steal Application Access Token Unsecured Credentials : Container API List Kubernetes secrets Access container service account Application credentials in configuration files 痕跡の削除 攻撃の発見を回避または遅らせる目的で、コンテナログやイベントログを削除する Clear container logs Delete Kubernetes events
  12. Copyrights©3-shake Inc. All Rights Reserved. 18 Kubernetes のセキュリティ対策(再掲) - アクセス制御(RBAC)

    - Pod セキュリティ(Security Context) - コンテナセキュリティ( Seccomp, AppArmor/SELinux, Runtime Security) - セキュリティポリシー( Pod Security Admission, OPA Gatekeeper, Conftest) - ネットワークセキュリティ( Network Policy) - イメージ・ノードセキュリティ( Trivy, Vuls) - イメージ署名(Sigstore) - 機密情報の管理(Sealed Secrets, External Secrets, Secrets Store CSI Driver) - ポスチャ管理(kube-bench, kube-hunter, Kubescape) - 振る舞い検知(Falco, Tracee, Tetragon) - フォレンジック(kube-forensics) - バックアップ(Velero)
  13. Copyrights©3-shake Inc. All Rights Reserved. 19 アクセス制御 ツール:RBAC 導入・運用コスト: ★★☆☆☆ 攻撃への有効性: ★★★☆☆

    - 開発者やサービスアカウントには最小限の権限のみを付与する - Kubernetes の認証情報を利用した侵入、コンテナ内の不正操作に効果あり - 漏洩した認証情報による Kubernetes API の操作を制限 - コンテナ内から操作・参照できるリソースの範囲を制限 - ロールバインドやリソース作成、 Secret 読み取りは特に注意 - 設定ミス防止にはポスチャ管理ツールによるチェックが有効 - クラスタ管理者の認証情報、高権限を必要とするコンテナに注意 - 完全にアクセスを遮断することはできない
  14. Copyrights©3-shake Inc. All Rights Reserved. 20 Pod セキュリティ(コンテナセキュリティ) ツール:Security Context(Seccomp,

    AppArmor/SELinux, runtime security) 導入・運用コスト: ★★★☆☆ 攻撃への有効性: ★★☆☆☆ - コンテナの各種セキュリティ機能により、コンテナ内の操作を制限する - 特権を利用する不正操作に効果あり - コンテナブレイクアウトの防御 - Dockerfile やアプリ側での対応も - Security Context 未設定のコンテナ作成を禁止する必要がある - 攻撃者に脆弱なコンテナを作成させないため - セキュリティポリシーによる全コンテナへの強制
  15. Copyrights©3-shake Inc. All Rights Reserved. 21 セキュリティポリシー ツール:Pod Security Admission,

    OPA Gatekeeper, Kyverno, Conftest 導入・運用コスト: ★★★★☆ 攻撃への有効性: ★★★★☆ - Pod 等のリソース作成にポリシーを強制する - 攻撃目的のリソース作成に効果あり - サプライチェーン攻撃による悪意のある Pod デプロイを防御 - 侵入後の永続化やラテラルムーブメントに対する防御 - 運用中のクラスタへの導入はコスト高 - 初期段階で導入する、難しい場合はまず警告から - ポリシーの作り込み、継続的なチューニングが必要 - 最終的には警告ではなく、違反するリソース作成を禁止する
  16. Copyrights©3-shake Inc. All Rights Reserved. 22 ネットワークセキュリティ ツール:Network Policy 導入・運用コスト: ★★★☆☆

    攻撃への有効性: ★★★☆☆ - Pod 間の通信や外部との通信を制限する - 通信を利用する不正操作に効果あり - Pod 間のラテラルムーブメントの防御 - 攻撃者のサーバとの通信を遮断 - 運用中のクラスタへの導入には注意 - 正常な通信を遮断してしまうリスク - セキュリティポリシーによる強制の必要性
  17. Copyrights©3-shake Inc. All Rights Reserved. 23 イメージ・ノードセキュリティ ツール:Trivy, Vuls 導入・運用コスト: ★★★☆☆

    攻撃への有効性: ★★★★☆ - コンテナ、ノードの脆弱性を管理する - 脆弱性を利用する攻撃に効果あり - 外部からの侵入、侵入後の特権昇格、ネットワーク経由での侵入拡大など - CI 連携や定期スキャンの実施が必要 - 検知した脆弱性の評価・管理のコスト高 - 未知の脆弱性には対処不可 - 侵入後の攻撃者によるコンテナ作成は対処不可 - Pod セキュリティの強制により影響緩和
  18. Copyrights©3-shake Inc. All Rights Reserved. 24 イメージ署名 ツール:Sigstore 導入・運用コスト: ★★☆☆☆ 攻撃への有効性: ★★☆☆☆

    - コンテナイメージの署名・検証を行う - サプライチェーン攻撃による悪意のあるコンテナ作成に効果あり - CICD パイプラインへの組み込みが必要 - セキュリティポリシーとの連携が可能 - 公開イメージによるコンテナ作成は対処不可
  19. Copyrights©3-shake Inc. All Rights Reserved. 25 機密情報の管理 ツール:Sealed Secrets, External

    Secrets, Secrets Store CSI Driver 導入・運用コスト: ★☆☆☆☆ 攻撃への有効性: ★★★☆☆ - ソースコード内の機密情報を安全に管理する - 漏洩した認証情報による侵入に効果あり - ソースコード(リポジトリ)を介した認証情報の漏洩の防御 - 侵入後のアクセスは比較的容易 - Secret リソース、Volume Mount、環境変数など - アクセス制御による Secret リソースの読み取り制限の必要あり
  20. Copyrights©3-shake Inc. All Rights Reserved. 26 ポスチャ管理 ツール:kube-bench, kube-hunter, Kubescape

    導入・運用コスト: ★★★☆☆ 攻撃への有効性: ★★★★★ - Kubernetes コンポーネントの設定やポリシーの不備を検知( KSPM) - 設定不備による侵入、不正操作に効果あり - 不要な公開サービス、セキュリティ機能の設定不備の検知 - ポリシーの適用状況の確認が可能( RBAC, Network Policy, Pod Security Standards) - 初期段階で導入し、重要度の高いものから対策 - 以後定期的に実施する
  21. Copyrights©3-shake Inc. All Rights Reserved. 27 振る舞い検知 ツール:Falco, Tracee, Tetragon

    導入・運用コスト: ★★★★★ 攻撃への有効性: ★★★★★ - コンテナ内の不正操作を検知、ブロックする - 侵入後の不正操作全般に効果あり - Falco は監査ログ(クラスタへの不正操作)にも対応 - フォレンジック用にコンテナ内の操作ログを収集可能 - 検知ルールのチューニング、アラート対応のコスト高 - ルールのプリセットはあるが不十分。新たな脅威情報への追従の必要性 - 過検知に対する運用の効率化が課題 - OSS でなく商用製品の利用も検討(ただし金銭面でのコスト高)
  22. Copyrights©3-shake Inc. All Rights Reserved. 28 その他 フォレンジック(kube-forensics) - 侵害を受けたコンテナの静的解析に利用

    - 迅速なサービス復旧を可能にする - 振る舞い検知ツールで操作ログの収集を行うことも重要 バックアップ(Velero) - 攻撃によるデータ暗号化や破壊への対策 - クラスタ内に機密情報を持つケースはあまりない - セキュリティ目的で導入する優先度は低い
  23. Copyrights©3-shake Inc. All Rights Reserved. 31 攻撃テクニックとの対応① アクセス制御 Pod セキュリ

    ティ セキュリティポ リシー ネットワークセ キュリティ イメージ・ノードセ キュリティ イメージ署 名 機密情報の 管理 ポスチャ管 理 振る舞い 検知 初期侵入 公開サービスを利用した侵入 ◎ アプリケーション脆弱性を利用した侵入 ◯ 奪取した認証情報による侵入 ◯ 悪意のあるコンテナイメージ △ △ △ 悪意のあるマニフェストファイル ◎ 侵入後の 不正操作 コンテナ内の情報収集 ◎ コンテナブレイクアウト ◯ (◯) △ ◎ 高権限ロールのバインドによる権限昇格 ◯ (◯) ◎ 内部ネットワークでの侵入拡大 ◯ △ (◯) ◎ 攻撃サーバとの通信 ◯ (◯) ◯ ◎:適切に設定されていれば、大半の攻撃に有効 ◯:適切に設定されていれば、制限付きで大半の攻撃に有効 △:適切に設定されていれば、一部の攻撃に有効 ※()内の記号は、別のセキュリティ機能の強制により有効となるもの
  24. Copyrights©3-shake Inc. All Rights Reserved. 32 攻撃テクニックとの対応② アクセス制御 Pod セキュリ

    ティ セキュリティポ リシー ネットワークセ キュリティ イメージ・ノードセ キュリティ イメージ署 名 機密情報の 管理 ポスチャ管 理 振る舞い 検知 侵入後の 不正操作 Kubernetes API による情報収集 △ (△) ◯ Kubernetes API によるコンテナ侵入 ◯ (◯) ◯ 機密情報の奪取 △ △ △ (△) ◯ リソース作成による侵入拡大 △ △ (△) △ (△) ◯ リソース作成による永続化 △ △ (△) △ (△) ◯ 痕跡の削除 ◯ (◯) ◎ ◎:適切に設定されていれば、大半の攻撃に有効 ◯:適切に設定されていれば、制限付きで大半の攻撃に有効 △:適切に設定されていれば、一部の攻撃に有効 ※()内の記号は、別のセキュリティ機能の強制により有効となるもの
  25. Copyrights©3-shake Inc. All Rights Reserved. 34 最初に取り組むべきセキュリティ対策 まずは侵入されないことが最優先 - 侵入された場合はセキュリティインシデント

    - 原因調査、影響調査、封じ込め対策、社外への公表、 etc… - もちろん侵入後の攻撃に対するセキュリティ対策も重要 フォレンジックに必要な情報を収集する - コンテナ情報、操作ログ、監査ログ、トラフィック等 - 攻撃者による削除・改ざん対策が必要 - サイバー攻撃の影響を正確に把握するため - 影響範囲がわからない場合は最大で見積もるしかない - 継続調査のコストや信用失墜のリスク
  26. Copyrights©3-shake Inc. All Rights Reserved. 35 最初に取り組むべき Kubernetes セキュリティ 侵入対策

    1. ポスチャ管理(設定ミスによるサービス公開の検知、セキュリティポリシー適用状況の確認) 2. 機密情報の管理(コードリポジトリへの安全な Secret 保存) 3. イメージ・ノードセキュリティ(脆弱性スキャンの CI 連携、定期実行) 4. セキュリティポリシー( Pod セキュリティの強制) 5. (イメージ署名) 情報収集 6. 振る舞い検知(操作ログ収集)
  27. Copyrights©3-shake Inc. All Rights Reserved. 36 次のステップ 検知の仕組みを整える - サイバー攻撃にいち早く気づくことが重要

    組織やシステムに合わせたセキュリティ対策 - 脅威モデリングを行う - 守るべきデータがどこにあるのか セキュリティ情報をキャッチアップする - 導入しているツールの脆弱性情報 - 脅威情報(情報漏洩、サイバー攻撃動向など)