Kubernetesコンテナセキュリティは、KubernetesのPod、イメージ、ランタイム、ホスト、およびインフラストラクチャ自体を保護する包括的な取り組みです。
目次
Kubernetesは、コンテナ市場で広く利用されているオープンソースのコンテナオーケストレーションツールです。Kubernetesのようなコンテナオーケストレーションツールは、組織にとって不可欠です。これらのツールがなければ、コンテナ化されたアプリケーションを本番環境で実行することはできません。Kubernetesがなければ、コマンドラインを使用してコンテナを手動でデプロイ・管理することは、大規模なシステムでは極めて困難です。
コンテナアプリケーションの導入、スケーリング、全体的な管理といったタスクの自動化には多くのメリットがあります。しかし、適切な対策を講じなければ、このツールが重大なセキュリティリスクとなり得ることを理解することが重要です。
最近のレポートによると、86%以上の組織がコンテナワークロードの一部をKubernetesで管理していますが、セキュリティは依然として大きな懸念事項となっています。同じ調査では、回答者の半数以上が、自組織はコンテナセキュリティに十分な投資を行っていないと回答しています。適切な戦略がなければ、Kubernetesの導入が遅延したり、深刻なセキュリティインシデントにつながる可能性があります。
Kubernetesは、ロールベースのアクセス制御(RBAC)の適用といった基本機能以外に、アプリケーションを脆弱性から保護する機能は提供していません。そのため、適切なセキュリティ対策を確実に導入するには、追加のツールやサードパーティベンダを利用して、適切なセキュリティシステムを導入する必要があります。
以下に、Kubernetesコンテナを保護する際に考慮すべき事項を示します。
Kubernetesコンテナセキュリティを確保する上で、まず考慮すべきはデフォルト構成です。あるPodへの攻撃が他のPodへ拡大するリスクを最小化するため、Kubernetesのすべてのデフォルト構成は使用前に必ず確認する必要があります。
Kubernetesにはアクセス制御などのためのフレームワークがありますが、これらの機能の多くは、デフォルトでは有効化されていません。また、これらの制御は最小権限の原則に沿って設定されていない場合もあり、必ずしも情報を必要としないユーザに過剰な権限を与えてしまう可能性があります。このように潜在的な機密データを無防備なままにしておくことは大きなリスクを伴い、機密情報が攻撃者に窃取される可能性があります。
コンテナランタイムは、コンテナを実行する特別なアプリケーションです。Kubernetesはランタイム攻撃に対する防御機能を持たず、侵入発生後に侵入を検出することもできません。
実行中のコンテナでアクティブな侵害や新たな脆弱性が検出された場合、コンテナ全体を強制終了し、侵害されていないバージョンを再起動する必要があります。セキュリティ問題の根本原因を修正した情報を使用して、環境内のコンポーネントを再構成することもできます。
イメージが原因でコンテナの脆弱性が高まる可能性もあります。適切に構成されていないイメージは、攻撃者がネットワークに侵入するための格好のアクセスポイントになります。また、特定の認証キーが含まれるイメージは、サイバー犯罪者が攻撃の手を広げる手助けとなってしまう可能性があります。
コンテナイメージ内に潜む不正なコードを検出するには、運用中にレジストリ内の脆弱性を検索する必要があります。Kubernetesにこの機能はありません。
設計上、Kubernetesはコンテナを、そのコンテナに割り当てられたサーバ上で実行します。オーケストレーションツールはそれらのサーバのセキュリティにはまったく関係がないため、セキュリティの問題がないかどうかサーバを監視するには、他のプロセスを利用する必要があります。
この場合、多くの企業はシステムリソースの悪用を検出するために従来のホストセキュリティを利用しますが、これは、ホストも侵害されていると深刻な結果を招く可能性があるからです。危険な攻撃を退けるには、侵害や不審な活動がないかどうかホストシステムを監視する必要があります。
Kubernetesは、デフォルトでは各Podにネットワークポリシーは適用されません。つまり、すべてのPodがKubernetes環境内にある他のすべてのPodと通信することができます。これは、導入環境内でPod間で相互に通信して適切に機能できるようにするという点では好都合ですが、1つのコンテナを侵害するだけで環境内で横展開(ラテラルムーブメント)できるため、すぐにサイバー犯罪者の格好の標的になってしまう恐れがあります。
ネットワークポリシーをPodに関連付けると、ファイアウォールのルールおよび制御と同様の動作になり、Podは定義された資産のみと通信できるようになります。
多くの組織がKubernetesを使用していることから、Kubernetesで管理されているコンテナのセキュリティを確保することは、ネットワークとアプリケーションを侵害や不正な攻撃から安全に保つ上で不可欠です。Kubernetesで管理されているコンテナのライフサイクルの各フェーズに適切にセキュリティを統合することが重要です。
Fernando Cardosoはトレンドマイクロのプロダクトマネジメント担当バイスプレジデントとして、進化を続けるAIとクラウドの領域に注力しています。ネットワークエンジニアおよびセールスエンジニアとしてキャリアをスタートさせ、データセンター、クラウド、DevOps、サイバーセキュリティといった分野でスキルを磨きました。これらの分野は、今なお彼の情熱の源となっています。