Shikata Ga Nai

Private? There is no such things.

LLM05:2025 — 出力処理の不備(Improper Output Handling)を初心者向けに徹底解説

Hello there, ('ω')ノ

出力処理の不備とは?

LLMの出力は人間向けの文章に見えますが、中身はシステムにとって「命令」や「コード」になることがあります。もしこれを無検証で使うと:

  • XSS攻撃(ブラウザに不正スクリプトが走る)
  • SQLインジェクション(データベース破壊)
  • コマンドインジェクション/RCE(サーバで不正コード実行)
  • SSRF(内部システムへの不正アクセス)

など、従来のWeb脆弱性と同じ被害が発生します。


具体例:初心者でもイメージしやすい攻撃シナリオ

例 1:コード生成の危険

  • 攻撃:開発支援AIに「DBを初期化するSQLを作って」と依頼。
  • AIの誤作動:そのまま「DROP TABLE users;」を生成。
  • 被害:全ユーザーデータ削除。
  • 簡単防御:必ずパラメータ化クエリを使い、AIの出力を直接実行しない

例 2:Web出力でXSS

  • 攻撃:ユーザーが「<script>alert(1)</script>」を混ぜたプロンプトを送る。
  • AIの誤作動:それをそのままWebページに埋め込む。
  • 被害:閲覧者のブラウザで任意のスクリプト実行。
  • 簡単防御:HTMLエスケープやCSP(Content Security Policy)の導入

例 3:メール本文に悪意あるリンク

この続きはcodocで購入