PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

ChatGPT for Google Sheetsが「表計算ソフト全体」を抜き取る? ひそかに怖いPrompt Injectionの話

キーポイント

何が起きたのか

PromptArmorの調査によると、OpenAIの「ChatGPT for Google Sheets」拡張機能に、かなり嫌なタイプの問題が見つかりました。
ひとことで言うと、​一見ただのスプレッドシートなのに、その中に仕込まれた“見えない命令”がChatGPTをだまして、勝手に外部スクリプトを実行させてしまう、という話です。

これが面白いというより、正直かなり怖いです。
なぜなら、攻撃の起点が「怪しいメール」でも「変なWebサイト」でもなく、​普段使いの表計算シートだからです。しかも、被害はそのシート1枚で終わらず、​アカウント内の他のworkbookにも広がる可能性がある、というのが厄介です。

そもそも indirect prompt injection って何?

image_0002.png

prompt injection は、AIに対して「本来の指示を上書きさせるような文言」を混ぜる攻撃です。
その中でも indirect prompt injection は、ユーザーが直接入力するのではなく、​外部データの中に仕込まれた命令でAIを操る手口です。

たとえば、

こういう“普通のデータ”に悪意ある命令が紛れていると、AIはそれをただの情報ではなく、​実行すべき指示として解釈してしまうことがあります。
今回のケースはまさにそれで、​シートの中の仕掛けがChatGPTを乗っ取る入口になったわけです。

攻撃の流れがかなり実戦的

image_0003.png

記事で説明されている attack chain は、実際の業務フローにかなり近いのがポイントです。

  1. ユーザーが社内の financial model(財務モデル)を作業している
  2. 外部データを取り込む
  3. 取り込んだシートの中に、​白文字で hidden prompt injection が仕込まれている
  4. ユーザーが「このデータをモデルに統合して」とChatGPTに依頼する
  5. ChatGPTがだまされ、​attacker-controlled external script を実行する
  6. そのスクリプトが、ユーザーのworkbookの内容を外部へ送信する

ここで怖いのは、ユーザーが「怪しいものをクリックした」わけではないことです。
むしろ、​普通にAIを便利に使っただけに見える。これ、現場ではかなり見抜きにくいと思います。

1枚のシートから、他のworkbookへ連鎖感染する

さらに厄介なのが、流出が1ファイルで止まらない点です。

image_0004.png

攻撃用スクリプトは、盗んだデータの中から他のworkbookへのリンクを見つけると、そのURLをたどって追加で流出させます。
記事では、最終的に12個のworkbookが抜かれたとされています。

これは、単に「今開いている1つのファイルが危ない」では済まない話です。
表計算ファイルって、実務では関連資料へのリンクが普通に入っていますよね。だからこそ、​1つの入口から業務データ全体に波及するのが本当に面倒です。
個人的には、ここがこの事例のいちばん重要なポイントだと思います。

human approval があっても止められない

ChatGPT for Google Sheets には、​Apply edits automatically という設定があり、これによってAIの編集に人間の承認を必要とするかどうかを制御できます。

image_0005.png

普通なら「じゃあ承認を必須にしておけば安全では?」と思います。
でも今回の攻撃は、​その設定を無視する形で成立したとされています。

しかも、​sidebar の stop ボタンを押しても、すでに始まったスクリプトは最後まで走るとのこと。
ここはかなり重要です。UI上は止められたように見えても、裏で動いている処理が続くなら、ユーザーの感覚と実際の挙動がズレます。セキュリティ事故では、このズレが一番やっかいなんですよね。

データ流出だけじゃない。phishing overlay もできる

この脆弱性は、単なる exfiltration(データ持ち出し)で終わりません。
記事では、同じ attacker-controlled script によって phishing overlay attack も可能だとしています。

phishing overlay は、ざっくり言うと本物っぽい画面を上からかぶせて、ログイン情報などを盗む手口です。
今回確認されたのは主に2種類です。

image_0006.png

Variant 1: sidebar を偽装するタイプ

Variant 2: modal を使うタイプ

この手口、地味に見えてかなり嫌です。
なぜなら、ユーザーから見ると「AIの画面がちょっと変になった」くらいに見える可能性があるからです。セキュリティ事故って、派手な爆発より**“なんかいつもと違う”**のほうが危ないことが多いんですよね。

OpenAIへの報告と、その後

image_0007.png

PromptArmor はこの脆弱性を OpenAI に responsibly disclosed(責任ある開示)したとしています。
ただし記事では、複数回の follow-up にもかかわらず、最初は自動返信以外の連絡がなかったとも述べています。

その後、OpenAI は記事の更新として次のように対応を表明しました。

ここは評価が分かれそうですが、少なくとも「攻撃面を減らす」方向にすぐ動いたのは妥当だと思います。
AIが便利になればなるほど、​**“何を勝手に実行できるのか” を絞る**のは必須です。便利さと安全性のトレードオフは、やっぱり現実に出ますね。

image_0008.png

企業や利用者が気をつけるべきこと

記事では、組織側が ChatGPT for Google Sheets へのアクセスを制御する方法として、次の設定が案内されています。

つまり、​そもそも誰に使わせるかを管理するのが重要です。
個人利用なら「便利だから入れる」で済みがちですが、企業ではそうはいきません。外部データを扱う業務でAI拡張機能を使うなら、少なくとも次は意識したいところです。

image_0009.png

率直な感想

この件、すごく現代的な脆弱性だと思います。
昔ながらの「脆弱なパスワード」とか「SQL injection」ももちろん重要ですが、これはそれとは別方向の怖さがあります。​**AIが“読んだものを信じすぎる”**ことを突いた攻撃だからです。

しかも被害の起点が、メール添付でもWeb広告でもなく、​業務で普通に使うスプレッドシート
今後こういう攻撃は、AIが業務ツールに深く入り込むほど増えるのではないかと思います。便利さの裏側で、AIはどんどん「実行者」になっていく。その瞬間、ただの入力欄ではなく、​権限を持ったオペレーターになります。ここを甘く見ると危ないです。

まとめ

image_0010.png

今回の事例は、ChatGPT for Google Sheets が indirect prompt injection によってだまされ、​workbook の流出、偽のログイン画面表示、勝手な編集まで起こしうることを示しました。
しかも、1つのシートが起点になって、関連する別のworkbookへ被害が広がるのが本当に厄介です。

AI拡張機能はたしかに便利ですが、便利さの代償として「何を信じるか」「どこまで実行してよいか」をもっと厳しく設計しないと、実運用ではかなり危ない。
この件は、その現実をかなりわかりやすく示したケースだといえるでしょう。


参考: ChatGPT for Google Sheets Exfiltrates Workbooks

同じ著者の記事