OpenAI製の「ChatGPT for Google Sheets」拡張機能に、間接プロンプトインジェクション(Indirect Prompt Injection)によるデータ流出の脆弱性が発見された。外部シートに仕込まれた悪意ある指示により、ユーザーが「承認を必要とする」設定を有効にしていても攻撃が成立し、アカウント内の複数スプレッドシートが外部サーバーへ流出する。OpenAIは現在、Apps Scriptコード生成機能の無効化により修正済みだ。
何が起きたのか
「ChatGPT for Google Sheets」はOpenAIが提供するGoogle Sheetsアドオンで、リリースから1ヶ月足らずで18.5万件以上のダウンロードを記録した。スプレッドシートのサイドバーでChatGPTと対話しながらデータ操作や計算ができる、業務効率化ツールとして注目を集めていた。
セキュリティ企業PromptArmorが発見したのは、この拡張機能に潜む「間接プロンプトインジェクション」の脆弱性だ。
攻撃チェーンの詳細
攻撃は以下の流れで展開する:
- 被害者は通常業務を遂行中 — ChatGPT for Google Sheetsを使って財務モデルを作成している
- 外部データをインポート — 別シートから外部データセットを取り込む
- 白文字の隠し命令 — インポートしたシートに白色テキスト(不可視)で悪意あるプロンプトが仕込まれている
- 通常のクエリで攻撃発火 — ユーザーが「このデータを統合して」と入力するだけで攻撃が起動する
- 外部スクリプトが実行される — 拡張機能に付与された権限を悪用し、攻撃者が用意した外部スクリプトが動作する
- 財務モデルが流出 — スプレッドシートの内容が外部サーバーへ送信される
- 芋づる式に拡大 — 盗んだデータ内のURLを辿り、リンクされた他のスプレッドシートも次々と流出
さらに、シートの見た目を偽のChatGPT画面に差し替えるオーバーレイ攻撃や、フィッシングポップアップの表示も同時に実行可能だ。
「承認設定」が機能しない事実
ChatGPT for Google Sheetsには「Apply edits automatically」という設定があり、オフにすると「AIがシートを編集する前に人間の承認を求める」動作になる。多くのユーザーはこれで保護されていると考えていたはずだ。
しかしこの攻撃は承認設定を完全に迂回する。 明示的に人間承認を要求する設定を有効にしていても、外部スクリプトの実行と外部サーバーへのデータ送信は防げなかった。
OpenAIの対応
PromptArmorは責任ある開示(Responsible Disclosure)の手順を踏み、OpenAIに脆弱性を報告した。しかし複数回のフォローアップを行っても、自動返信以外の応答はなかったという。公表後、OpenAIは声明を発表し、Apps Scriptコードの生成機能を無効化することで攻撃ベクターを閉じた。現時点でこの脆弱性は修正済みだ。
実務への影響
Google Workspace管理者がすべきこと
- 拡張機能の権限スコープを確認する — AIアドオンに与えているGoogle Sheets APIのスコープを見直し、不要な権限は剥奪する
- 外部データのインポートポリシーを整備する — 信頼できないソースからのデータには、プロンプトインジェクションが仕込まれている可能性がある
- エンタープライズ利用前にリスク評価を行う — 今後も同様のAIエクステンションが登場するたびに、権限モデルとサンドボックスの設計を確認する習慣が必要だ
セキュリティポリシーとしての教訓
「承認設定をオンにしているから安全」という認識は、AI時代における典型的な落とし穴だ。UI上の設定と実際のセキュリティ境界は必ずしも一致しない。重要データへのAIエクステンション接続は、ゼロトラストの視点でリスク評価すべきだ。
筆者の見解
今回の脆弱性は「AIエージェントとセキュリティ」の根本的な問題を突いている。
AIエージェントが自律的に動くほど、プロンプトインジェクションの影響半径が広がる。単純なチャットボットなら「返答がおかしい」で終わるが、スプレッドシートを読み書きし、外部スクリプトを実行できるエージェントが乗っ取られると、被害はアカウント全体に及ぶ。エージェントの自律性と安全な権限モデルの設計は、本質的に緊張関係にあり、業界全体がまだその答えを模索している段階だ。
「人間の承認が必要」という設定が実際のセキュリティ境界と一致していなかった点は、設計の問題として重く受け止めるべきだろう。承認設定はUIレイヤーの話であり、APIレイヤーやスクリプト実行レイヤーを制御するものではなかった。このギャップを利用者に説明していなかったことも課題として残る。
今後、AIエクステンションのエコシステムが広がるにつれて、同様の攻撃ベクターは増える一方だ。「どのデータにアクセスできるか」「どのAPIを呼び出せるか」「外部通信を許可するか」を細粒度で制御できるサンドボックスアーキテクチャを、各AIプラットフォームが真剣に設計する必要がある。これはOpenAIだけの問題ではなく、AIエージェント機能を提供するすべてのベンダーが向き合うべき共通課題だ。
脆弱性開示への対応プロセスについては、OpenAI規模の企業として、自動返信のみで複数フォローアップが届いているにもかかわらず応答がなかったのはもったいない。セキュリティ研究者との信頼関係はプロダクトの安全性に直結する。脆弱性開示プログラム(VDP)の整備と研究者へのレスポンス品質向上は、急ぎ取り組むべき課題だろう。
出典: この記事は ChatGPT for Google Sheets exfiltrates workbooks の内容をもとに、筆者の見解を加えて独自に執筆したものです。