開発ツール・セキュリティ

CodeQLのシステムプロンプト注入検知は、AIアプリの安全確認をコードレビューへ組み込む

GitHubはCodeQL 2.26.0に、信頼できないユーザー入力がシステムプロンプトへ流れ込む経路を検出するJavaScript / TypeScript向けクエリを追加しました。プロンプト安全性が、手作業の確認から静的解析の対象へ入ります。

重要度★★★開発ツール読了7分

先に見る点

  • 新しい js/system-prompt-injection クエリは、外部入力からシステム指示までのデータフローを追跡します。
  • OpenAI、Anthropic、Google GenAIの追加APIが「危険な到達点」としてモデル化されました。
  • 検知は防御の最初の確認であり、実行時の権限制限や出力検証も引き続き必要です。

「プロンプト文字列」もセキュリティ境界になった

システムプロンプトには、エージェントの役割、禁止事項、利用可能なツール、内部ルールが含まれます。そこへ検索結果、フォーム入力、外部文書などの未検証値を連結すると、攻撃者がモデルの優先指示を書き換えたり、意図しない操作へ誘導したりする余地が生まれます。

図解: CodeQLが追う危険な流れ

Sourceフォーム、URL、外部文書などの未信頼入力。
Flow加工・連結されながらアプリ内を移動。
Sinkシステム指示やキャッシュ済みコンテンツへ到達。

現場で見る点: アラートを直すだけで終わらせない

対策確認事項
コード入力とシステム指示を分離する文字列連結やテンプレート展開を避ける
モデル外部コンテンツをデータとして明示する命令と引用データの境界を保つ
ツール最小権限と承認ゲートモデルが誤誘導されても重大操作を防ぐ
運用攻撃テストとログ監視新しい入力経路を継続的に評価する

github.comのコードスキャン利用者には新バージョンが自動展開されます。GHESでは将来リリースへの収録待ちとなるため、必要に応じてCodeQLの手動更新計画を確認します。

まとめ

今回の更新は、AIアプリ特有の欠陥が一般的なDevSecOpsへ統合され始めた合図です。静的解析で見つけられる経路を早期に潰し、実行時の権限と人間の承認を重ねる多層防御が現実的です。

参考情報