Kubernetesコンテナセキュリティの概要

Kubernetesコンテナセキュリティとは

KubernetesのPod、イメージ、ランタイム、ホスト、およびそのインフラストラクチャそのものの保護も含まれる包括的な取り組み。

Kubernetesコンテナセキュリティ

Kubernetesは人気の高いオープンソースのコンテナオーケストレーションツールであり、コンテナ市場を席巻しています。組織にとってKubernetesのようなコンテナオーケストレーションツールを利用することは不可欠です。このようなツールを用いると、コンテナアプリケーションの効率的な運用を加速させることができます。コンテナオーケストレーションツールを使わずにコマンドラインから手動でコンテナを導入および管理しようとしても、規模が大きい場合には現実的ではありません。

コンテナアプリケーションの導入、スケール、全体的な管理などのタスクを自動化するとさまざまな利点がありますが、適切な手段を講じなければ、ツールそのものが原因でセキュリティに穴が開く可能性があります。

Kubernetesはセキュリティを管理しない

最近のレポートによると、86%以上の組織がコンテナワークロードの一定部分をKubernetesで管理していますが、セキュリティは依然として大きな懸念のままです。同じ調査では、回答者の半数以上が自組織はコンテナセキュリティに十分に投資しておらず、戦略を立案しなければすぐにでもKubernetesの採用に遅れが生じるか、深刻なセキュリティインシデントが引き起こされると述べています。

Kubernetesでは、役割ベースのアクセス制御の適用といった基本的な機能以外に、アプリケーションを脆弱性から保護する機能は提供されていません。このため、追加のプログラムやサードパーティベンダを利用して、適切なセキュリティシステムを導入する必要があります。

考慮すべき事項

以下に、Kubernetesコンテナを保護する際に考慮すべき事項を示します。 

  • デフォルト構成 
  • コンテナランタイム 
  • イメージ 
  • ホストセキュリティ 
  • Pod間通信

 

デフォルト構成

Kubernetesコンテナを保護する際にまず考慮すべき要素の1つはデフォルト構成です。Kubernetesを使用する前にデフォルト構成をすべて確認し、あるPod内の攻撃が他のPodに拡散するリスクを最小限に抑える必要があります。

Kubernetesのアクセス制御機能の大部分は通常、デフォルトでは有効になっていません。このような制御が最小特権ポリシーを適用するように構成されておらず、該当の情報が必ずしも必要ないユーザに完全な権限が付与されている場合もあります。潜在的な機密データをこのように無防備なままにしておくことは莫大なリスクであり、機密情報を不正なユーザに開放することになります。

コンテナランタイム

コンテナランタイムは、コンテナを実行する特別なアプリケーションです。Kubernetesはランタイム攻撃に対する防御機能を持たず、侵入発生後に侵入を検出することもできません。

実行中のコンテナランタイムでアクティブな侵害や新たな脆弱性が検出された場合、コンテナ全体を強制終了し、侵害されていないバージョンを再起動する必要があります。

イメージ

イメージが原因でコンテナの脆弱性が高まる可能性もあります。適切に構成されていないイメージは、攻撃者がネットワークに侵入するための格好のアクセスポイントになります。また、特定の認証キーが含まれるイメージは、サイバー犯罪者が攻撃の手を広げる手助けとなってしまう可能性があります。

コンテナイメージ内に潜む不正なコードを検出するには、運用中にレジストリ内の脆弱性を検索する必要があります。Kubernetesにこの機能はありません。

ホストセキュリティ

設計上、Kubernetesはコンテナを、そのコンテナに割り当てられたサーバ上で実行します。オーケストレーションツールはそれらのサーバのセキュリティにはまったく関係がないため、セキュリティの問題がないかどうかサーバを監視するには、他のプロセスを利用する必要があります。

この場合、多くの企業はシステムリソースの悪用を検出するために従来のホストセキュリティを利用しますが、これは、ホストも侵害されていると深刻な結果を招く可能性があるからです。危険な攻撃を退けるには、侵害や不審な活動がないかどうかホストシステムを監視する必要があります。

Pod間通信

Kubernetesでは、デフォルトでは各Podにネットワークポリシーは適用されません。つまり、すべてのPodがKubernetes環境内にある他のすべてのPodと通信することができます。これは、導入環境内でPod間で相互に通信して適切に機能できるようにするという点では好都合ですが、1つのコンテナを侵害するだけで環境内で横方向に移動できるため、すぐにサイバー犯罪者の格好の標的になってしまう恐れがあります。

ネットワークポリシーをPodに関連付けると、ファイアウォールのルールおよび制御と同様の動作になり、Podは定義された資産のみと通信できるようになります。

Kubernetes管理下コンテナの保護

多くの組織がKubernetesを使用していることから、Kubernetesで管理されているコンテナのセキュリティを確保することは、ネットワークとアプリケーションを侵害や不正な攻撃から安全に保つ上で不可欠です。Kubernetesで管理されているコンテナのライフサイクルの各フェーズに適切にセキュリティを統合することが重要です。

コンテナセキュリティトピックス