- 公開日
Prompt Injectionが起きた後は、疑わしいセッションからの新たな操作と情報の再利用を止め、記録をたどって影響範囲を特定します。セッションを閉じるだけでは、保存された記憶、派生した回答、外部で実行済みの操作は元へ戻りません。汚染源と連鎖先、使用した資格情報、操作結果を分けて確認し、必要な根拠がそろった範囲から再開します。
隔離は新たな影響を止めるための処置
セッションは、一つの会話や処理を進めるための状態のまとまりです。資料中の操作指示が会話へ混ざり、それを基に要約、記憶、別の処理が作られた場合、元の画面を閉じても連鎖先には内容が残り得ます。新しい会話に同じ記憶や検索結果を渡せば、汚染した情報を再び取り込むことになります。
OWASP GenAI Security ProjectのGenAI Incident Response Guide 1.0は、生成AIを使うアプリケーションのセキュリティ事故への対応を、セキュリティ担当者向けにまとめた指針です。検索や記憶を伴う構成については、OWASPのRAG Security Cheat Sheetが、汚染された文書の隔離、影響するキャッシュの無効化、汚染された応答を受け取った利用者の特定を、あらかじめ定めて訓練しておく手順として挙げています。以下は、こうした考え方を間接的なInjectionへ適用した運用例です。隔離の実施を、被害の解消や安全性の証明と同一視しません。
初動で決めるのは、止める対象と、調査のために保持する対象です。新たなツール実行、影響する記憶の読み出し、疑わしい資料の再取り込みを止める一方、原因や操作結果を確かめるための記録を保護します。無関係な業務を含めた全面停止が必要かは、影響範囲を区切れるかによって判断します。
一つの警告から連鎖を追う
架空の顧客対応AIで、回答案に未承認の送信先が混ざったという警告が出たとします。実際の事故や試験結果ではなく、調査手順を説明するための例です。次の識別子はすべて架空です。
| 観測した記録 | そこから分かること | 次に確認すること |
|---|---|---|
| 処理C1が資料D7の版2を取得 | その版が当該処理へ渡った | 原資料と取得範囲、権限 |
| 要約S2がD7を参照 | 派生要約との対応がある | 追加送信の要求が混入したか |
| 記憶M8がS2を基に保存 | 後の処理へ残る経路がある | 読み出した会話と派生出力 |
| 操作A4に拒否記録がある | 記録上は実行前に拒否された | 対象・引数と他の操作の有無 |
| 操作A5に受付後の応答がない | 成功・失敗を確定できない | 外部側の受付と実行状態 |
D7を取得したという記録だけで、資料全体が悪意あるものだったと断定しません。原資料の該当箇所とS2を照合し、誰の依頼として扱われたかを確認します。記憶M8へ保存された文に「資料が述べている」という限定がなくなっていれば、そこで信頼度が変わった可能性を調べます。
A4の拒否は、その操作を止めた証拠になりますが、A5まで止まった証拠にはなりません。A5は結果不明として保留し、同じ送信を再度実行する前に外部の受付記録と対象状態を照合します。会話上の「送信できませんでした」という説明だけで、実際に未送信だったと決めないことが重要です。
記録からたどれない処理は、影響なしへ分類しません。確認できた連鎖と、参照関係が不明な範囲を分けます。開始時点を確定できない場合も、「この時刻以前は安全」と推測せず、利用した資料版や設定の履歴を追加で確認します。
セッション、記憶、資格情報を別々に扱う
セッションC1は、操作権限を止めて調査対象にします。安全な部分を確定できない間は、その文脈をそのまま複製して再開しません。再開に必要な正規の依頼や確認済み資料は、権限のある担当者が元の記録と照合して取り出します。
記憶M8は、新たな検索や参照から外します。正しい情報へ訂正できるなら訂正版を作り、旧版を失効させ、既に読み込まれた会話やキャッシュも点検します。前述のRAG Security Cheat Sheetが扱う出所の追跡や汚染情報の隔離は、こうした検索・再利用の経路を調べる際の参考になります。記憶を一件削除しただけで、派生した要約が消えるとは扱いません。
資格情報については、「その処理が使った」と「秘密の値が外へ露出した」を区別します。通常のツール実行で資格情報を利用しただけなら、直ちに漏えいの証拠とはいえません。一方、資格情報がモデルの文脈、回答、外部への引数やログに入った可能性があるなら、有効性と権限範囲、利用履歴を管理記録で確認します。
露出や不正利用が疑われる資格情報は、管理権限のある担当者が、必要な失効・切替やアクセス制限を判断します。単に不審な文章が見つかったという理由だけで、関係するすべての資格情報が漏れたと決め付けません。対応の対象と根拠を残し、無関係な接続を止める影響も考慮します。
証拠を残すことと全文を広げることを分ける
調査の記録には、処理識別子、資料版、参照関係、操作対象、判定、結果が役立ちます。秘密の値や顧客情報の全文を、通常の運用ログや連絡用の文書へ無条件にコピーしないことも必要です。OWASP Logging Cheat Sheetは、記録すべきイベント情報と、パスワードやトークンなど直接記録を避ける情報を区別しています。
詳しい内容が調査に必要な場合は、閲覧できる担当者と目的を限定した証拠保管先を使い、通常の監視画面には識別子や要約を置きます。マスクした文字列でも、別の情報と組み合わせれば対象者を特定できる場合があるため、マスク済みというだけで公開可能とは判断しません。
証拠保全と通常利用の停止は両立させられます。検索から外した記録を調査用に保持する場合は、参照可能な用途とアクセス権を分けます。保管期間や削除の判断は、組織の手順や適用条件に照らして決め、本稿の例から一律の日数を導きません。
再開できる範囲を判断する
再開の判断には、汚染源の扱い、派生先、操作結果、実行権限がどうなったかを、影響する経路ごとに示します。架空例では、D7の利用停止、M8の失効と関連参照の点検、A4の拒否確認、A5の結果照合を別の作業として記録します。これらのうち重要な未確認が残る経路は、そのまま再開しません。
安全な部分処理を続けるなら、疑わしい資料や記憶に依存しないことを確かめます。たとえば確認済みの別資料だけで一般的な回答案を作れる場合は、送信機能を使わない限定的な処理へ戻せます。別資料もS2から作られているなら、名前が違うだけで独立した根拠とはいえません。検知後に全面停止と部分処理のどちらを選ぶかの条件は「インジェクション検知後に全面停止と部分処理を選ぶ条件」で扱っています。
復旧後の確認には、元の利用者の依頼と、機密情報を含まない模擬資料を使います。汚染した操作要求が再採用されないこと、許可のない操作が止まること、正当な回答が作れることを別々に見ます。以前の問題文が出なくなったという一点だけで、すべての原因が除去されたと結論付けません。
責任者への報告では、「隔離済み」「記憶訂正済み」「外部操作確認済み」「資格情報確認済み」「未確認」を分け、再開する範囲と保留する範囲を示します。利用者へ必要な訂正や連絡がある場合は、その内容と送信先を別途判断します。調査が進むにつれて対象が増えたなら、既に再開した部分への影響も見直します。再開後に旧版の記憶が参照された、同じ未承認宛先が再び提案されたなど、再隔離する条件も決めておきます。監視を続ける担当者と確認対象を定め、単に一定時間が過ぎたことだけで復旧完了にしません。
本稿では隔離操作や模擬試験を実施していません。ここで示したのは、観測記録から次の確認先をたどる設計です。新しいセッションを作った事実よりも、何を持ち込まず、何を確認して再開したかを説明できることが、復旧の範囲を明確にします。
Memory Poisoningを防ぐ保存前の確認と、汚染された記憶の訂正は「Memory Poisoningを防ぐ保存前の確認と汚染記憶の訂正」で解説しています。

