7 分で読めます

AIエージェント出力の安全ゲート設計——スキーマ検証・PII検出・ポリシーフィルタで下流攻撃を止める

エージェントが生成した文章をそのままUIに描画する、DBに挿入する、別のエージェントへのプロンプトとして渡す——こうした実装を本番で多く目にします。しかし、LLMの出力は確率的生成と外部ツールの戻り値が混在した「検証されていないデータ」です。OWASP Top 10 for LLM Applications 2025はLLM02「安全でない出力処理(Insecure Output Handling)」として、エージェント出力を無検証で下流に渡すことを独立したリスク項目に挙げています。プロンプトインジェクション対策(LLM01)が「悪意ある入力からモデルを守る」設計なのに対し、LLM02は「モデルが生成した出力から下流システムを守る」設計です。

AIガバナンス体制の整備では、入力側防御と出力側防御の両方を揃えることが基線となります。

エージェント出力はなぜ「信頼できないデータ」なのか

LLMの出力は、外部コンテンツの汚染・確率的誤生成・ツール戻り値の混入という3因子を持つため、下流システムへの信頼渡しは危険です。

エージェントの出力が「安全でない」理由は3つあります。

① 外部コンテンツの混入: ツールが返すメール本文・Webスクレイプ・DB検索結果はすべてモデルのコンテキストに入ります。間接プロンプトインジェクション(外部コンテンツに埋め込まれた命令)に成功した攻撃者は、エージェントの出力に任意のテキストを混入できます。

② 確率的誤生成: モデルはPIIやAPIキーなどコンテキスト中に存在する機密情報を、回答の中に「自然な言葉として」含めることがあります。意図的でないが漏洩の結果は同じです。

③ ツール戻り値の無加工転写: コードインタープリターやシェル実行の戻り値をモデルが要約せずそのまま出力に貼り付けるケースでは、スタックトレースや内部パスなどが漏洩します。

OWASP LLM02が問題にするのは、これらの出力を文脈を考えずに下流コンポーネント(UI、DB、別エージェント)が消費したときに起きる二次被害です。XSS・SQLインジェクション・コマンドインジェクション・機密情報流出・マルチエージェント汚染の5種が典型的な結果として挙がっています。

エージェント出力が攻撃ベクターになる3つのシナリオはどれか

エージェント出力を攻撃ベクターとして悪用するシナリオはXSSなどの注入・機密情報漏洩・マルチエージェント連鎖汚染の3類型に整理されます。

シナリオ1:スクリプト・コマンドインジェクション

Webアプリがエージェントの出力をHTMLとして描画する構成では、出力に含まれる