Kubernetesセキュリティ:クラスタを(より)安全に保つ方法

Kubernetesクラスタへの攻撃が増加しているため、適切なセキュリティ対策が不可欠です。これらのベストプラクティスが役立ちます。

Image

Anatoliy Eremin | shutterstock.com

Kubernetesはエンタープライズ向けソフトウェア開発者の間で大きな成功を収めています。そのため、犯罪者によるハッカーは、専用に開発されたエクスプロイトを使ってKubernetesのインストールを攻撃することが増えています。攻撃者はマルウェアを隠し、(簡単な)セキュリティチェックを回避し、ネットワーク内を横断してさらなる被害をもたらす能力をますます高めています。

Palo Alto、Wiz、Aqua Securityなどのセキュリティベンダーが設置したKubernetesハニーポットが示すように、最悪の場合、わずか20分足らずで新しく作成されたKubernetesクラスタに最初の攻撃が試みられます。この際、コンテナ間の通信に使われる既知のTCP/IPポートがスキャンされます。このようなスキャンは毎日何十回も行われており、犯罪者が自動化された侵害を狙っていることを示しています。

Kubernetesセキュリティにはいくつかのベストプラクティスがありますが、広く知られているわけではありません。また、それらの実践には特別なノウハウやツール、そして通常のクラウドインスタンスや仮想マシンのセキュリティ対策とは大きく異なる戦術が必要です。本記事ではまずKubernetesの脅威状況を詳しく分析し、その後クラスタを(より)安全に保つ方法を解説します。

Kubernetesの脅威状況

Kubernetesのデータフロー、依存関係、プロセスがどれほど複雑に絡み合っているかについては、Cloud Native Computing Foundationのブログ記事が参考になります。すべてのコンポーネントは、それぞれ独自の方法で保護する必要があります。目的は:

  • 通信の暗号化、

  • コンテナ、ストレージリポジトリ、ユーザーの適切な認証、

  • コンテナをエクスプロイトから守ること、

この図(CNCFがベース、Trend Microによる解釈)は、複雑なKubernetesの関係性を理解するための学習曲線がいかに急であるかを示しています。

Aqua Securityのデータアナリスト、Assaf Morag氏はその理由を次のように説明します。「このアーキテクチャの複雑さは意図的に作られたものです。Kubernetesはユーザーに自由度、オープンなアーキテクチャ、標準でオープンなセキュリティモデルを提供するために設計されています。」Palo Altoのスペシャリストが「Complete Guide to Kubernetes Security」(ダウンロードには登録が必要)で述べているように、これは絶望する理由ではありません。Kubernetesが広く普及し、多くの統合があるため、自動化された体系的なプロセスを開発し、セキュリティをKubernetesのビルドおよびデプロイプロセスの中心に据えることが容易になるのです。

しかし、Kubernetesのこの本質的なオープン性は、一般的なセキュリティツールセットが存在しないことも意味します。そのため、サイバーセキュリティの専門家に話を聞き、Kubernetesセキュリティでどこに最も課題があるのかを調査しました。残念ながら、その答えはすぐに見つかりました。コンテナに関しては、ネットワークセキュリティの基本的な対策が見落とされがちです。たとえば、以下のようなことが怠られています:

  • 暗号鍵を秘密に保つこと。

  • 複雑なパスワードの設定。

  • 異なるセグメンテーションスキームの適用。

  • 最小権限の原則の遵守。

最後の基本的な失敗には、Palo Alto Networksのクラウド脅威インテリジェンスマネージャー、Nathaniel Quist氏が指摘するように、もう一つの問題が関係しています。「ロールベースのアクセス制御の実装は、他のクラウドアプリケーションよりも難しい場合があります。それはKubernetesのモデルが非常に複雑だからです。」

Aqua Securityのアナリストは2023年4月、ロールベースのアクセス制御を悪用したKubernetesクラスタへのバックドア攻撃の初期事例を観測しました。専門家によれば、これは少なくとも60のクラスタを標的とし、クリプトマイニングマルウェアのインストールに成功しました。アクセス権が操作され、マルウェアが管理者権限を持つようにされていました。

Wizの脅威リサーチャー、Shay Berkovich氏は次のように述べています。「このような暗号通貨関連の攻撃は増加傾向にあります。特に、Kubernetesクラスタは高効率な実行プラットフォームとして、こうしたワークロードに理想的だからです。」同氏は、雇用先が特定したクリプトマイニング攻撃キャンペーン「PyLoose」と「newhello」を例に挙げています。Kubernetesとクリプトマイニングマルウェアの関係は新しい現象ではありません。電気自動車メーカーのテスラはすでに2018年にマルウェアに感染し、暗号通貨のマイニングに利用されました。原因は不十分に設定されたKubernetesダッシュボードだったようです。

DevOpsスペシャリストDuploCloudのCEO、Venkat Thiruvengadam氏は次のように補足します。「最小権限の原則を守りつつ、Kubernetes APIへのアクセスをユーザーに提供することは、困難ながらも極めて重要な課題です。このアクセスを保証するための標準化された自動化手法を確立することは、Kubernetes環境の安全性を高めるための重要なステップです。」

Aqua Securityの戦略担当SVP、Rani Sonat氏は、Kubernetesの分散アーキテクチャに起因する別の課題を説明します。「コードに関しても、関わる人が多すぎると問題が生じます。クラスタの運用、開発パイプラインの管理、アクセス制御の実施など、それぞれ独自のチームが存在するかもしれません。これらのチームが一貫して連携しなければ、ガバナンスの欠如が生じる可能性があります。」

WizのCTO、Ami Lutwak氏によれば、このような体制ではコードリポジトリの共有も問題となり得ます。「共有コードは効率化に寄与しますが、侵害された場合にはリスクも伴います。別々のチームは、コードも別々のクラスタで実行すべきですが、これはまだ一般的な慣行とは言えません。」

Kubernetesセキュリティにおける最大の問題は、公開された秘密情報や鍵と関連して、サプライチェーン攻撃の自動化が一瞬で可能になることです。Aqua Securityのセキュリティ研究者は、調査の中で数百件のデータセットからこのような秘密情報が公開されていることを特定しました。専門家たちは詳細なブログ記事で、GitHub APIを使って認証情報を検索した方法を説明しています。「コード化された秘密情報の検出能力を高めるために、オープンソースのツールやシークレットスキャナーが明確に必要です」とAquaの専門家はまとめています。

Kubernetesエクスプロイト対策の5つのベストプラクティス

私たちが話を聞いた専門家が、Kubernetesクラスタの侵害を防ぐために推奨するベストプラクティスは以下の通りです:

  • ネットワークポリシーとユーザーネームスペースを分離した包括的なロールベースのアクセス制御;

  • 「インクラスタ分離」セキュリティ対策;

  • 鍵およびシークレット管理(サービス);

  • 誤設定を特定・修正するための定期的なクラスタ監査;

  • 従業員や開発者向けの適切なトレーニング。

OWASPの「Kubernetes Security Cheat Sheet」には、クラスタを持続的に保護するための、さらに多くの具体的な推奨事項が掲載されています。

vgwort

ご要望に沿って、HTML構造やタグはそのまま、テキスト部分のみを日本語に翻訳しました。

翻訳元: https://www.csoonline.com/article/3492006/kubernetes-security-wie-sie-ihre-cluster-besser-absichern.html

ソース: csoonline.com