Kubernetes クラスターを保護してランサムウェアを阻止する
コンテナを使用すれば、これまでデータセンターでは不可能だったスピードと柔軟性を実現できる一方、ランサムウェア、仮想通貨マイニング、ボットネットなどのセキュリティ脅威にさらされることになります。DevOps、エンジニアリング、セキュリティの担当者 300 人以上を対象とした調査レポート、 2022 Red Hat State of Kubernetes Security Report によると、回答者の 93%が、過去 12 か月間に Kubernetes 環境で 1 回以上のセキュリティインシデントを経験していました。攻撃者はこのようなインシデントを悪用してランサムウェアやその他の悪性ソフトウェアをインストールする可能性があり、Kubernetes クラスターの保護は非常に重要です。
Kubernetes クラスターとは
Kubernetes クラスターは、コンテナ化されたアプリケーションを実行するノードの集合体です。Kubernetes クラスターはノードの完全なエコシステムを提供します。これには、DNS サービス、負荷分散、ネットワーキング、自動拡張に加え、アプリケーションの稼働に必要なその他の機能が含まれます。Kubernetes クラスターは、組み込みの階層構造とアプリケーション分離機能を使用することで、複数のアプリケーションをホストできます。しかも、複数の名前空間のあいだの通信が制約されることもありません(図 1)。
Kubernetes クラスターをセグメント化する理由
ここ数年、コンテナに対する攻撃はますます巧妙化しています。Kubernetes クラスターに対する攻撃では、検知を回避するために、ペイロードのパッキング、ルートキットの使用、メモリからのマルウェアの直接実行など、回避や難読化の手法が多用されるようになりました。
Kubernetes 環境では、たとえ通常の操作に必要なくても、デフォルトでクラスターとポッド間の通信が可能となります。攻撃者はこの機能をランサムウェアキャンペーンで悪用し、ラテラルムーブメント(横方向の移動)を実行します。これに対抗するためには、このようなフローを中断することなく制限するポリシーを適用できなければなりません。
Kubernetes クラスターのセグメント化に必要な主な機能
優れたネットワーク・セグメンテーション・ソリューションには、可視化、適用、監視、稼働という 4 つの要素が不可欠です(図 2)。
Kubernetes クラスターの完全な可視化
Kubernetes 環境では可視化が非常に重要です。適切なポリシーを作成するためには、Kubernetes 環境で何が実行されているか把握し、トラフィックが目的の場所のみに送信されていることを確認する機能が欠かせません。現在、Akamai の一部となっている Guardicore は、Kubernetes クラスターを正確に可視化し、インフラのすべてのレイヤーに関する知見を提供します。
相互依存性マップ
このソリューションは、VM、Kubernetes、Docker コンテナなど、テクノロジーを問わず、社内および複数のデータセンター全体の通信を視覚化するマップを提供します(図 3)。このようなマップを使用すれば、ポッド、サービス、ホスト、名前空間のあいだの疑わしい接続を把握し、検知できます。
ラベル
このマップは、複数のラベルレイヤーを使用することで、アプリケーションがどのようにクラスターに展開されているかを正確に反映します(図 4)。このような可視化によって、アプリケーションの管理者が計画した Kubernetes 階層が明確に示されます。Akamai のユーザーはこのレベルの詳細データを通じて、クラスター内に展開されているものや、展開されたアプリケーションとインフラ内のその他のものとの接続関係を正確に把握できます。
Kubernetes ネイティブなポリシー適用
Kubernetes クラスターのアタックサーフェスを最小化するためには、厳密なセグメンテーションポリシーが必要です。セグメンテーション適用ソリューションは、2 つの主要基準を満たす必要があります。それは、非侵入型で、規模やパフォーマンスを制約しないこと、そして名前空間、コントローラー、Kubernetes ラベルなど、あらゆるレベルの Kubernetes オブジェクトに柔軟なリングフェンスを提供できることです。
Akamai は、ネイティブの Kubernetes Container Network Interface(CNI)を活用しています。CNI は、Kubernetes のネットワークセグメンテーション用として設計されたネットワーク・セキュリティ・ポリシー・プラグインで構成されています。これは、拡張制限のない非侵入的な方法です。
Akamai は、自社の最善のテンプレートを拡張し、Kubernetes のビジネスクリティカルなアプリケーションのリングフェンシング用に設計された専用テンプレートを追加しました(図 5)。ユーザーはこのテンプレートを使用することで、名前空間、アプリケーション、その他のオブジェクトのいずれであろうと、リングフェンスの対象オブジェクトを簡単に選択できます。
高度な監視
高度なロギングおよび監視システムを活用して Akamai の専用ネットワークログを Kubernetes ネットワーキングに合わせて調整し、イベントごとに宛先サービス、ノード IP、送信元ポートと宛先ポート、プロセスが表示されるようにしました。これにより、ネットワーク内の異常なアクティビティを簡単に調査し、SIEM などのサードパーティー製アプリケーションにデータをエクスポートできます。
クラスターの稼働
Kubernetes 資産のセキュリティを確保するためには、リアルタイムの可視化に加え、稼働状況の認識が必要となります。専用の Cluster Operations 画面には、展開されているクラスターに関して必要とされるすべてのデータが表示されます。これらには、そのクラスターを監視するエージェントの数、エージェントの機能に関する警告やアラートフラグ、Kubernetes オーケストレーションの状態などが含まれます(図 6)。
まとめ
「セキュリティ侵害を想定すること」の必要性にはほとんどの人が同意しますが、この考えを実践できるツールはほとんどありません。特に Kubernetes のような新しいテクノロジーを使用する際に、各資産を境界として扱うことができるツールは、著しく不足しています。Akamai Guardicore Segmentation を使用すれば、インフラが複雑であっても、「攻撃者はすでにネットワークに侵入している」という想定に基づいて行動できます。Akamai の Kubernetes 向けソリューションは、非侵入的でクラスターの規模を制約せず、Kubernetes クラスターに対する包括的な可視性を提供するとともに、オペレーティングシステムに関係なく Kubernetes のネイティブな実行を可能にします。しかも、これらすべてを、インフラの他の部分を管理するために使用しているコンソールから実行できます。