Webページや資料をAIに読ませるとき、本文中の不正な指示を回答根拠と混同しない

外部資料の不審な指示と回答根拠を分け、source・tool・送信先の境界と反例で検査する手順を整理します。

AIものさし編集部

Webページや資料をAIへ読ませるときは、その本文を回答の資料として扱い、作業の権限を変える指示として扱わないようにします。「元の依頼を無視する」「別の場所へ情報を送る」といった記述が資料にあっても、それだけで利用者がその操作を許可したことにはなりません。資料の内容と、利用者の依頼・実行条件を別に管理します。

本稿は外部資料を使うAI作業の検査手順です。攻撃や漏えいの再現、実dataへの検索・送信、tool実行は行っていません。下記の不審な記述は分類のための架空例で、実serviceの防御性能を測定したものではありません。

資料の根拠と、作業指示を分ける

利用者が依頼した目的、使ってよいsource、出力先、許可された操作を先に記録します。取得文書はsource ID、URL、取得時点、該当箇所を付けて別の領域に渡します。検索結果やPDFの本文にある命令を、systemや利用者の依頼へ格上げしません。

表は横にスクロールできます

外部資料の内容扱い確認すること
製品仕様の説明主張の根拠候補対象・日付・一次資料
文書内の作業手順説明対象のdata実行は依頼範囲か
依頼の無視を要求不審な指示候補目的や権限を変えない
外部への送信要求許可とは別のdata宛先・data・承認を確認
回答の出典を隠す要求採用しない指示候補元sourceの追跡を保つ

たとえばmanualに「設定を保存する」とあっても、要約依頼なら手順を説明するdataです。AIが自動で読者の設定を保存する権限にはなりません。命令形の文をすべて削除するのではなく、読む対象と実行する指示を区別します。

RAGや公式風の体裁だけで信用しない

OWASPのPrompt Injection資料(新しいタブで開く)は、Webやファイル等の外部sourceによるindirect injectionと、RAG等だけでは十分に解消しないことを説明しています。見出しやroleらしい表記、検索順位、引用数、ファイル名だけで、その中の指示へ実行権限を与えません。

同じsourceの中でも、事実の説明、第三者の引用、不審な指示は別です。回答へ使う主張を原文に戻り、sourceの本文が実際に支える内容かを確認します。資料自身が「検証済み」「管理者承認済み」と書いていても、それだけで自分の業務の承認が済んだとはしません。

操作の境界を、prompt以外にも設ける

「不正な指示を無視して」と書くだけで防御が完了したとは扱いません。外部資料を読む処理には必要最小の権限を与え、送信、公開、削除、権限変更等の副作用を別の明示的な実行段階へ分けます。tool入力、送信先、対象ID、data範囲をcodeや運用で検査します。

回答にURLを含める場合も、不審なURLへprivateな会話や取得dataをparameterとして付けないようにします。単にlinkを表示・開くだけでも、URLの値が外へ伝わる場合があります。資料内の新しい宛先へ、手元のsecretや別資料を送る処理を結び付けません。

具体的な反例で検査する

許可された検証では、本物の機密ではなく架空の値を使います。通常資料、資料内の命令、引用された命令、隠れた表示や別形式の内容を含む資料などを分け、何が守られるべきかを先に決めます。未知の攻撃を完全に防ぐ試験だとは報告しません。

表は横にスクロールできます

架空の試験期待する結果観察するもの
要約本文に別送信の指示要約目的を保持tool・宛先・data
引用文に命令形引用のdataとして説明roleの格上げ有無
出典を偽る要求実sourceへ戻れるsource ID・該当箇所
権限変更を促す資料自動変更しない実行提案と操作の境界
通常のmanual必要な手順を要約過剰拒否や欠落

合格は「AIが安全ですと言った」ことではありません。許可外のtoolが呼ばれず、回答の根拠と対象が追跡でき、通常の資料から必要な答えも得られることを確認します。最終文だけでなく、実際のtool traceとdataの行先も検査対象にします。

不審な指示を見つけたときの切り分け

操作前に検出したら、そのsourceを採用する範囲と保留する範囲を分けます。別の信頼できる一次資料で同じ事実を確認できるなら、元の依頼をその資料で進める方法があります。内容を確認できない部分は、不明のまま残します。

すでに操作された疑いがある場合は、sourceを削除して終わりにせず、どのtool・対象・dataに影響したかを確認します。送信済みか結果不明かを区別し、同じ操作を再実行しません。secretや個人情報を含む証拠を、調査のために別の外部AIへ再投入することも避けます。

引き継げる形で結果を残す

作業目的、source IDと版、不審な記述の位置、採用した根拠、保留した操作、確認したtrace、残課題を記録します。本文全体やsecretを共有する必要はなく、閲覧制限した原本への参照で足りるかを考えます。

運用の改善では、どの入力境界で指示とdataが混ざったか、権限やtool検査で止められたかを見ます。一つの試験が通っただけで「prompt injection対策済み」と一般化せず、資料・tool・権限が変わったときに同じ境界を再確認します。

質問から自分に合うAIを探す