セキュリティ研究者は、GoogleのVertex AIプラットフォームにおける2つの重大な権限昇格の脆弱性を発見しました。これにより、低権限ユーザーが高権限のサービスエージェント(Service Agent)ロールを乗っ取れる可能性があります。
これらの欠陥はVertex AI Agent EngineとRay on Vertex AIに影響し、デフォルト設定が攻撃者に「Viewer」権限をプロジェクト全体のアクセスへと変換する経路を作り出します。
Googleは、これらのサービスは「意図したとおりに動作している」と確認しており、つまりこれらのリスクは現在もデフォルトのデプロイメントで有効なままです。
サービスエージェントは、Google Cloudによって管理される特別なサービスアカウントで、Vertex AIサービスがリソースへアクセスし、内部操作を実行できるようにします。
これらの管理IDには自動的に広範なプロジェクト全体の権限が付与されます。今回発見された攻撃ベクトルは、低権限ユーザーがサービスエージェントの認証情報を抽出し、より高権限のコンテキストへ横展開できるようにすることで、この信頼モデルを悪用します。
両方の脆弱性は似たパターンに従います。最小限の権限しか持たない攻撃者がVertex AIのコンピュートインスタンスとやり取りし、コード実行または直接アクセスを達成し、その後インスタンスのメタデータサービスからアタッチされたサービスエージェントの認証情報を抽出します。
初期ユーザーの権限は限定的である一方、乗っ取られたサービスエージェントは、ストレージ、AIサービス、データアクセスに関して広範なプロジェクト権限を保持していることが多いです。
最初の攻撃はVertex AI Agent Engineを標的にします。これは開発者がGCPインフラ上にAIエージェントをデプロイできるようにするものです。
GoogleのAgent Development Kit(ADK)などのフレームワークを使用して、開発者はPythonコードを推論エンジンにアップロードします。推論エンジンは、エージェントのロジックとツール呼び出しを処理するコンピュートインスタンスを抽象化します。
研究者は、 aiplatform.reasoningEngines. An update 権限を持つ攻撃者が、既存の推論エンジンを更新することで、通貨換算関数のような標準的な関数にPythonのリバースシェルを埋め込んだ形でツール定義へ悪意のあるコードを注入できることを発見しました。
悪意のあるツールが実行されると、攻撃者は推論エンジンのインスタンス上でリモートコード実行を獲得します。
そこから、インスタンスのメタデータサービスにアクセスして、「Reasoning Engine Service Agent」(service-<project_id>@gcp-sa-aiplatform-re.iam.gserviceaccount.com)のアクセストークンを取得します。
このサービスエージェントは、Vertex AIのメモリとセッション、ストレージバケット、ログサービスに対する権限を保持しています。攻撃者はすべてのチャットセッション、LLMメモリ、そしてGoogle Cloud Storageバケットに保存された潜在的に機微なデータを読み取れる可能性があります。
2つ目の脆弱性はRay on Vertex AIに影響します。この機能は、スケーラブルなAIワークロードのためにRayライブラリの機能をGCPインフラと統合します。
Rayクラスターがデプロイされると、Googleは自動的に「Custom Code Service Agent」をクラスターのヘッドノードにアタッチします。
Viewer権限しか持っていないにもかかわらず、GCPインターフェースは「Head node interactive shell」リンクを公開しており、root権限の対話型シェルを付与します。
この昇格した立場から、攻撃者はメタデータサービスに問い合わせてCustom Code Service Agentのアクセストークンを抽出します。
このトークンのIAM操作スコープは限定的である一方で、ストレージ(devstorage.full_control)、BigQuery、Pub/Subに対する完全な制御と、クラウドプラットフォーム全体にわたる読み取り専用アクセスを保持しています。
これにより、「Viewer」がストレージバケット、ログ、BigQueryデータセット、その他の機微なリソースに対して読み書きできるようになります。
Googleがこれらの構成を意図的なものと見なしているため、プラットフォームエンジニアとセキュリティチームは直ちに対策を講じる必要があります。
必要のないサービスエージェント権限を削除するために、必要最小限の権限のみを持つカスタムロールを作成してください。
Rayクラスターのヘッドノードシェルアクセスを無効化し、推論エンジンを更新する前にすべてのツールコードを検証してください。
Google Security Command CenterのAgent Engine Threat Detectionを使用してメタデータサービスへのアクセスを監視し、リモートコード実行やトークン抽出の不審な試行を検知できるようにしてください。
翻訳元: https://cyberpress.org/privilege-escalation-bug-in-google-vertex-ai/