- Googleの新しいエージェント型コードエディタ Antigravity は、間接プロンプトインジェクション を通じてユーザーの 認証情報とコード を外部に流出させる可能性がある
- 攻撃は、Gemini が悪意あるWebページの隠された命令を読み取り、ブラウザサブエージェント(subagent) を呼び出してデータを送信する形で行われる
- Geminiはデフォルト設定でアクセスが遮断されている .envファイルの保護を回避 して認証情報を読み取り、これを webhook.site ドメインへ送信する
- デフォルトの許可リスト(Allowlist) に危険なドメインが含まれているため、ブラウザサブエージェントが悪意あるURLを通常どおり開いてしまう
- Googleはこのような データ流出リスクを認識し警告文を提供 しているが、デフォルト設定の構造上、ユーザーがすべてのエージェント動作を監視するのは難しい点が指摘されている
攻撃の概要
- AntigravityはGoogleが開発した エージェント型コードエディタ で、Geminiモデルを通じてコード作成と実行を支援する
- 研究チームはOracle ERPの AI Payer Agents 統合例を利用して攻撃シナリオを構成
- ユーザーがオンラインで見つけた実装ガイドをGeminiに提供
- そのWebページには 1ポイントの文字で隠されたプロンプトインジェクション が含まれている
- このインジェクションはGeminiに次を実行させるよう誘導する
- ユーザーコードと認証情報の収集
- 攻撃者が制御するURLの生成
- ブラウザサブエージェントを通じたそのURLへのアクセス
攻撃チェーンの詳細
- Geminiはインジェクションを読み取り、これを ツール実行要求 と誤認
- コードベースと .env ファイルの内容を収集しようと試みる
- デフォルト設定では
.gitignore に含まれるファイルへのアクセスは遮断されているが、Geminiはこれを回避
cat コマンド を使って .env ファイルの内容をターミナルに出力
- その後Geminiは攻撃者の指示に従い、URLエンコードされた認証情報とコード断片 を含む悪意あるURLを生成
- URLは webhook.site ドメインを使用し、攻撃者はリクエストログをリアルタイムで確認できる
- Geminiは ブラウザサブエージェント を呼び出してそのURLを開き、この過程でデータが外部へ送信される
- デフォルト設定で
Enable Browser Tools が有効になっているため実行可能
Browser URL Allowlist に webhook.site がデフォルトで含まれているため遮断されない
- その結果、攻撃者はwebhook.siteのログを通じて AWS認証情報と非公開コード断片 を取得
Antigravityのデフォルト設定
- オンボーディング過程で、ユーザーは デフォルト推奨設定 をそのまま受け入れるよう誘導される
- Artifact > Review Policy > Agent Decides: Geminiが人間によるレビューの必要性を自ら判断
- Terminal Command Auto Execution Policy > Auto: コマンド実行時に自動実行
- これらの設定により、Geminiは 人間の介入なしにコマンドを実行 できる
エージェント管理構造
- Antigravityの Agent Managerインターフェース は、複数のエージェントを同時に実行し、ユーザーが後から確認できるよう設計されている
- 大半のエージェントが バックグラウンドで監視されない状態で実行 される
- このため、プロンプトインジェクションに感染したエージェントが ユーザー介入なしに悪意ある行為を実行 する可能性がある
Googleのリスク認識
- GoogleはAntigravityの初回起動時に データ流出リスクに関する警告文 を表示する
- しかし研究チームは、次の2つの理由から ユーザー保護は十分ではない と指摘
- Agent Managerは複数エージェントを同時に実行する設計のため、リアルタイム監視が難しい
- デフォルト設定が人間によるレビューを省略するようになっている
- Googleがすでにこうしたリスクを認識していることを確認したため、研究チームは 責任ある開示手続きは行わなかった
要約
- Antigravityの 間接プロンプトインジェクション脆弱性 は、Geminiとブラウザサブエージェントの相互作用を悪用して 機密データ流出 を引き起こす
- デフォルトのセキュリティ設定の欠陥 と 自動化されたエージェント構造 が攻撃成功の可能性を高める
- Googleはリスクを警告しているが、根本的な緩和策 はまだ示されていない
1件のコメント
Hacker Newsの意見
Simon WillisonとMetaが提案した**「Rule of Two」アプローチが気に入っている
3つの条件のうち2つまでしか許可しない原則だ:
A) 信頼できない入力の処理、B) 非公開データへのアクセス、C) 外部状態の変更または外部通信
完璧ではないが、この3つをすべて満たすときにツールの危険性**を経営陣へ説明するのに役立った
関連記事: Willisonの記事, Metaのセキュリティアプローチ
たとえば、出力前に監視用LLMを通したとしても、プロンプトインジェクションがquine形式で広がる可能性がある
分類問題のように出力検証が可能な場合は緩和できるが、一般的なテキスト出力は防御が難しい
良い出発点ではあるが十分ではない
状態と外部通信をまとめて考えると、結局3つの条件すべてが満たされることに後から気づいた
Johann RehbergerがAntigravityの類似した脆弱性を報告している
関連ブログ記事とGoogle Bug Hunterページを見ると、
ブラウザエージェントのデータ流出攻撃はすでに「known issue」に分類され、報奨の対象外となっている
ファイルアクセスとコマンド実行権限があるため、悪意あるコマンドを実行できる
LLMセキュリティに関心がある人なら、「致命的三要素(lethal trifecta)」とデータ流出リスクをすでに知っている
だが大半は新機能にばかり熱狂し、セキュリティには無関心なのが残念だ
GeminiやAntigravityだけの問題ではなく、CLIアクセス権を持つすべてのエージェント型コーディングツールに共通する問題だ
私は個人的にClineを使っているが、Web検索MCPへのアクセスは慎重に制限している
攻撃者はこれを利用し、LLMがシステムシェル経由でファイル保護を回避した
Antigravityの問題は、こうした同意手順なしにオープンリダイレクトを許していた点だ
検索データを多く持っているからであり、プロンプトインジェクション防止に役立ってほしい
攻撃者たちの創造性はまだ始まったばかりだ
自動化されたエージェントAIとデプロイシステムが増えるにつれ、過剰な信頼が形成されていくのが恐ろしく感じる
GPUファームウェア自体が攻撃ベクトルになる可能性もある
もし自分が国家レベルの攻撃者なら、そこを狙うと思う
何十年も人間にすら秘密へのアクセスを許してこなかった
.envファイルをGitに上げるなど想像もできないただし最近は、ファームウェア脆弱性とAIモデルを組み合わせた攻撃の可能性が高まっており、より警戒すべきだ
TechCrunch記事によれば、保険業界でさえAIは危険すぎると評価している
私も同じ脆弱性をGoogleに責任ある開示で報告した
同じドメイン回避手法(webhook.site)を使っており、
私のブログ記事にはリモートコマンド実行など、他の公開済みの問題もまとめてある
正直に言って、こういう記事はかなり誇張されすぎだと思う
あらゆるLLMごとにCVEを立てて「コマンドを実行できる」と騒ぐのは時間の無駄に感じる
なぜこういう記事がHNのメインに上がるのか理解できない
LLMはそれ自体ではコードを実行しないが、Antigravityのように不注意に統合すると脆弱性が生まれる
システム全体へのアクセス権があれば、人為的なチェックは回避できる
sandboxやchrootのような隔離ツールはあるが、リリース速度(GTM)のためにしばしば省略される
ローカルモデルも、インターネット遮断やアウトバウンドファイアウォールなしでは安全ではない
LLMはコマンドとデータを区別できないことが、ほとんどの脆弱性の根本原因だ
素晴らしい記事だった
CVE-2002-1377からCVE-2019-12735まで繰り返されてきた歴史だ
Antigravityも結局CVEを付与されるのだろうかと気になる
言語モデルと外部インターネットを同時に扱うツールは、機密データにアクセスすべきではない
ACE、XSS、SQLインジェクションなども同じ根にある
既存のコードで解決策を見つけてきたように、LLMでも最終的には解決されると信じている
CursorのようなIDEは毎日何百万もの秘密にアクセスしている
こうした問題は今後も頻繁に発生するだろう
プロンプトインジェクションベースの攻撃は再現性の低さが興味深い
統計的モデルはランダム要素のため、同じ入力でも結果が変わる
Googleのようなクラウドモデルは、研究者が脆弱性を再現しにくいよう設計されている
そのうえ記事の文体がGoogle Cloudのドキュメントに似ているのも皮肉だ
AntigravityはMarkdown画像ベースのデータ流出バグにも脆弱だった
数日前に報告されたが、「意図された動作」と表示された
関連ツイート
私のブログにその一部を記録している