fbpx

NSAが公開したKubernetes Hardening Guidanceを解説 #aqua #コンテナ #セキュリティ #k8s

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本ブログは「Aqua Security」社の技術ブログで2021年9月9日に公開された「 A Closer Look Into the NSA Kubernetes Hardening Guide 」の日本語翻訳です。

NSAが公開したKubernetes Hardening Guidanceを解説


8月にアメリカ国家安全保障局(NSA)とアメリカ国土安全保障省サイバーセキュリティインフラストラクチャセキュリティ庁(CISA)は、Kubernetes Hardening Guidance を発表しました。Kubernetes の普及が急速に進む中、NSA のような政府機関がこの重要な技術を安全にする方法についてガイダンスを提供することは喜ばしいことです。このブログ記事では、ガイダンスの中で最も重要なポイントに着目し、それらをどのように実装するかについても解説します。

対象となる方

このガイダンスは、表向きには国家安全保障システムに携わるシステム管理者や開発者を対象としていますが、幅広い Kubernetes 環境に適用でき、価値のある内容となっています。Kubernetes を運用している方や構築を計画している方は、このガイダンスを参考にして、攻撃に強い環境を構築してください。

堅牢化に注力

Kubernetes は強力であると当時に複雑であり、Kubernetes 環境のセキュリティを確保するためのニュアンスをすべて把握している方はほとんどいません。デフォルトのままで利用する場合、Kubernetes は多くのコンポーネントを悪用されやすい状態にあります。NSA と CISA のガイダンスは、Kubernetes のデプロイメントを堅牢化して、本番環境での安全性を確保することの利点と重要性を概説しています。

重点項目

本ガイダンスは、Kubernetes 環境のコントロールを幅広くカバーしています。ネットワークの分離や認証などの予防的な制御と、ロギングやモニタリングなどの攻撃の検知と対応に使用する検知的な制御をカバーしています。Kubernetes の攻撃対象を減らしつつ、脅威が環境に侵入した際迅速に対応するためには、両者のタイプのコントロールを使用することが重要です。

以下本ガイダンスの項目を掻い摘んで、説明していきます。

Network separation (ネットワーク分離)

これは、複数のアプリケーションをホストするクラスターにとって重要な制御です。主な推奨事項には、Kubernetes の Namespace ごとに、インバウンドとアウトバウンドのトラフィックを制限するためのデフォルトポリシーのガイダンスが含まれています。この「default deny」ポリシーのアプローチは、必要なネットワークトラフィックのみをクラスター内で許可するための貴重な方法です。実装するには新しいクラスターを対象にするのが最も容易で、アプリケーションを設計する際には、ポリシーを後付けせずにネットワークフローを分析して、必要なネットワークポリシーを理解する必要があります。

Authentication (認証)

認証に関しては、非常に高いレベルのガイダンスが提供されており、Kubernetes に実装されている Service は本番環境での使用には適していないため、外部の認証サービスを使用することの重要性が指摘されています。この項目で注目すべきもう1つの制御は、攻撃者によるクラスターリソースへの不正アクセスのリスクを軽減するために、クラスターから匿名認証を削除する必要があることです。

Logging

このガイダンスでは、ロギングとモニタリングについて、クラスター管理者がコンテナ環境を設計する際に考慮すべきいくつかの重要な領域を取り上げています。コンテナのロギングについては、ログを集中管理して安全に保管し、分析することの重要性が指摘されています。また、クラスターのトラフィックを分析して、攻撃を示唆するような異常がないかどうかを確認することも重要です。

Auditing (監査)

NSA と CISA のガイダンスは、他の Kubernetes セキュリティガイドと同様に、Kubernetes の監査機能を有効にすることを推奨しています。これにより、Kubernetes API を介して行われたすべての活動を確認できます。しかし、ガイダンスが付録で提供している Kubernetes の監査ポリシーのサンプルは、大量のトラフィックを生成する可能性があるため、注意が必要です。いくつかのチューニングが必要になるでしょう。

Control plane and worker coverage (コントロールプレーンとworkerの保護)

Kubernetes を構築・導入する際には、コントロールプレーンを正しく設定して脆弱性を防ぐと同時に、クラスターにデプロイされたワークロードが適切に保護されていることを確認するためのコントロールを導入することが重要です。

Kubernetesに対する主な脅威

この資料は、NSA が Kubernetes 環境を標的とした脅威をどのように捉えているかを知る良い機会です。NSA は以下のような脅威に注意することを推奨しています。

Supply chain attacks (サプライチェーン攻撃)

このような攻撃では、システムを構成するあらゆる要素を危険にさらそうとします。これらの要素には、Kubernetes クラスターの構築や管理に使用されるサードパーティ製ソフトウェアやベンダーが含まれます。

Malicious threat actors (悪意のある攻撃者)

これらは Kubernetes システムやそれをサポートするコンポーネント、またはシステムがサポートするアプリケーションの脆弱性を利用して、通常は遠隔地からシステムを侵害することを目的とした、より伝統的な攻撃者です。悪意のある攻撃者は、金銭的な利益を得るためや損害を与えるため、あるいは敵対する国家を代表してシステムを攻撃することがあります。

Insider threats (内部の脅威)

従業員やその他関係者は、しばしばシステムへの特権的なアクセス権を持っています。悪意のある関係者は、そのアクセス権限や特別な知識などを悪用して、個人的な利益のためにシステムを危険にさらします。

気をつけたいこと

これらのガイダンスは、コンテナセキュリティに関する他の多くのガイドラインと同様に、最新の開発状況を把握することの難しさを示しています。簡単に言えば、DevOps の動きは非常に速いため、ガイドラインがリリースされたときにはすでに情報が古くなっていることが多く、NSA と CISA の Kubernetes Hardening Guidance も例外ではありません。ガイダンスでは、適用される Kubernetes のバージョンが明記されていないため、推奨事項がいつ古くなったのかを判断するのは難しく、実際、すでに古くなっているものもあります。

ガイダンスには、Kubernetes の機能である Pod Security Policy に関連するいくつかの推奨事項が含まれていますが、これはすでに非推奨となっています。代わりに、Kubernetes の Pod Security Standards(PSS)を使用する方が、利用可能なオプションの多くをカバーしています。クラスター内のすべてのワークロードは、Baseline PSS を使用する必要があり、可能な限り、より高いセキュリティのために制限された PSS を使用する必要があります。また、ガイダンスでは、コントローラマネージャーとスケジューラーのポートの古い安全でないバージョンについて言及しています。

Aquaを導入することで何ができるか

Kubernetes security

Aqua の Kubernetes Security には、NSA や CISA の堅牢化推奨事項を支援する、あるいは完全に満たすことができる多くの機能が含まれています。Kubernetes Security の機能により、以下のことが可能になります。

  • コンテナや Pod に脆弱性や設定ミスがないかスキャンする
  • 強力な認証と認可を使用して、過度なアクセス権を持たせないようにする
  • 最小限の権限でコンテナや Pod を実行する
  • 脆弱性スキャンを使用してリスクを特定、リスクに関する詳細が確認でき、パッチが提供されていることが確認できる

Runtime and workload protection (ランタイムとワークロードの保護)

Aqua のランタイム保護とワークロードセキュリティ機能により、以下のことが可能になります。

  • ネットワークの分離を徹底し、侵入の際に攻撃者の到達範囲を狭める
  • 不要なネットワーク接続を制限する
  • ネットワーク通信が適切に暗号化されていること

まとめ


強力なセキュリティ要件がこれほど重要視されている時代はありません。その意味では、NSA と CISA のガイダンスは適切なタイミングで提供されています。クラウドネイティブセキュリティは急速に変化している分野であることを考慮して、このガイダンスは徹底的に、Kubernetes 環境に対する幅広い制御の利点を検証しています。ネットワークの分離や認証などの予防的な制御と、攻撃の検知と対応に使用できるロギングやモニタリングなどの検知的な制御の両方をカバーしています。

Kubernetes Hardening Guidance は、Kubernetes 環境のセキュリティを確保するための貴重な指針となりますが、完璧なものではありません。ガイダンスの中には古いものもありますし、Kubernetes のバージョンについて言及されていません。これは、推奨事項が特定のバージョンにのみ適用される可能性があるため、重要なポイントです。

Kubernetes セキュリティのベストプラクティスについての詳細は、Gartner 社のレポート「Best Practices for Running Containers and Kubernetes in Production」をご覧ください。

New call-to-action

新規CTA