Istio初のセキュリティ評価の結果発表
NCC Groupによる第三者セキュリティレビューの結果。
Istioサービスメッシュは、幅広い業界で本番環境での導入が進んでいます。プロジェクトの成功と、インフラストラクチャにおける主要なセキュリティポリシーの実施に不可欠な利用状況から、プロジェクトに関連するセキュリティリスクについて、オープンで中立的な評価を行う必要がありました。
この目標を達成するために、Istioコミュニティは昨年、プロジェクトの第三者セキュリティ評価を実施するためにNCC Groupと契約しました。レビューの目的は、「Istioコードベースに関連するセキュリティ問題を特定し、管理者によって一般的に使用される高リスク構成を強調し、セキュリティ機能が提供するように設計された懸念事項に十分に対処しているかどうかについての見解を提供する」ことでした。
NCC Groupは、Istioコミュニティの主題専門家との協力を得て、5週間にわたってレビューを実施しました。このブログでは、レポートの主な調査結果、さまざまな修正と推奨事項を実装するために取られた措置、およびIstioプロジェクトの継続的なセキュリティ評価と改善のための計画について検証します。完全版のセキュリティ評価レポートをダウンロードして読むことができます。
スコープと主な調査結果
評価では、Istioのアーキテクチャ全体をセキュリティ関連の問題について評価しました。istiod(Pilot)、Ingress/Egressゲートウェイ、およびデータプレーンプロキシとしてのIstioの全体的なEnvoyの使用などの主要コンポーネントに焦点を当てました。さらに、セキュリティガイドを含むIstioのドキュメントの正確さと明確さについても監査しました。レポートはIstioバージョン1.6.5に対して作成され、その後、製品セキュリティワーキンググループは、新しい脆弱性が開示されるたびに、新しいレポートで提起された懸念事項に対処するための修正とともに、いくつかのセキュリティリリースを発行しました。
レポートの重要な結論は、監査担当者がIstioプロジェクト内で「重大」な問題を発見しなかったということです。この調査結果は、Istioの製品セキュリティワーキンググループ(PSWG)によって実装された継続的かつ積極的なセキュリティレビューと脆弱性管理プロセスを検証するものです。レポートで表面化した残りの問題について、PSWGは対応に取り組みました。そして、「高」とマークされたすべての問題と、「中/低」とマークされたいくつかの問題がレポートに続くリリースで解決されたことを喜んで報告します。
レポートでは、セキュリティのベストプラクティスガイドで入手できる、強化ガイドを作成することに関する戦略的な推奨事項も提示されています。これは、Istioコミュニティのセキュリティ専門家と、本番環境でIstioを実行している業界リーダーからの推奨事項をまとめた包括的なドキュメントです。安全な環境にIstioをインストールするための、意見がまとまった強化されたセキュリティプロファイルを作成する作業が進行中ですが、当面は、ユーザーがセキュリティのベストプラクティスガイドに従い、セキュリティ要件を満たすようにIstioを構成することをお勧めします。それでは、レポートで提起されたさまざまな問題の分析と解決策を見ていきましょう。
解決策と学び
コントロールプレーンネットワーク通信を保護できない
レポートでは、コントロールプレーンへの通信を保護する方法を制御するために、古いバージョンのIstioで利用可能であった構成オプションが指摘されています。1.7以降、Istioはデフォルトでコントロールプレーンのすべての通信を保護しており、レポートで言及されているコントロールプレーン暗号化を管理するための多くの構成オプションは不要になりました。
レポートで言及されているデバッグエンドポイントは、ユーザーがistioctl
ツールを使用してIstioサービスメッシュをデバッグできるように、デフォルトで有効になっています(Istio 1.10の時点)。セキュリティのベストプラクティスガイドで言及されているように、環境変数ENABLE_DEBUG_ON_HTTP
をfalseに設定することで無効にできます。さらに、今後のバージョン(1.11)では、このデバッグエンドポイントはデフォルトで保護され、アクセスするには有効なKubernetesサービスアカウントトークンが必要になります。
セキュリティ関連のドキュメントの不足
レポートは、Istio 1.6で公開されたセキュリティ関連のドキュメントにギャップがあることを指摘しています。それ以来、ユーザーが要件を満たすためにIstioを安全にデプロイできるようにするための推奨事項を含む、詳細なセキュリティのベストプラクティスガイドを作成しました。今後、このドキュメントをさらに強化し、推奨事項を強化していきます。ユーザーは、更新についてガイドを監視することをお勧めします。
VirtualService Gatewayフィールドの検証不足によりリクエストハイジャックが可能になる
この問題について、レポートでは、リクエストが誤ってルーティングされる可能性のある、有効ではあるが寛容なゲートウェイ構成を使用しています。Kubernetes RBACと同様に、ゲートウェイを含むIstio APIは、要件に応じて寛容または制限的に調整できます。ただし、レポートでは、ベストプラクティスとユーザーが環境を保護するためのガイダンスに関連するドキュメントの欠落が表面化しました。これらに対処するために、ゲートウェイを安全に実行するための手順をセキュリティのベストプラクティスガイドに追加しました。特に、ゲートウェイリソースでホスト仕様で名前空間プレフィックスを使用することを説明するセクションは、構成を強化し、このタイプのリクエストハイジャックを防ぐために強く推奨されています。
Ingressゲートウェイ構成の生成によりリクエストハイジャックが可能になる
レポートでは、ゲートウェイリソース内の名前空間をまたいでラベルでゲートウェイワークロードを選択するデフォルトのメカニズムを使用すると、リクエストハイジャックが発生する可能性があることを提起しています。この動作は、ゲートウェイとVirtualServiceリソースの管理をアプリケーションチームに委任すると同時に、運用チームが、たとえば専用ノードで実行するなど、独自のセキュリティ要件を満たすためにIngressゲートウェイワークロードを一元的に管理できるように、デフォルトで選択されました。レポートで強調されているように、このデプロイトポロジが環境で必須でない場合は、ゲートウェイリソースをゲートウェイワークロードと併置し、環境変数PILOT_SCOPE_GATEWAY_TO_NAMESPACE
をtrueに設定することを強くお勧めします。
Istioコミュニティが推奨するさまざまなデプロイモデルを理解するには、ゲートウェイデプロイトポロジガイドを参照してください。さらに、セキュリティのベストプラクティスガイドで述べられているように、ゲートウェイリソースの作成は、承認されたエンティティのみが作成できるように、Kubernetes RBACまたはその他のポリシー適用メカニズムを使用してアクセス制御する必要があります。
その他の重大度中および低の問題
プロジェクト内のさまざまなレベルで公開されているデバッグ情報に関連する、2つの中程度の重大度の問題が報告されており、これらの問題は、機密情報へのアクセスやサービス拒否(DOS)攻撃の調整に使用される可能性があります。Istioは、プロファイリングや「istioctl」などのツールを有効にするためにこれらのデバッグインターフェースをデフォルトで有効にしていますが、上記のように環境変数ENABLE_DEBUG_ON_HTTP
をfalseに設定することで無効にできます。
レポートは、Istioが出荷するデフォルトのイメージにインストールされているsudo
、tcpdump
などのさまざまなユーティリティが、特権昇格攻撃につながる可能性があることを正しく指摘しています。これらのユーティリティは、メッシュを流れるパケットの実行時デバッグを支援するために提供されており、ユーザーは本番環境でこれらのイメージの強化バージョンを使用することをお勧めします。
レポートでは、トラフィックを傍受するためにiptables
を使用する、サイドカープロキシベースのサービスメッシュ実装における既知のアーキテクチャ上の制限も表面化しています。このメカニズムはサイドカープロキシのバイパスの影響を受けやすく、これは安全な環境にとって有効な懸念事項です。これは、セキュリティのベストプラクティスガイドの多層防御の推奨事項に従うことで対処できます。また、Kubernetesコミュニティと協力して、より安全なオプションを調査しています。
有用性とセキュリティのトレードオフ
評価の調査結果と、それらに対処するために行われた推奨事項に傾向があることに気付いたかもしれません。Istioは、要件に基づいてより安全なインストールを作成するためのさまざまな構成オプションを提供しており、ユーザーが従うための包括的なセキュリティのベストプラクティスガイドを導入しました。Istioは本番環境で広く採用されているため、安全なデフォルトへの切り替えと、アップグレード時に既存のユーザーで発生する可能性のある移行問題との間でトレードオフが生じます。Istio製品セキュリティワーキンググループは、これらの各問題を評価し、ユーザーが安全な構成をオプトインしてワークロードを移行するためのリリースをいくつか行った後、ケースバイケースで安全なデフォルトを有効にするためのアクションプランを作成します。
最後に、中立的なセキュリティ評価を受ける中で、および受けた後に、私たちにとっていくつかの教訓がありました。主なものは、調査結果に迅速に対応するためのセキュリティプラクティスが堅牢であることを確認すること、そしてさらに重要なことに、中断なしにアップグレードに対する基準を維持しながら、セキュリティ強化を行うことでした。
この取り組みを継続するために、Istio製品セキュリティワーキンググループへのフィードバックと参加を常に求めています。問題を提起したり、Istioを安全に保つために行っていることについて学ぶために、公開会議に参加してください!