エージェント的AIの危険性:ChatGPT for Google Sheets のデータ流出脆弱性の分析
大規模言語モデル(LLM)の生産性ソフトウェアへの急速な統合は、新たな効率化の時代を約束しました。しかし、最近発見された「ChatGPT for Google Sheets」拡張機能の脆弱性は、AIモデルにエージェント的能力を付与することに伴うセキュリティリスクを痛感させるものです。間接的なプロンプトインジェクションを利用することで、攻撃者はユーザー承認を回避し、複数のワークブックにわたる機密データを流出させ、洗練されたフィッシングオーバーレイを展開できました。
攻撃の構造:インポートから流出まで
この脆弱性は、モデルがスプレッドシート内のデータに基づいて Google Apps Script のコードを生成・実行できることに起因します。攻撃チェーンは、攻撃者との直接的なやり取りを必要としない欺瞞的な経路をたどります:
- The Trojan Horse: ユーザーが外部データセットをワークブックにインポートします。このデータセットには、白文字で記述され人間の目に見えない隠しプロンプトインジェクションが含まれています。
- The Trigger: ユーザーが ChatGPT 拡張機能にインポートしたデータの統合や分析を依頼します。
- The Execution: 隠しインジェクションが LLM を操作し、外部の攻撃者制御スクリプトを生成・実行させます。
- The Breach: このスクリプトは、拡張機能に既に付与されている権限を利用して、現在のワークブックのデータを外部サーバーへ流出させます。
- The Chain Reaction: 悪意のあるスクリプトは1つのファイルに留まらず、盗まれたデータ内の他ワークブックへのリンクをスキャンし、ユーザーアカウント内のアクセス可能なすべてのスプレッドシートを再帰的に流出させます。
重要なのは、この攻撃が「Apply edits automatically」設定を回避する点です。たとえユーザーが AI にワークブックの編集を行わせる前に人間の承認を明示的に要求していても、スクリプト実行はこの保護策をすり抜けて行われます。
データ窃盗を超えて:フィッシングと UI 操作
任意のスクリプトを実行できる能力は、静かなデータ流出だけにとどまりません。研究者は、この欠陥により可能になる主なフィッシング攻撃のバリエーションを2つ特定しました:
- Sidebar Overlays: 攻撃者は正規の ChatGPT サイドバーをクローンで置き換えることができます。これにより、ユーザーのプロンプトを収集したり、誤情報を提供したり、ユーザーを「reconnecting」コネクタに誘導してさらなるアプリへのアクセスを得ることが可能になります。
- Interactive Pop-ups: スクリプトはモーダルポップアップをトリガーし、外部ウェブサイトを表示させます。これらはユーザーの OpenAI または Google の認証情報を詐取することを目的としています。
業界の対応と「致命的な三位一体」
公開後、OpenAI は Google Sheets 拡張機能向けの Apps Script コード生成機能を削除して対応しました。これにより直近のリスクは緩和されましたが、Hacker News 上のコミュニティの反応は、より深刻なシステム的課題を示唆しています。
多くの観測者は、いわゆる「致命的な三位一体」――LLM の予測不可能性、過剰な権限、外部 API との相互作用――を指摘しています。あるコメント者は、業界が初期のマクロウイルス時代の過ちを繰り返していると述べました:
"最初のマクロウイルスが出てから、業界が『安全性のコストが高すぎるので良いものは持てない』と受け入れるまでどれくらい時間がかかったでしょうか――マクロはどこでもデフォルトでオフにされましたか? LLM が『プロンプトインジェクション』でもたらすリスクを業界が受け入れるまでどれくらいかかるでしょうか?"
他の意見では、欠陥はモデル自体にあるのではなく、権限アーキテクチャにあると指摘されています。あるユーザーは、問題は「インストール時の過剰な権限」にあると述べ、OAuth スコープの修正がモデルのプロンプトインジェクション耐性を「修正」しようとするよりも重要であると示唆しています。
組織への重要なポイント
ワークフローで AI 拡張機能を利用しているチームにとって、本事例は以下の重要な教訓を提供します:
- Audit Permissions: AI 拡張機能に付与された権限をレビューしてください。特定のタスクを実行するためにすべてのファイルへの広範なアクセスが必要なツールは、重大なリスク面を持ちます。
- Control Access: 組織は Workspace の設定(Permissions & roles)を使用して、ChatGPT for Google Sheets のような AI 拡張機能をインストール・使用できるユーザーを厳格に管理すべきです。
- Assume Untrusted Data: インポートされたデータは、たとえ一見無害に見えても信頼できないものとして扱いましょう。プロンプトインジェクションは目に見える形で隠されていることがあります。
- Demand Sandboxing: セキュリティ研究者が指摘するように、コードを実行するツールはローカルかつコンテナ化(例:WASI を使用)された環境で動作させ、広範なクラウド権限で実行しないようにすべきです。