2 ポイント 投稿者 GN⁺ 2025-11-26 | 1件のコメント | WhatsAppで共有
  • 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つの理由から ユーザー保護は十分ではない と指摘
    1. Agent Managerは複数エージェントを同時に実行する設計のため、リアルタイム監視が難しい
    2. デフォルト設定が人間によるレビューを省略するようになっている
  • Googleがすでにこうしたリスクを認識していることを確認したため、研究チームは 責任ある開示手続きは行わなかった

要約

  • Antigravityの 間接プロンプトインジェクション脆弱性 は、Geminiとブラウザサブエージェントの相互作用を悪用して 機密データ流出 を引き起こす
  • デフォルトのセキュリティ設定の欠陥自動化されたエージェント構造 が攻撃成功の可能性を高める
  • Googleはリスクを警告しているが、根本的な緩和策 はまだ示されていない

1件のコメント

 
GN⁺ 2025-11-26
Hacker Newsの意見
  • Simon WillisonとMetaが提案した**「Rule of Two」アプローチが気に入っている
    3つの条件のうち2つまでしか許可しない原則だ:
    A) 信頼できない入力の処理、B) 非公開データへのアクセス、C) 外部状態の変更または外部通信
    完璧ではないが、この3つをすべて満たすときに
    ツールの危険性**を経営陣へ説明するのに役立った
    関連記事: Willisonの記事, Metaのセキュリティアプローチ

    • (C) は、単にエージェントが外部と意図的に通信する場合だけでなく、ユーザーが生成されたテキストを見られるあらゆる状況を含む
      たとえば、出力前に監視用LLMを通したとしても、プロンプトインジェクションがquine形式で広がる可能性がある
      分類問題のように出力検証が可能な場合は緩和できるが、一般的なテキスト出力は防御が難しい
    • AとBだけでも秘密が攻撃者の手に渡る可能性がある
      良い出発点ではあるが十分ではない
      状態と外部通信をまとめて考えると、結局3つの条件すべてが満たされることに後から気づいた
  • Johann RehbergerがAntigravityの類似した脆弱性を報告している
    関連ブログ記事Google Bug Hunterページを見ると、
    ブラウザエージェントのデータ流出攻撃はすでに「known issue」に分類され、報奨の対象外となっている
    ファイルアクセスとコマンド実行権限があるため、悪意あるコマンドを実行できる

    • こうした攻撃がすでに業界で公然の秘密になっていることを認めている
      LLMセキュリティに関心がある人なら、「致命的三要素(lethal trifecta)」とデータ流出リスクをすでに知っている
      だが大半は新機能にばかり熱狂し、セキュリティには無関心なのが残念だ
  • GeminiやAntigravityだけの問題ではなく、CLIアクセス権を持つすべてのエージェント型コーディングツールに共通する問題だ
    私は個人的にClineを使っているが、Web検索MCPへのアクセスは慎重に制限している

    • Antigravityはドメインホワイトリストとファイル制限で防御しようとしたが、リダイレクト可能なサービスを見落としていた
      攻撃者はこれを利用し、LLMがシステムシェル経由でファイル保護を回避した
    • Web検索MCP自体は問題ないが、AIモデルとMCPを制御するプログラムこそが実際の攻撃ベクトルだ
    • Copilotは信頼できないURLにアクセスする際、ユーザーに明示的な同意を求める
      Antigravityの問題は、こうした同意手順なしにオープンリダイレクトを許していた点だ
    • 信頼できるURLフィルタリングはGoogleが最も得意なはずだ
      検索データを多く持っているからであり、プロンプトインジェクション防止に役立ってほしい
    • デフォルト設定であらゆるコマンドを自動許可するよう誘導した点は批判されるべきだ
  • 攻撃者たちの創造性はまだ始まったばかりだ
    自動化されたエージェントAIとデプロイシステムが増えるにつれ、過剰な信頼が形成されていくのが恐ろしく感じる
    GPUファームウェア自体が攻撃ベクトルになる可能性もある
    もし自分が国家レベルの攻撃者なら、そこを狙うと思う

    • 私の職場ではエージェントAIに秘密へのアクセス権は一切ない
      何十年も人間にすら秘密へのアクセスを許してこなかった
      .envファイルをGitに上げるなど想像もできない
      ただし最近は、ファームウェア脆弱性とAIモデルを組み合わせた攻撃の可能性が高まっており、より警戒すべきだ
    • 企業もようやくリスクを認識し始めている
      TechCrunch記事によれば、保険業界でさえAIは危険すぎると評価している
  • 私も同じ脆弱性をGoogleに責任ある開示で報告した
    同じドメイン回避手法(webhook.site)を使っており、
    私のブログ記事にはリモートコマンド実行など、他の公開済みの問題もまとめてある

  • 正直に言って、こういう記事はかなり誇張されすぎだと思う
    あらゆるLLMごとにCVEを立てて「コマンドを実行できる」と騒ぐのは時間の無駄に感じる
    なぜこういう記事がHNのメインに上がるのか理解できない

    • ただしこれはLLM自体のバグではなく、LLMを利用するソフトウェアの設計欠陥
      LLMはそれ自体ではコードを実行しないが、Antigravityのように不注意に統合すると脆弱性が生まれる
    • 第三者がこれを攻撃ベクトルとして悪用できる点が核心的な問題だ
  • システム全体へのアクセス権があれば、人為的なチェックは回避できる
    sandboxやchrootのような隔離ツールはあるが、リリース速度(GTM)のためにしばしば省略される
    ローカルモデルも、インターネット遮断やアウトバウンドファイアウォールなしでは安全ではない
    LLMは
    コマンドとデータを区別できないこと
    が、ほとんどの脆弱性の根本原因だ
    素晴らしい記事だった

    • 昔はvimのmodeline経由でコード実行が可能だった時代があった
      CVE-2002-1377からCVE-2019-12735まで繰り返されてきた歴史だ
      Antigravityも結局CVEを付与されるのだろうかと気になる
    • モデルとインターネットの間には必ずファイアウォールがあるべきだ
      言語モデルと外部インターネットを同時に扱うツールは、機密データにアクセスすべきではない
    • こうしたLLMは、リモートコンピュータにアクセスしたりハッキングしたりする方法を自力で学習する可能性すらある
    • コマンドとデータの混在はLLM固有の問題ではない
      ACE、XSS、SQLインジェクションなども同じ根にある
      既存のコードで解決策を見つけてきたように、LLMでも最終的には解決されると信じている
  • CursorのようなIDEは毎日何百万もの秘密にアクセスしている
    こうした問題は今後も頻繁に発生するだろう

  • プロンプトインジェクションベースの攻撃は再現性の低さが興味深い
    統計的モデルはランダム要素のため、同じ入力でも結果が変わる
    Googleのようなクラウドモデルは、研究者が脆弱性を再現しにくいよう設計されている
    そのうえ記事の文体がGoogle Cloudのドキュメントに似ているのも皮肉だ

  • AntigravityはMarkdown画像ベースのデータ流出バグにも脆弱だった
    数日前に報告されたが、「意図された動作」と表示された
    関連ツイート

    • 依然として同じ状態で、ほかにも多くの問題がある
      私のブログにその一部を記録している