CodeQLがsystem prompt injectionを検出:AIセキュリティをCIのデータフロー問題に変える
CodeQL 2.26.0を起点に、ユーザー入力・system prompt・tool descriptionの信頼境界をCI、評価、実行時権限まで接続する実践ガイド。
何が起きたのか
GitHubは2026年7月10日にCodeQL 2.26.0を公開した。`js/system-prompt-injection`は信頼できない値がsystem promptやtool descriptionへ流れる経路を検出する。
なぜ重要なのか
OpenAI、Anthropic、Google GenAIのAPIがモデル化されている。自由入力はuser messageか構造化parameterへ移し、動的な指示値が必要なら固定allowlistで制限するのが推奨だ。
コミュニティが示す課題
静的解析は一層にすぎない。Web、メール、RAG由来の間接入力はadversarial evalで、tool実行はサーバー側の認可・tenant分離・承認で守る必要がある。
開発・運用への影響
まずaudit modeで既存負債を把握し、新しい高信頼経路をPR gateにする。モデル、SDK、prompt、tool変更時には必ず再実行する。
今週のチェックリスト
✓CodeQL bundleを最新版へ更新する。
✓自由入力はuser messageか構造化tool parameterへ移す。
✓サーバー側で最小権限、tenant scope、承認を強制する。
リスクと反論
まずaudit modeで既存負債を把握し、新しい高信頼経路をPR gateにする。モデル、SDK、prompt、tool変更時には必ず再実行する。