Google Vertex AIに権限昇格の脆弱性、低権限ユーザーがサービスエージェントを悪用可能に

はじめに

セキュリティ研究者らは、Googleの機械学習プラットフォーム「Vertex AI」において、低権限ユーザーが高権限のサービスエージェントアカウントを乗っ取ることができる、深刻な権限昇格の脆弱性を発見しました。この脆弱性はVertex AI Agent EngineおよびRay on Vertex AIに影響を与え、デフォルト設定が低権限ユーザーにプロジェクト全体にわたる広範な権限を持つ管理対象IDへのアクセスを許してしまうものです。

現在、企業の98%がGoogle Cloud Vertex AIのような生成AIインフラを導入または試行している中、これらの見過ごされがちなIDリスクは、クラウド環境に重大な脅威をもたらす可能性があります。サービスエージェントは、Google Cloudがユーザーに代わって内部操作を実行するために管理する特別なサービスアカウントであり、しばしば広範な権限が自動的に付与されます。

脆弱性の詳細

研究者らは、これらの「見えない」管理対象IDを悪用可能な権限昇格の経路に変える2つの異なる攻撃ベクトルを特定しました。これらの問題についてGoogleに開示した際、同社はサービスが「意図したとおりに機能している」と回答しており、これらの設定が現在もデフォルトのままであることを意味します。

Vertex AI Agent Engineのツールインジェクション脆弱性

最初の脆弱性は、GoogleのADKなどのフレームワークを使用してGCPインフラストラクチャ上にAIエージェントをデプロイするVertex AI Agent Engineを標的としています。

  • aiplatform.reasoningEngines.Updateの権限を持つ攻撃者は、推論エンジン内のツール呼び出しに悪意のあるPythonコードを注入できます。
  • 攻撃は、既存の推論エンジンに、標準関数内にリバースシェルなどの悪意のあるコードを含むツールを更新することで機能します。
  • コードは推論エンジンのコンピューティングインスタンス上で実行され、攻撃者はインスタンスのメタデータサービスを通じて「Reasoning Engine Service Agent」の認証情報を抽出できます。
  • デフォルトでは、このサービスエージェントは、Vertex AIのメモリ、チャットセッション、ストレージバケット、ロギング機能へのアクセスを含む広範な権限を持っています。
  • 攻撃者はすべてのチャット会話を読み取り、LLMのメモリにアクセスし、ストレージリソースから機密情報を取得することができます。
  • 重要なのは、公開バケットをステージング場所として利用できるため、最小限の権限しか必要としない点です。

Ray on Vertex AIの脆弱性

2つ目の脆弱性は、Ray on Vertex AIクラスターに影響を与えます。ここでは「Custom Code Service Agent」がクラスターのヘッドノードに自動的にアタッチされます。

  • aiplatform.persistentResources.listおよびaiplatform.persistentResources.getの権限(標準の「Vertex AI Viewer」ロールに含まれる)を持つユーザーは、GCPコンソールを介してヘッドノードへのrootアクセスを取得できます。
  • 読み取り専用のビューア権限しか持たないにもかかわらず、攻撃者はコンソール内の「Head node interactive shell」リンクをクリックしてrootシェルを取得できます。
  • そこから、メタデータサービスをクエリしてCustom Code Service Agentのアクセストークンを取得します。
  • このトークンはIAM操作のスコープが限定されていますが、ストレージバケット、BigQueryリソース、Pub/Subに対する完全な制御と、クラウドプラットフォーム全体への読み取り専用アクセスを許可します。

Googleの回答と推奨される対策

Googleはこれらの問題について「意図したとおりに機能している」と回答していますが、プラットフォームエンジニアとセキュリティチームは、これらの技術的メカニズムを理解し、環境を即座に保護する必要があります。

Vertex AIを使用している組織は、以下の対策を講じるべきです。

  • カスタムロールを使用して、不要なサービスエージェントの権限を失効させる。
  • ヘッドノードのシェルを無効にする。
  • 更新前にツールコードを検証する。
  • Security Command Centerを通じてメタデータサービスへのアクセスを監視する。

元記事: https://gbhackers.com/google-vertex-ai-flaw/