GitHub AI ScanはCodeQLの未対応領域を補う
AI Scanが調べるのは、リポジトリ全体ではなくPRで追加・変更されたコードだ。GitHubの文書では、PHP、Shell/Bash、TerraformのHCL、Dockerfile、JavaのJSP、C#のBlazorなどが例示されている。ビルド設定を別に用意せず、必要に応じてリポジトリ内のコード検索で文脈を集める。[2]
| 比較軸 | AI Scan | CodeQL |
|---|---|---|
| 主な役割 | CodeQL未対応の言語・構成をAIで補完 | 対応言語をクエリで静的解析 |
| 対象 | PRの変更 | PRとリポジトリの解析結果 |
| 結果の扱い | 助言。マージ要件にできない | 設定によりチェックやルールセットへ利用 |
| 実行条件 | code scanningとAI Scanを有効化 | default setupまたはadvanced setup |
| 課金 | Code Security AI Credits | 契約・アクティブコミッター等の条件による |
この違いは「AIの方が高性能」という意味ではない。CodeQLは対応言語のコードを構造的に解析し、継続的なアラートとして扱う。一方のAI Scanは、CodeQLの対象外で生じる穴をPR単位で埋める仕組みだ。GitHub自身も両者を補完関係と説明している。[3]
検出できてもマージは止められない
AI Scanは、PR作成時と新しいコミットの追加後に実行される。文字列インジェクション、弱い暗号、アクセス制御の不備、機密情報の露出、SSRF、サプライチェーンの危険などを分類し、多くの結果には修正案も付く。PRのConversationとFiles changedに「AI」表示付きで現れるため、CodeQLの結果と見分けられる。[2]
一方、運用上の限界は明確だ。
- AI Scanの指摘はcode scanning checkを失敗させない
- rulesetの必須条件にしてマージを止めることはできない
- forkからのPRとDependabotが作ったPRでは動かない
- リポジトリ全体の過去の脆弱性を棚卸しする用途ではない
- AIによる判定なので誤検知があり得る
したがって、導入後も「AI Scanが緑だから安全」とは言えない。重大な指摘を誰が確認するか、誤検知をどう扱うか、対象外のPRを何で補うかを決める必要がある。既存のテスト、CodeQL、依存関係とシークレットの検査、人によるレビューを残した上で、抜けていた言語を追加で見る位置づけが妥当だ。
AIが作成・レビューするPRは増えている。2026年8月公表の研究では、AIが作成したPRを別のAIがレビューする例が確認され、その量が2025年第1四半期から第3四半期に100倍超へ増えたと報告された。ただし、この研究はGitHub AI Scanの精度を評価したものではない。PR上の自動化が増える背景を示す別の観測として読むべきだ。[4]
料金はAI Creditsの予算で管理する
GitHub CopilotのライセンスはAI Scanの利用条件ではない。公開リポジトリは組織所有と個人所有の双方で利用できる。非公開・internalリポジトリは組織所有に限られ、GitHub Code SecurityまたはGitHub Advanced Securityが必要だ。個人アカウントの非公開リポジトリでは使えない。[2]
費用はCode Security AI Creditsとして、条件を満たすPRが実際にスキャンされた時に発生する。Copilot契約などに含まれるAI creditsがある場合は先に消費し、使い切ると従量課金と予算設定に従う。hard budgetで利用可能なcreditがなくなると、スキャン自体ではなく「結果を生成できない」状態になり、管理者が予算を増やすか次の請求期間になるまで再開しない。[5]
導入前には、次の順で確認したい。
- CodeQLで扱えていない言語や構成ファイルがあるか
- public、organization private、personal privateのどれか
- 課金先アカウントと、含まれるAI creditsの残量
- SKU単位のhard budgetをいくらにするか
- findingsの担当者と、修正を採用する条件
組織設定で有効にすると、code scanningが有効な対象リポジトリへ直ちに適用され得る。個別リポジトリで担当者がopt outする前にも対象PRがcreditを消費する可能性があるため、先に予算を設定するのが安全だ。[2]
導入判断は「穴」と「止め方」を先に決める
最初から全リポジトリへ広げるより、CodeQL未対応の言語を含み、PR件数を把握しやすい数個のリポジトリで試す方がよい。2〜4週間ほど、指摘数、真陽性、修正案の採用数、レビュー時間、credit消費を記録すれば、対象拡大の判断材料になる。GitHubは組織・enterprise向けのSecurity overviewで、指摘数、解決数、Copilot Autofixの採用状況を確認できる。[6]
ただし、真陽性率やレビュー時間の改善はGitHubの一般提供発表だけでは確認できない。TechCreate編集部でも実リポジトリによる精度・料金の検証はしていない。数値を出す場合は、リポジトリと言語、PR件数、評価者、期間をそろえ、自社の測定として扱う必要がある。
AIを使った開発ツールの乗り換えでは、機能名より移行期限と代替手段を分けることも重要だ。関連する判断方法は「Gemini Code Assistは終了?移行期限と代替策」で整理した。セキュリティ事故の影響を事業面から考える場合は「日本で相次ぐサイバー攻撃、企業は何を備えるべきか」も参考になる。
まとめ
- GitHub AI ScanはCodeQLの代替ではなく、PHP、Shell、HCL、DockerfileなどのPRを補完するAI検査である
- 指摘はマージを止めず、forkとDependabotのPR、リポジトリ全体の棚卸しも対象外なので、人と既存検査を残す必要がある
- Copilotライセンスは不要だがCode Security AI Creditsを消費するため、対象リポジトリとhard budgetを先に決めて小さく試すのが現実的である
出典・参考
- GitHub「AI Scan for pull requests generally available」2026年10月15日
- GitHub Docs「AI Scan for pull requests」
- GitHub Docs「About code scanning with CodeQL」
- arXiv「AI-to-AI Code Reviews of GitHub Pull Requests」2026年8月
- GitHub Docs「GitHub Advanced Security billing」
- GitHub Changelog「Code scanning AI Scan metrics in security overview」2026年10月13日






読者のコメント (0)
コメントを残す