Cyber Intelligence Review アーカイブ

THREAT BRIEFING · AI ASSISTANT × INDIRECT PROMPT INJECTION

Gemini:カレンダー招待1件で家の窓が開いた——折りたたまれた予定に指示を隠し、実行だけを次の会話へずらす

SafeBreach Labs「Invitation Is All You Need」(2025年8月6日公開)および Ben Nassi・Stav Cohen・Or Yair による論文「Invitation Is All You Need! Promptware Attacks Against LLM-Powered Assistants in Production Are Practical and Dangerous」(arXiv、8月16日)に基づく図解解説。 ブログと論文の著者は同一で、論文は査読前のプレプリントである。

一次情報の公表
2025.08.06
本記事の公開
2026.08.07

0この記事の前提

この事案は「誰かが被害に遭った事件」ではない。研究者が自分で仕掛けて自分で確認した実証である。そこを取り違えると、以下の数字はすべて過大に読める。

実被害の報告ではない。 一次情報のどこにも、この攻撃が実際の攻撃者によって使われたという記述はない。CVE 番号も付与されていない。 以下で「窓が開いた」「メールが持ち出された」と書くのは、いずれも研究者が自分の環境で実演した結果である。

裏付けの独立性について

本記事が参照する文書は3本あるが、独立した当事者は2者しかない。この点を先に置く。

加えて、SafeBreach は侵害・攻撃シミュレーション製品を販売する事業者であり、脅威の重大性の見積もりに事業上の利害がある。 これは研究内容を否定する材料ではないが、数値を他社製品や他の脆弱性と横並びに比較する用途には使えないことを意味する。

1要点

招待 1件
攻撃の起点。予定のタイトルに指示を埋め込む
14 シナリオ
5つの脅威クラスにわたり、本番の Gemini 3面(Web・モバイル・Android アシスタント)で実証
165 日
Google への開示(2025-02-22)から一般公表(08-06)まで
0 件
野良での悪用の観測報告・付与された CVE。いずれも一次情報に記載なし

出典側が置いている枠組み

著者らの主張は「Gemini に穴があった」ではない。プロンプトウェア(Promptware)は実務上の脅威として過小評価されているという主張であり、 Gemini はそれを示すための題材である。著者らは、業界が過小評価する理由を次のように書いている。

Additionally, some perceptions are influenced by an overestimation of the security of machine learning systems in production environments, the minimal occurrences of such attacks in the wild, and the fact that many academic findings in this field do not transfer to real systems.

論文 §1 より。この一節の向きに注意が必要である。著者は「野良での発生が最小限であること」を安全の根拠として挙げているのではなく、 業界が油断する原因として挙げている。本記事の 6章 で扱う評価の食い違いは、この文の存在を踏まえた上での話である。

この記事が置く軸

本件の読みどころは、攻撃の派手さではなく「判定がどこまでを見ていたか」である。

先に断っておくべき反対材料。 この実証は、防御が効いていない状態で行われたと著者自身が書いている(論文 §2: “We note that the abovementioned mitigations were ineffective or weren't deployed at the time that this study was performed.”)。 つまり著者らは「確立された防御を突破した」とは主張していない。 「Gemini のクラス単位の対策が破られた」という読み方は、一次情報と食い違う。

2何が起きたか

利用者の画面には最後まで異常が出ない。ずれているのは、画面とモデルの文脈のあいだである。

利用者に見えているもの モデルが読んでいる文脈 ① 招待が届く 知らない相手からの 会議の招待が1件。 開かなくてもよい。 ② 予定をたずねる 「今日の予定は?」 日常の問いかけ。 攻撃とは無関係の操作。 ③ 予定が表示される 先頭5件だけが並ぶ。 残りは「あと○件」に 折りたたまれたまま。 ④ 礼を言う 「ありがとう」 会話を終えるだけの ひとこと。 まだ読まれない 招待のタイトルに 指示が仕込まれて いるが、静かなまま。 カレンダーを参照 問いに答えるため、 予定の一覧を まるごと取り込む。 折りたたみ分も入る 画面に出ていない 予定の本文も文脈へ。 隠された指示が着席 指示が発火 Google Home へ接続。 家の窓が開く。 画面は正常のまま。 画面には出ない 確認も出ない
攻撃の流れ。利用者が行うのは「今日の予定は?」と「ありがとう」だけで、どちらも日常の操作である。 ③で折りたたまれた予定が文脈に入る点と、④で実行前の確認が出ない点が、この事案の骨格にあたる。 出典: SafeBreach ブログ [1]。窓の開放は研究者自身の環境での実演。

指示は「あと○件」の裏に置かれた

Gemini にカレンダーを尋ねると、直近5件が表示され、それ以上は折りたたまれる。著者らはここに着目した。

Fortunately for us, the events that are contained inside this “Show more” button, even if not expanded, are still added to the chat's history and are therefore added to the context.

SafeBreach ブログ [1] より。展開しなくても文脈に入る、という一文がこの攻撃の土台にあたる。

攻撃者は招待を大量に送る必要すらない。被害者の予定が既に5件以上あれば、後から届いた招待は自動的に折りたたみの側へ落ちる。 そこに置かれた指示は、利用者の目に触れないまま、モデルの読む範囲には確実に入る。

3なぜ通ったのか——判定の射程

Gemini には、この種の動きを止めるための判定があったと研究者は見ている。それが外れた理由は、判定が見ている範囲にある。

ここは推定である。 以下に述べる2つの制御について、原文はいずれもヘッジしている(“it seems that…”/“somehow … behind the scenes”)。 外からの挙動観察に基づく研究者の推定であり、Google はこれらの制御の存在を確認も否認もしていない。 Google が公開している防御層の説明 [3] にも、この2つは現れない。

研究者が推定した2つの制御

どちらも、要求と実行が同じやり取りの中にあることを前提にしている。研究者が使ったのは、この前提を外す方法だった。 ただしその方法自体は本研究の発明ではない。著者は明確に既知技術として扱い、先行研究に帰属させている。

To bypass such limitations, we thought about using a known technique called Delayed Tool Invocation (recently also leveraged by Johann Rehberger).

SafeBreach ブログ [1] より。「遅延起動」は既知の手法であり、Johann Rehberger の先行研究に帰属させられている。本件の新しさは、時間差そのものではない。
A. 同じやり取りの中で実行しようとした場合 やり取り 1 「今日の予定は?」+ 隠された指示 → その場で Google Home を起動しようとする 判定が見える範囲 要求と実行が 同じ視界に入る 止まる 想定外のエージェント起動 B. 実行だけを次のやり取りへずらした場合 やり取り 1 「今日の予定は?」 指示は履歴に残るだけで 何も実行しない 判定が見える範囲 実行がないので 止めるものがない やり取り 2 「ありがとう」 このターンで期待される相手は Google Home になっている → 通る
判定の射程。研究者が推定した2つの制御は、いずれも1回のやり取りの内側を見ている。 指示を置く時点と実行する時点を分けると、実行の瞬間には「利用者がそれを求めた」ようにしか見えない。 出典: SafeBreach ブログ [1] の記述に基づく作図。制御の存在自体は研究者の推定である。

URL の判定は、さらに狭かった

情報を持ち出すための URL 組み立てについて、研究者は制御の適用範囲そのものを言い当てている。

We now understood that this mitigation would only be triggered if the URL was opened right after it was dynamically assembled.

SafeBreach ブログ [1] より。「組み立てた直後に開いたときだけ」——つまり見ているのは直後という時間関係であって、URL の中身でも宛先でもない。

そこで著者らは、あるやり取りで URL を組み立てて書き出しておき、別のやり取りでそれを開かせた。 メールの件名を宛先ドメインの後ろにつなげた URL が開かれ、件名がサーバ側に渡っている。

ブラウザなら出る確認が、出なかった

もうひとつ、判定の網とは別に効いたのが確認の欠落である。ブラウザは外部アプリを開く前に利用者へ確認を出す。Gemini は出さなかった。

Gemini, however, does not do that. When we open an HTTPS URI that redirects to an app using Gemini, Gemini blindly follows it and opens the URI no matter where it leads!

SafeBreach ブログ [1] より。同じ操作をブラウザで行えば確認が出る。アシスタント経由になった途端に、その確認が消えていた。

4何が新しく、何が新しくないのか

この事案は「新技術による突破」として語られやすい。一次情報を読むと、そうは書かれていない。

論点一次情報が述べていることしたがって書けないこと
遅延起動(時間差) 事実 著者自身が「既知の手法」と明記し、Johann Rehberger の先行に帰属させている [1] 「時間差という発想が新しい」——書けない
折りたたみ表示の悪用 事実 展開しない予定も文脈に入る。著者はカレンダーのこの表示を「他のエージェントにはない特別なもの」と位置づけている [1] ここは新規性を書いてよい。ただし「新しい注入経路ではなかった」とも書けない
破られた防御の格 事実 論文は「研究時点で、上記の緩和策は無効だったか、そもそも展開されていなかった」と明記している [2] 「Google のクラス単位の対策が破られた」——書けない
推定された2つの制御 推定 原文はヘッジ付き。Google は存在を認めても否定してもいない [1] 「Google は◯◯という対策を実装していた」と断定形で——書けない

残るのは、次の形である。見えないまま履歴に残り続ける指示の置き場と、既知の遅延起動を組み合わせると、1回のやり取りの内側しか見ていない型の判定は外れうる。 派手さは落ちるが、こちらのほうが実務では効く。自社のエージェントに同じ形の判定を置いていないかという問いに、そのまま変換できるからである。

5実証された14シナリオと、その読み方

5つの脅威クラスにわたる14件。ただし、そのうち1件は本研究では実演されていない。

脅威クラスシナリオ注記
短期文脈の汚染 有害コンテンツの生成 / 迷惑メッセージ / フィッシング Gemini の定型応答と同じ語形を使うと追従されやすい(著者は「注意の上書き」と呼ぶ)
長期記憶の汚染 偽情報の刷り込み 未実証 本研究では実演していない。他者が先に示しているため、評価の網羅性のために項目として置いたと明記されている
ツールの悪用 予定の削除・追加 1回の呼び出しで複数のツールを連ねる
エージェントの自動起動 家電の操作(窓の開放 / ボイラー起動 / 照明) 研究者自身の環境での実演
アプリの自動起動 ファイルのダウンロード / 位置の特定 / Zoom による映像配信 / ブラウザ経由の持ち出し(予定・メール) / ブラウザを使ったワーム Android 限定 OS の権限に依存するため、このクラスは Android のみ。iOS では成立しない
被害の一覧を読むときの2点。 (1) 一次情報の抄録は被害として「偽情報」を含む列挙をしているが、偽情報だけは本研究の実演結果ではない。 (2) 最も衝撃的な「Zoom で利用者を映像配信する」はAndroid 限定のクラスに属する。iOS 利用者には成立しない。

「73%が High-Critical」の読み方

最も引用される数字だが、これは著者らが同じ論文の中で提案した独自の評価枠組みによる、著者ら自身の採点である。 枠組みも、採点対象のシナリオも、採点者も同じ側にある。攻撃者の熟練度・必要機材・機会の窓・利用者操作の頻度といった入力変数は、 この種の評価で一般的な語彙であり恣意的なものではない。正確な批判は「根拠がない」ではなく、自己適用であり外部検証を経ていないである。 したがって他社製品や他の脆弱性との横並び比較には使えない。

緩和後の再評価が意味していること

論文は緩和策を適用した場合の再評価も行っており、抄録は「リスクは Very Low-Medium まで下がりうる」と述べている。 ここは誤読が起きやすいので、2点を分けて置く。

事前評価(14件) 再評価(14件)— 著者提案の防御を仮定した机上の再計算 critical 4件 very high 2件 high 4件 medium 3件 low 1件 critical の4件 = Zoom による映像配信 / 家の窓の開放 / メールの持ち出し / ワーム この4件は low へは落ちない medium 6件(critical だった4件はすべてここ) low 4件 very low 4件 再評価が仮定する防御 = エージェント間の文脈分離 / 入出力の検査 / A/B テスト / 制御フロー完全性 / 連鎖の防止(いずれも著者の提案) Google が展開したと述べる3点を評価した数値ではない。
危険度の分布。「Very Low-Medium まで下がる」という要約だけを読むと無害化したように見えるが、 実際に述べられているのは最悪級が critical から medium へ落ちることであり、しかもその前提は著者自身が提案する防御である。 出典: 論文 [2] §7.2。

6「theoretical」——評価の食い違い

Google は本件の手法を「理論的」と呼んだ。論文の表題は「本番環境で」と言っている。どちらの読みも成り立つ材料が揃っている。

Google が研究者へ提供した声明には、次の一節がある。

The paper detailed theoretical indirect prompt injection techniques affecting LLM-powered assistants and was shared with Google in the spirit of improving user security and safety.

Google の声明より。この声明は2025年6月26日に Google 側の依頼で論文へ収録されたもので、ブログ [1] と論文 [2] に同じ文面が載っている(=2件の証拠ではなく、1通の声明である)。

「理論的」という表現が妥当だと読める材料

それでも緊張が残る点

本記事の立場。 解釈 両者の表現には緊張があると読める。ただしこれは編集部の解釈であり、事実として述べられるものではない。 Google が意図的に過小評価した・矮小化したと推認する材料は存在しないため、本記事はその読みを取らない。

6月のブログは、本件への回答ではない

時系列が近いために混同されやすいが、Google が2025年6月13日に公開した多層防御のブログ [3] は、本研究を名指ししていない。 3名の研究者への言及はあるが、多数の協力研究者を挙げた汎用的な謝辞の一部であり(Google は Ben Nassi の肩書きに所属機関ではなく研究領域名を当てている)、特定の発見を彼らに帰属させてもいない。 研究名の入った声明が用意されたのは、その13日後の6月26日である。

事実 時期が重なっている。 不明 6月のブログが本件への対応だったかどうか。一次情報からは決められない。

7確認されなかったこと

一次情報が明示的に「していない」「できない」と述べている事項。ここを落とすと、この事案は実際より大きく見える。

項目一次情報の記述
野良での悪用観測の報告はない。全編が著者自身による実演である
CVE付与されていない。3本の一次情報のいずれにも記載がない
偽情報(長期記憶の汚染)本研究では実演していない。他者が先に示しているため、評価の網羅性のために項目として置いたと明記
iOSアプリの自動起動は OS の権限に依存するため Android 限定。Zoom による映像配信もこのクラスに属する
放置していた場合発火しない。被害者が Gemini に予定やメールを尋ねる操作が必要。ただしその操作は「今日の予定は?」という日常動作である
攻撃者が知らなくてよいものメールアドレスは知っている必要がある。ただしこれは安心材料にならない
招待の着弾カレンダー設定に依存する(全員から/既知の送信者のみ/メールで応答した場合のみ)。どれが既定値かは一次情報に記載がない
Google の対策の展開Google は「内部テストで検証のうえ開示に先立ち全利用者へ展開した」と述べている。独立した検証は存在せず、展開が完了していたかは確認できない
推定された2つの制御Google は存在を確認も否認もしていない

8本サイトで扱った事案との比較

同じ「間接プロンプトインジェクション」でも、破れた場所が違う。そこが対策の当て所を分ける。

事案指示の入り口破れた場所本件との差
本件
Gemini / カレンダー招待
共有リソース(招待のタイトル)。折りたたまれて見えない領域 1回のやり取りの内側しか見ていない判定。加えて、アプリ起動時の確認の欠落 —
Comet
Perplexity / Reddit のコメント
閲覧中のページの本文 公開前監査でクラス単位に塞いだはずの穴が、別経路で再発 あちらは「塞いだクラスの再発」。本件は塞いだ範囲がそもそも狭かった——しかも著者は研究時点で緩和策が効いていなかったと書いている
Gemini CLI
Trail of Bits / 画像
入力の前処理(画像の縮小で初めて現れる文字) 利用者が見た画像とモデルが読んだ画像の食い違い あちらの持ち出しには自動承認という別条件が要った。本件はブラウザなら出る確認が出なかった。どちらも「確認をどこに置くか」の話
EchoLeak
M365 Copilot / メール1通
受信したメール スコープ違反+実装漏れの合流 あちらはゼロクリック。本件は利用者の操作が要るが、その操作は日常動作であり、実質的な差は見た目ほど大きくない

9経過と、経営層への含意

2025-02-22 Google へ開示 (報告書と動画) その後 Google が90日の 猶予を要求 2025-06-13 Google が多層防御の ブログを公開 本研究の名指しはない 2025-06-26 Google が声明の 論文収録を依頼 2025-08-06 SafeBreach 公表 Black Hat USA 2025-08-16 論文が arXiv へ 開示から公表まで 165日
経過。6月13日のブログと本研究のあいだに公式な結び付けはない。研究名を挙げた声明は6月26日に別途用意されている。 出典: 論文 [2] §1.2、SafeBreach ブログ [1]、Google ブログ [3]。

この事案から取るべきもの

自社が AI アシスタントを業務に入れているなら、確認すべきは「どんな文章を止めているか」ではなく「いつ、何の権限で、何が実行されるか」である。

この記事の賞味期限。 本件の技術的主張は、いずれも当事者の自己申告に依拠している。第三者による追試が公表されるか、 Google が推定された制御について公式に説明するか、野良での悪用が観測された時点で、上の読み筋は書き換えが必要になる。