Google Vertex AIの欠陥により、低権限ユーザーがサービスエージェントのロールへ権限昇格可能に

セキュリティ研究者は、GoogleのVertex AIプラットフォームにおける重大な権限昇格の脆弱性を発見しました。これにより、最小限の権限しか持たない攻撃者が、高権限のService Agentアカウントを乗っ取ることが可能になります。

この欠陥はVertex AI Agent EngineおよびRay on Vertex AIに影響し、デフォルト設定により低権限ユーザーが、プロジェクト全体にわたる権限を持つ強力なマネージドIDへアクセスできてしまいます。

企業が生成AIインフラを急速に導入する中、現在98%がGoogle Cloud Vertex AIのようなプラットフォームを試験または実装しており、見落とされがちなこれらのIDリスクはクラウド環境に重大な脅威をもたらします。

Service Agentは、Google Cloudによって管理される特別なサービスアカウントで、ユーザーに代わって内部処理を実行し、多くの場合、自動的に広範な権限が付与されます。

研究者は、これらの「見えない」マネージドIDを悪用可能な権限昇格経路へと変えてしまう、2つの異なる攻撃ベクトルを特定しました。

Image
Vertex AI Agent Engineのツールインジェクションフロー

Googleに開示したところ、同社はサービスは「意図したとおりに動作している」と回答しており、つまりこれらの設定は現在もデフォルトのままです。

プラットフォームエンジニアおよびセキュリティチームは、環境を直ちに保護するために、これらの技術的な仕組みを理解する必要があります。

最初の脆弱性はVertex AI Agent Engineを標的としています。これは、GoogleのADKなどのフレームワークを用いて、開発者がGCPインフラ上にAIエージェントをデプロイできるようにするものです。

機能 Vertex AI Agent Engine Ray on Vertex AI
主な標的 Reasoning Engine Service Agent Custom Code Service Agent
脆弱性の種類 悪意のあるツール呼び出し(RCE) 安全でないデフォルトアクセス(ViewerからRootへ)
初期権限 aiplatform.reasoningEngines.update aiplatform.persistentResources.get/list
影響 LLMメモリ、チャット、GCSアクセス Rayクラスタのroot;BigQuery/GCSの読み書き

研究者は、aiplatform.reasoningEngines.Update権限を持つ攻撃者が、推論エンジン内のツール呼び出しに悪意のあるPythonコードを注入できることを発見しました。

この攻撃は、既存の推論エンジンを更新し、標準的な関数の内部に埋め込んだリバースシェルなどの悪意あるコードを含むツールを追加することで成立します。

Image
どのアカウントの公開バケットでもステージングバケットとして使用可能

トリガーされると、コードは推論エンジンのコンピュートインスタンス上で実行され、攻撃者はインスタンスメタデータサービスを通じて「Reasoning Engine Service Agent」の認証情報を抽出できます。

デフォルトでは、このサービスエージェントは、Vertex AIのメモリ、チャットセッション、ストレージバケット、ログ機能へのアクセスなど、広範な権限を保有しています。

攻撃者は、すべてのチャット会話を読み取り、LLMメモリにアクセスし、ストレージリソースから機微情報を取得できます。

重要なのは、この攻撃に必要な権限が最小限である点で、どのアカウントの公開バケットでもステージング場所として利用できることです。

Ray on Vertex AI

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

XM Cyberの研究者は発見し、aiplatform.persistentResources.listおよびaiplatform.persistentResources.のみを持つユーザーが

標準の「Vertex AI Viewer」ロールに含まれる権限を持つユーザーは、GCPコンソール経由でヘッドノードへのrootアクセスを取得できます。

Image
Ray on Vertex AIの欠陥

読み取り専用の閲覧者権限しかないにもかかわらず、攻撃者はコンソール内の「Head node interactive shell」リンクをクリックしてrootシェルを取得できます。

そこから、メタデータサービスを照会して、Custom Code Service Agentのアクセストークンを取得します。

このトークンのIAM操作スコープは限定的ですが、ストレージバケット、BigQueryリソース、Pub/Subに対する完全な制御と、クラウドプラットフォーム全体に対する読み取り専用アクセスを付与します。

Vertex AIを利用する組織は、カスタムロールを用いて不要なService Agent権限を取り消し、ヘッドノードシェルを無効化し、更新前にツールコードを検証し、Security Command Centerを通じてメタデータサービスへのアクセスを監視すべきです。

翻訳元: https://gbhackers.com/google-vertex-ai-flaw/

ソース: gbhackers.com