Kubernetesセキュリティとは?
Kubernetesセキュリティは、Kubernetes(K8sとも呼ばれます)上で実行されるクラウドネイティブアプリケーションを脆弱性や悪意のあるアクターから保護するための手法とプロセスのアプリケーションです。
Kubernetesは、クラウドネイティブアプリケーションのスケーラビリティと信頼性を強化するように設計された、オープンソースのコンテナオーケストレーションプラットフォームです。その堅牢な機能セットと統合の容易さにより、グローバル市場での競争を目指す小規模なスタートアップ企業や、世界中のオーディエンスにサービスを提供する必要があるSpotifyやメジャーリーグベースボールなどの大企業にとっては、最適な選択肢となっています。
しかしながら、K8sの可能性を最大限に引き出すには、クラウドで動作するコンテナとマイクロサービスに頼らざるを得ず、それらには独自のセキュリティに関して考慮すべき点があります。一般的なKubernetesセキュリティの問題を理解し、その課題を克服することは、アプリケーションの全体的なクラウドセキュリティポスチャを強化するための第一歩です。
インフォグラフィック: クラウドセキュリティポスチャを改善(英語)
このインフォグラフィックをダウンロードして、マルチクラウドやハイブリッドクラウドにおける最も一般的なクラウドセキュリティの課題に取り組むことで、クラウドセキュリティポスチャとコンプライアンスの改善方法を学びましょう。
今すぐダウンロード一般的なKubernetesセキュリティの問題
一般的なKubernetesクラスターは次のもので構成されます。
- コントロールプレーン:コントロールプレーンはK8sクラスターの頭脳です。クラスターをKubernetes APIに公開し、リソースの割り当てとプロビジョニングをスケジュールし、クラスター内のイベントに応答します。
- ノード:ノードは、K8sクラスター内で処理が実行され、アプリケーションの要求に応じてデータを格納および操作する場所です。連携して動作する小さな個々のポッドで構成されています。
Kubernetesクラスターのこれら2つの要素は、Kubernetesの攻撃対象領域全体のかなりの部分を占めています。アプリケーション自体が、欠陥のあるコードや古いライブラリを通じて、追加のセキュリティの脆弱性をはらむ可能性があります。さらに、Kubernetesのホストの柔軟性が攻撃対象領域になる可能性があります。
例えば、組織がKubernetesクラスターをパブリッククラウドに展開する場合、プラットフォームが認識している潜在的なセキュリティの脆弱性を把握し、クラスターへのアクセスを可能な限り制限する必要があります。
これらの脅威がどこから来るのかを理解することは、Kubernetesセキュリティを強化するために不可欠です。クラウドストライクの2024年版グローバル脅威レポートによると、2023年にはクラウドへの侵入が75%増加し、企業はこの脅威の増加に対応するため、セキュリティ体制の見直しを余儀なくされています。
一般的なKubernetesセキュリティの問題には次のものがあり、他の一般的なクラウドセキュリティの脆弱性とともに対処する必要があります。
- セキュリティ設定の整合性が崩れたり、意図せずに機密情報が漏洩する設定ミス
- セキュリティ保護されていない、または承認されていないコンテナ
- Kubernetesダッシュボードへの不正アクセス
- APIリクエストまたはネットワークポートへの不正アクセス
- 外部ツールの不適切な設定
- 不適切に設定されたIAM(アイデンティティおよびアクセス管理)ポリシー
Kubernetesセキュリティインシデント
K8sクラスターとその周辺インフラストラクチャを適切に保護しないと、アプリケーションデータと運用収益に壊滅的な結果をもたらす可能性があります。最近のKubernetesセキュリティ侵害に関して注目を集めた例を以下に挙げます。
- 2018年2月:自動車メーカーのあるクラウドアカウントでセキュリティ保護されていないKubernetes管理コンソールにハッカーがアクセスします。ハッカーはアクセスするとすぐに、マルウェアをインストールして、インフラストラクチャ内で暗号資産のマイニングを開始しました。このハッキングにより、機密性の高い独自のテレメトリデータも流出してしまいました。
- 2019年7月:ファイアウォールの設定ミスにより、ある金融機関のK8sクラスターがパブリックインターネットに流出し、30GBのクレジットアプリケーションデータが盗まれる侵害が発生しました。
- 2023年8月:2つの設定ミスによって、350以上の組織に属するK8sクラスターがセキュリティ保護されていない状態で一般の人々がアクセスできるようになっていたことを、研究者らが発見しました。組織のリストには、フォーチュン500の大企業だけでなく、小規模企業や個別プロジェクトも含まれていました。
- 2024年1月:Google Kubernetes Engine内のユーザーアクセス権限グループに対する勘違いからセキュリティの抜け穴ができ、Googleアカウントを持つユーザーに数百万のコンテナが流出する可能性があることが研究者によって発見されました。この設定ミスによって流出された組織の中には、ナスダック上場企業の名前がありました。
KSPM(Kubernetesセキュリティポスチャ管理)の基礎
開発者は、クラウドネイティブアプリケーションのセキュリティポスチャの強化を試みる際、Kubernetesのライフサイクル全体を考慮する必要があります。考慮すべき主な領域は2つあります。
- Kubernetesクラスターの手前:Kubernetesはコンテナイメージに依存しているため、コンテナがクラスターに入る前に安全であることを確認する必要があります。イメージスキャンをCI/CD(継続的インテグレーション/継続的デリバリー)パイプラインの一環とすることで、コンテナが適切に設定され、最新のセキュリティパッチで更新され、K8sクラスターにマルウェアやその他のセキュリティの脆弱性が持ち込まれることがなくなります。
- Kubernetesクラスターの内側:悪意のあるアクティビティや意図しないデータ漏洩のリスクを軽減するために、クラスター内のいくつかの領域をセキュリティで保護する必要があります。
- コントロールプレーン:コントロールプレーンリソースはetcdに格納されるため、Kubernetes APIを介して適切な権限を用いる場合のみ、etcdにアクセスできるようにする必要があります。
- Kubernetes API:APIは、外部ユーザーがコントロールプレーンにアクセスするために使用する方法であるため、アクセスを承認されたユーザーに制限することが重要です。OIDC (OpenID Connect) プロバイダーを使用してK8sクラスターアクセスのセキュリティを保護し、RBAC(ロールベースのアクセス制御)を使用して、すべてのKubernetesオブジェクトと名前空間のアクセス制御仕様を指定します。また、Kubernetesアドミッションコントローラーを使用することで、Kubernetes APIサーバーを狙ったリクエストを監視および規制し、不正なAPI呼び出しによってK8sクラスター内に侵入させないようにします。
- ネットワーキング:ネットワークポリシーを設定すると、Kubernetesはポッド間の不正アクセスやデータ転送を保護するファイアウォールを作成できるようになります。
- ノード:kubeletは、コントロールプレーンと、ノード内のワークロードを駆動するコンテナエンジンとの間で通信情報を送信します。kubeletのセキュリティを効果的に保護するには、Kubernetes APIとkubelet間の通信、およびkubeletとコンテナエンジン間の通信を設定および監視する必要があります。
- コンテナとランタイム:脆弱性(設定ミス、ゼロデイエクスプロイト、権限昇格、マルウェアなど)が、展開されているコンテナに出現することがあります。CrowdStrike Falcon® Cloud SecurityのようなKubernetesセキュリティツールを実装すると、コンテナのすべての側面が展開時に監視され、セキュリティ保護されます。
K8sのライフサイクルを保護するだけでなく、Kubernetesのログを収集して維持することで、パフォーマンスのボトルネックをトラブルシューティングし、セキュリティギャップを特定し、侵害が発生した場合にはそれを調査することができます。CrowdStrike® Falcon Next-Gen SIEMを使用すると、Kubernetesクラスターの可視性が大幅に向上し、インシデントへの対応能力が強化されます。
詳細
Kubernetesログ記録ガイドの全シリーズをご覧ください。
- パート1:基本
- パート2:高度な概念
- パート3:Kubernetesログの一元化
- パート4:Kubernetesクラスターでの一元化されたログ記録
Kubernetesセキュリティツール
最も一般的なKubernetesセキュリティツールを以下に示します。
| プラットフォーム/ツール | 説明 |
|---|---|
| Falcon Cloud Security | Falcon Cloud Securityは、Kubernetes環境向けの包括的なセキュリティ機能を提供し、組織による、コンテナ化されたワークロードの保護、脅威の効果的な検知とその対応、規制要件に対するコンプライアンスの維持を支援します。 |
| Falco | Falcoは、コンテナ化されたアプリケーションでの異常な振る舞いを検知するよう、当初はSysdigによって設計されたオープンソースのKubernetesセキュリティツールです。ランタイムメトリックとシステムコールを使用して、潜在的なセキュリティの脅威を特定し、Kubernetesクラスターに対するリアルタイムのアラートと可視性を提供します。 |
| Falcon Sidekick | Falco Sidekickは、Falco用のオープンソースのコンパニオンツールで、アラートと通知の処理機能を拡張します。SlackやEメールなどのさまざまな通信チャネルと統合して、Falcoが検知したセキュリティイベントに関するリアルタイムのアラートと通知を提供します。 |
| Kubernetes CISベンチマーク | CISベンチマークは、Kubernetesの展開をセキュリティで保護するためのガイドラインを提供します。kube-benchなどのさまざまなオープンソースツールを使用すると、これらのベンチマークに対するKubernetesクラスターの評価を自動化でき、セキュリティのベストプラクティスへのコンプライアンスと準拠を確保するのに役立ちます。 |
| Kube-hunter | Kube-hunterは、Kubernetes環境向けに特別に設計されたオープンソースの侵入テストツールです。Kubernetesクラスター内の潜在的なセキュリティの脆弱性と設定ミスを特定し、組織がセキュリティリスクにプロアクティブに対処できるようにします。 |
| Kube-Bench | Kube-benchは、CIS Kubernetesベンチマークに対してKubernetesの展開をチェックするオープンソースツールです。ベンチマークのチェックプロセスを自動化し、潜在的なセキュリティ設定ミスや改善領域に関するインサイトを組織に提供します。 |
| Kyverno | Kyvernoは、セキュリティポリシーおよびベストプラクティスを適用するために使用する、オープンソースのKubernetesネイティブポリシーエンジンです。これにより、組織はKubernetesリソース全体でポリシーを定義して適用できるため、クラスター内のコンプライアンス、セキュリティ、運用の一貫性を確保できます。 |
| OPA/Gatekeeper | Gatekeeperを用いるPolicy Agent (OPA) は、Kubernetes向けのオープンソースのポリシー適用エンジンです。これを使用して、組織は、リソース設定とアクセス制御のためのポリシーを定義して適用し、Kubernetesの展開全体のコンプライアンスとセキュリティを確保できます。 |
クラウドストライクが問題解消にどう貢献できるか
Kubernetesは堅牢なスケーラビリティと処理機能を提供しますが、その複雑さから、セキュリティの向上には多くの課題が浮上します。単純な設定ミスであっても、偶発的に機密データが一般の人々に漏洩する可能性があるため、開発者はK8sのライフサイクルのすべての側面を監視して潜在的な脆弱性を見つける必要があります。
また、Kubernetesは非常に柔軟なプラットフォームであり、自動スキャンとアラートのメカニズムを通じてセキュリティポスチャを強化するツールとのサードパーティ統合を可能にします。K8sワークロードと並行して実行されるKubernetesセキュリティツールを統合することは、セキュリティを最大化するために重要です。
CrowdStrike Falcon® Cloud Securityは、AWS、Azure、Google Cloudにおいて、ビルドからランタイムにいたるあらゆる段階でコンテナ、Kubernetes、ホストに対する保護を提供しながら、CI/CDパイプラインのすべてのステップでセキュリティを確保します。
Expert Tip
クラウドの健全性をチェックし、コードからランタイムまでコンテナとKubernetesをFalcon Cloud Securityで保護する方法をご覧ください。
Kubernetes (K8s) セキュリティに関するよくある質問
Q:K8sセキュリティとは何ですか?
A:Kubernetes (K8s) セキュリティとは、Kubernetesクラスター、ワークロード、アプリケーションをセキュリティの脅威から保護するために使用される対策を指します。これには、アクセス制御、ネットワークポリシー、ランタイム保護、コンテナイメージのセキュリティ確保が含まれます。
Q:Kubernetesセキュリティの4Cとは何ですか?
A:Kubernetesセキュリティの4Cは、クラウド、クラスター、コンテナ、コードです。これらは、セキュリティの異なるレイヤーを表します。
- クラウド:クラウドインフラストラクチャとネットワークのセキュリティを確保します。
- クラスター:Kubernetes設定、RBAC、およびネットワークポリシーを保護します。
- コンテナ:コンテナイメージのセキュリティとランタイム保護を確保します。
- コード:展開前にアプリケーションコードを脆弱性から保護します。
Q:Kubernetesではどのようにセキュリティが提供されますか?
A:Kubernetesセキュリティは、RBAC(ロールベースのアクセス制御)、ネットワークポリシー、コンテナイメージスキャン、最小特権アクセスの適用、ランタイムセキュリティモニタリングなどのベストプラクティスを通じて提供されます。
Q:Kubernetesのセキュリティ上の懸念事項は何ですか?
A:Kubernetesにおける主なセキュリティ上の懸念事項として、設定ミス、不正アクセス、サプライチェーンリスク、権限昇格、コンテナの脆弱性などが挙げられます。攻撃者は、Kubernetes APIセキュリティの弱点、安全でないネットワーク、パッチ未適用のコンテナイメージを悪用する可能性があります。
Q:Kubernetesにおけるセキュリティとは何ですか?
A:Kubernetesにおけるセキュリティには、認証、承認、ログ記録、モニタリング、自動化されたセキュリティポリシーを通じてクラスターを脅威から保護することが含まれます。クラウドインフラストラクチャからアプリケーションコードまで、あらゆるレイヤーで継続的なセキュリティ対策が必要です。