Aquaの新機能Kubernetes Security Posture Managementの紹介 #aqua #コンテナ #セキュリティ #kubernetes #KSPM
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは「Aqua Security」社の技術ブログで2020年10月28日に公開された「 Introducing KSPM by Aqua: Kubernetes Security Posture Management 」の日本語翻訳です。
Aquaの新機能Kubernetes Security Posture Managementの紹介
Kubernetesの急速な普及に伴い、予期せぬ事態が発生しています。それは K8s セキュリティの専門家はおろか、K8s の専門家の数も十分ではないということです。Kubernetes 環境は規模と複雑さを増し、攻撃対象を拡大し、最終的には悪用されやすくなっています。K8s の設定には、多くの異なるユーザによる多くの異なるパラメータの微調整が含まれているため、ヒューマンエラーの可能性が横行しています。ではそれに対してどのように対処できるのでしょうか。
まず K8s の構成を、クラウドネイティブインフラの複雑なシステムとして扱う必要があります。クラウドセキュリティポスチャマネジメント(CSPM)がセキュアなクラウドインフラの構成を自動化し、繰り返し行われる手動オペレーションを排除するために使用されているように、今こそ Aqua KSPM を K8s インフラに適用しはじめる時です。
具体的に何を守る必要があるのか
Kubernetes の利用が増えるにつれ、インフラの誤設定も増えてきています。例えば、様々な場所に複数の K8s クラスタを管理しているとします。1 つの場所に 1 つのクラスタを管理するだけでも十分に複雑であることを考えると、一見無数のコンポーネントと数千もの設定オプションを持つ複数のサービスを使用している複数のクラスタの課題は、当然のことながら圧倒的なものです。これを維持するには、クラスタ構成、RBAC、内部コンポーネント、ホスト環境、ワークロードなどを追跡する必要があります。これを一貫して効率的にエラーを繰り返さずに行う唯一の方法は、これらの構成を継続的に監査することであり、これには反復可能な自動化された機能が必要です。
ヒューマンエラーという感情的な問題もあります。人間は間違いを犯すものです。開発責任が分散され、「シフトレフト」の実践によって前倒し型のプロセスが生まれたため、より多くの Dev が介入するようになりました。確かにこれはより多くの人が自分の環境を定義するためのアクセス権を与えることで、より良い俊敏性を提供します。しかし、ほとんどの場合開発者はインフラセキュリティの達人ではなく、上流での小さな変更が下流で大きな影響を与える可能性を持つという欠点があります。
それは、熟練した K8s の管理者が十分にいないという、「クラウドネイティブ」人生の不幸な事実です。また、たとえ熟練しているとしても、K8s セキュリティの専門家としての熟練しているとは限りません。なぜなら Kubernetes のセキュリティモデルは多面的で非線形だからです。つまり、インフラのある領域で選択された設定が他の設定に影響を与えることがあり、特に何をしているのかよく分かっていない場合は理解が難しいということです。例えば、コンテナイメージの脆弱性、Pod のセキュリティ設定、ノードホストの OS 強化の相互作用を見てみると、適切に設定されていないとセキュリティギャップによる「複数の要因によるインシデント」の発生する可能性があります。
適切なツールの使用
過去数年間、CIS ベンチマークは業界で唯一の詳細で実行可能な「基準」であり、人々はそれに合わせることができました。しかし、それには限界があります。CIS ベンチマークは特定の環境に則した評価を行わず、一連の項目を確認する方法では正しく実装するには不十分であり、難しい概念でもあります。
Aqua はオープンソースとして提供している Kube-bench ツールにより Kubernetes の CIS ベンチマークチェックを自動化する方法をすでにリードしており、それ以来 Aqua のプラットフォームの重要な一部となっています。さらに、業界唯一の Kubernetes 専用のペネトレーションテストツールである Kube-hunter を発表していますが、これもプラットフォームに統合されています。Aqua の Risk Explorer は、K8s クラスタ内のリスクの可視化と優先順位付けをネイティブに提供するもう1つの機能です。このように、Aqua には Kubernetes のセキュリティ問題を理解し、優先順位をつけるための機能がたくさんあります。お客様からは、ベストプラクティスを用いて作業を簡素化し、サポートするより包括的なアプローチが必要だとフィードバックを頂いていました。
Aqua KSPM の紹介
新しく追加された Aqua の Kubernetes Security Posture Management(KSPM)は、Kubernetes セキュリティソリューション全体の重要なコンポーネントです。KSPM には Aqua の既存の機能も含まれていますが、それ以上に重要なことは新機能が導入・統合されたことです。Rego 言語に基づいた K8s Assurance Policy、および K8s の Role と subject のリスク評価により、Kubernetes 環境の継続的なセキュリティとコンプライアンス維持のための完全な方法論を提供します。
Kubernetes-native な機能を活用して拡張することで、KSPM はセキュリティやコンプライアンスチームがポリシーに基づいた構成とガバナンスを導入・実施することが可能となりました。これにより、特定されたリスクを修正し、継続的なセキュリティ評価とアドバイスを適用してクラウドネイティブアプリケーションのセキュリティを確保することを可能にします。
K8s Assurance Policies- この新しい機能により、Kubernetes の実装をサポートするポリシーとガバナンスのリソースを効果的に管理できます。新たな形として代表するこのポリシーは、ワークロード構成のセキュリティを最初から評価することで、ワークロードセキュリティのシフトレフトの実現に役立ちます。Kubernetes ネイティブなコントロールを使用して Pod のデプロイを承認/ブロックしたり、K8s が提供する機能に基づいた数十種類のルールを活用したり、Rego 言語を使用してカスタムルールを作成したり、Open Policy Agent(OPA)からインポートできます。
Aqua の Kubernetes Assurance Policy にはさらに、新たに Pod のコンプライアンスフローも含まれます。既存の Image Assurance Policy と Kubernetes Assurance Policy を組み合わせることで、より完全で安全なコンプライアンスに準拠した環境を構築できます。
KSPM における Aqua の新しいポリシーフローは、ワークロードが2つの評価をクリアすることを保証します。1つは、コンテナイメージの内容(脆弱性、秘密鍵、マルウェアなど)がポリシーに準拠しているか否かをチェックします。2つ目のチェックでは、クラスタと Pod の構成(リソース制限、capabilities、ネットワークなど)に基づいて Kubernetes Assurance Policyを適用します。Pod のインスタンス化に使用されるコンテナイメージがいずれかのポリシーに違反していることが判明した場合、そのイメージは「non-compliant」としてマークされ、ポリシーに基づいてクラスタ内でコンテナのデプロイができなくなります。
K8s Roles & Subjects Risk Assessment- Aqua は Kubernetes における最小特権のベストプラクティスの概要を作成した Apolicy 社と提携しました。ユーザや ServiceAccount などのリスクの高い領域を簡単に特定・対処可能な機能を提供できることになりました。
Aqua KSPM には K8s クラスタに影響しうる全てのリスクを確認できる機能が含まれています。Aqua KSPM で組み込まれた専門知識に基づいた評価機能を提供することで、お客様の環境における修復の優先順位付けが容易になりました。評価は K8s のワークロードに影響を与える様々なタイプのリスクを1つにまとめて表示します。
まとめ
Kubernetes は設定が困難です。日々 K8s 環境におけるアタックサーフェスも拡大しており、また、K8s のセキュリティ専門家も不足しています。人間は過ちを犯します。そのため、Aqua がソリューションを提供します。
最新版の Aqua では、真に完全なアプローチで Kubernetes セキュリティソリューションの領域を再定義しうる Kubernetes Security Posture Managementを発表しました。Aqua KSPM は、K8s クラスタ構成のセキュリティ確保、攻撃に対する脆弱性の理解と軽減、最小特権アクセスの正確な適用、リスクの修正、ポリシーへの準拠を支援します。また、Rego や OPA の機能を使用することで、DevOps チームが簡単にポリシーを導入できます。これらの機能は、既存の知見に基づいて追加されています。K8s Assurance Policy と Apolicy の評価は、チェックを自動化するだけでなく、環境に与えるリスク度も評価し、十分に研究された情報
をもとにしたルールを適用しています。