Key Takeaways
- プロンプトインジェクションは、防御策としても利用できます。Scarecrowは、Word、PowerPoint、Excelファイルの内部に拒否命令を隠し、ファイルを取り込んだAIシステムに文書の処理を中止させるツールです。
- 検証では、14モデル中11モデル(79%)が、内容を漏洩することなく保護されたファイルの処理を拒否しました。対象を広げた検証では、攻撃者が現実的に自前で運用できる大規模オープンウェイトモデル8種類のうち7種類を保護できました。
- 本手法は、AIを利用する攻撃の弱点を攻撃者自身に向けます。制約を抑えて命令に従うよう設計・設定されたモデルほど、処理を拒否するよう求める隠れた命令にも影響されやすくなります。悪意のあるAIによる取り込みだけでなく、意図しない機密文書の取り込みも妨げられます。
- 組織は既存のアクセス制御やデータ保護対策を維持しながら、Scarecrowによる防御層をファイルに追加できます。Scarecrowは [github.com/trendmicro/scarecrow](https://github.com/trendmicro/scarecrow) で公開しています。
技術的な詳細は、完全版レポート(日本語版)をご覧ください。
はじめに
攻撃者は、ますます多くの作業をAIに任せるようになっています。初めは、人間が攻撃を進める傍らで質問に答えるアシスタントでした。次に、人間の監督の下で必要なコードを書くコパイロットになりました。最近の事例では、AIが自ら侵入を計画・実行し、実質的に攻撃の主体となっています。攻撃者が自律型エージェントを標的に送り込めば、エージェントは接触した文書から機密データを自動的に読み取り、抽出できます。取り込まれたファイルはすべてアタックサーフェスの一部になります。
文書の実体は、画面に見える姿とは異なります。ユーザには整形されたページが見えますが、その下には書式指定や埋め込みメタデータを含む構造化ファイルがあります。AIアシスタントには、ユーザに表示されない部分まで見えます。言語モデルに文書を渡す多くのツールは、そうした内容を区別せず抽出します。たとえば、背景と同じ色にしたテキストや不可視文字を織り交ぜたテキストは、Word上で読者には見えなくても、モデルへの入力にはそのまま含まれます。

隠れたテキストはデータとは限りません。命令にもなります。攻撃者は、モデルが文書を隅々まで読むなら、人間には見えない場所に命令を埋め込めると気づきました。モデルは、埋め込まれた命令と正当な命令を区別できず、従ってしまうことがあります。これがプロンプトインジェクション(英語)です。会話ではなく文書を介して命令が届く場合は、間接的プロンプトインジェクションと呼びます。
一例が、2025年6月に公開された脆弱性「EchoLeak」(CVE-2025-32711)(英語)です。Microsoft 365 Copilotに対するゼロクリックのプロンプトインジェクションで、通常のOfficeファイルやメールに隠された命令により、コンテンツがコンテキストに含まれるだけで、ユーザの操作なしにCopilotがデータを外部へ送信しました。その後、細工したスプレッドシートのレポートを介して同種の攻撃が成立すること(英語)も実証されています。Proofpointは、PDF、メール、カレンダーの招待に隠しプロンプトを生成するサブスクリプション型ツールなど、インジェクションツールキットの地下市場(英語)を報告しています。学術的な基礎研究(英語)が発表されてからわずか数年で、すでに攻撃へ転用されています。
攻撃を逆手に取る
通常、プロンプトインジェクションは防御側が受ける脅威として語られます。しかし、逆はどうでしょうか。所有者の手を離れれば、完全には制御できなくなる文書を考えてみてください。その文書が盗まれ、攻撃者の自律型エージェントに渡された場合、エージェントは行動する前に文書を読まなければなりません。読む以上、ほかのAIと同じく隠れた命令に影響され得ます。ならば、文書の所有者がその命令を仕込むこともできます。
攻撃者のエージェントもプロンプトインジェクションの影響を受ける、というのが本研究の仮説です。ファイルの内容を処理せず、中止して拒否するようAIに求める命令を隠します。十分なリソースを持つ攻撃者が、エージェントをこの手法に耐えられるよう強化できるのか。この実証的な問いを検証しました。
この手法が機能する理由を理解するには、AIエージェントが実際にファイルを読む仕組みを考えると分かりやすくなります。エージェントは「文書」と「文書についての命令」を区別せず、取り込んだすべての内容を一続きのプロンプトとして扱います。財務メモもメタデータも隠れたテキストも、モデルにとってはすべて入力です。入力内にある命令は、攻撃者が実際に出した依頼と同じ立場で競合します。攻撃者が悪用する隙を、そのまま防御に利用する仕組みです。
本手法で導入する命令が引き起こすのは、拒否だけです。拒否は安全な動作であり、適切に調整されたシステムが本来行うべきでない処理を求めるものではありません。この点が、攻撃目的のプロンプトインジェクションとの違いです。エージェントを乗っ取って何かを実行させるのではなく、処理の中止を求めます。同じ読取上の隙は、日常的なAIへの取り込み、検索パイプライン、気軽な「これを要約して」という依頼でも生じます。そのため、意図的な攻撃者のエージェントだけでなく、偶発的な情報露出の防止にも役立ちます。
結論
防御側がプロンプトインジェクションを深刻な脅威と捉えるなら、AIエージェントに頼る攻撃者も同様に捉えるべきです。隠れた命令がアシスタントを乗っ取れるという性質は、文書の所有者が命令を盾として使えることも意味します。Scarecrowは github.com/trendmicro/scarecrow から試せます。
技術的な詳細は、完全版レポート(日本語版)をご覧ください。
参考記事:
Scarecrow: Making the Attacker’s AI Say No
By: TrendAI™ Research , Aya Debbagh , Trent Holmes
翻訳:与那城 務(Platform Marketing, TrendAI™ Research)