<style>
.ais26-hero{padding:clamp(26px,5vw,46px);border-radius:24px;color:#fff;background:linear-gradient(125deg,#16283d,#285e79 56%,#438b83)}.ais26-hero h2{color:#fff;margin:.25em 0}.ais26-kicker{color:#bcefe7;font-size:.8rem;font-weight:800;letter-spacing:.12em}.ais26-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.ais26-card{padding:18px;border:1px solid #c5dcdf;border-radius:15px;background:#f0f9f8}.ais26-card strong{display:block;color:#206e75;font-size:1.12rem;margin-bottom:7px}.ais26-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:20px 0}.ais26-step{padding:15px;border:1px solid #bfdbdc;border-radius:13px;background:#e9f6f5}.ais26-step b{display:block;color:#1e6972}.ais26-table{overflow-x:auto;margin:20px 0}.ais26-table table{width:100%;min-width:650px;border-collapse:collapse}.ais26-table th,.ais26-table td{padding:11px;border:1px solid #c4d9db;text-align:left;vertical-align:top}.ais26-table th{background:#e4f3f1}.ais26-note{padding:17px 20px;border-left:5px solid #d69a4e;border-radius:10px;background:#fff7e9;margin:20px 0}@media(max-width:760px){.ais26-grid,.ais26-flow{grid-template-columns:1fr 1fr}}@media(max-width:520px){.ais26-grid,.ais26-flow{grid-template-columns:1fr}}
</style>
GITHUB SECURITY / AI SCAN
「有効」=「すべてのPRを検査済み」ではない
GitHubのSecurity overviewにAI Scanの導入状況が加わりました。管理者が何を見られるようになったのか、数字の読み違いを防ぐための条件を整理します。
3行で要約
- GitHubは2026年10月6日、組織・企業のSecurity overview「Coverage」でAI Scan for pull requestsの有効化状況を表示し始めた。[1]
enabledとnot enabledの件数・リポジトリ別状態、専用フィルタ、CSV列が追加され、導入対象の棚卸しに使える。[1][2]
- ただし
enabledは実際の全PR検査を意味しない。対象言語・変更内容・PRの種類など実行条件があり、not enabledには利用対象外のリポジトリも含まれる。[2][3]
背景:AI Scanとは
AI Scan for pull requestsは、CodeQLが十分に扱えない言語やフレームワークの脆弱性を、AIベースのエンジンで探すGitHubのコードスキャン機能だ。現時点ではPublic Previewで、検出結果はPR上の助言として表示され、過去の未対応アラート一覧には載らず、PRのマージも自動では止めない。[3]
たとえばGitHubのドキュメントはPHP、Shell/Bash、TerraformのHCL、Dockerfileなどを対象例として挙げる。ただし対応範囲は変わり得る。AI ScanはCodeQLの代わりではなく、カバー範囲の補完として扱うのが正確だ。[3]
何が新しいのか:導入状況がリポジトリごとに見える
今回の更新はAI Scanエンジンそのものの新しい検出性能を発表したものではない。管理者が有効化状況を把握するための表示機能だ。Security overviewのCoverage画面に、有効・無効の件数と各リポジトリの実効状態が表示される。CSVエクスポートにもCode Scanning AI Scan for pull requests列が追加された。[1]
全体件数有効・無効のリポジトリ数をCoverageの要約で確認。
対象の絞り込み専用フィルタで未有効リポジトリを抽出。
CSVで追跡列を使って担当チームや対応状況と突き合わせる。
表示は組織・企業のポリシー、組織設定、前提条件、リポジトリごとのオプトアウトを反映した実効状態だ。一方、not enabledの理由は画面上で区別されず、AI Scanの対象外リポジトリも含み得る。件数をそのまま「設定漏れの数」と読まないことが重要だ。[2]
技術的なポイント:状態と実行は別の層
AI Scanを評価するときに分けるべき三つの層| 層 | 確認すること | 誤解しやすい点 |
|---|
| 設定・資格 | 企業ポリシー、組織・リポジトリ設定、必要ライセンス、コードスキャンの有効化 | Coverageで`enabled`なら全PRを走査する、とは限らない。 |
| PRの適格性 | 対応する言語・フレームワークの変更か。forkやDependabotのPRではないか | PRが存在しても条件に合わなければ実行されない。 |
| 検出結果 | PR上の助言を確認し、人が真偽と対応を判断 | 結果が出ないことは脆弱性がゼロという証明ではない。 |
GitHub Docsによると、実行にはコードスキャンとAI Scanの実効設定が有効で、適格なPRに対象となる変更があることが必要だ。CodeQLのデフォルトセットアップは現在は必須ではない。AI ScanはforkからのPRやDependabot作成PRでは動作せず、使用量はAI creditsを消費する。Public Preview中はGitHub Advanced SecurityとGitHub Copilotのライセンスが必要と案内されている。[3][4]
開発者・企業への影響
セキュリティ管理者には、組織全体に設定が届いているかを確認する入口ができた。特定チームやリポジトリの導入状況をCSVで追えるため、例外を説明しやすくなる。一方、開発チームには検出結果の確認と誤検知のフィードバック、費用と対象言語の理解が必要だ。これは機能の運用上の意味についての編集上の推論であり、GitHubが脆弱性発見率の向上を数値で保証したものではない。
実践例:未有効リポジトリの棚卸し
1 Coverageを開く組織のSecurity and qualityからCoverageへ。
2 未有効を抽出専用フィルタで候補を一覧にする。
3 理由を分類ポリシー、資格、設定、対象外を調べる。
4 PRで確認適格な変更のあるPRで動作を検証。
- 組織の「Security and quality」→「Coverage」を開き、
code-scanning-ai-scan-pr-scan:not-enabledで絞り込む。必要ならcode-scanning-ai-scan-pr-scan:enabledで有効側も確認する。[1][2]
- CSVを出力し、
Code Scanning AI Scan for pull requests列とリポジトリの担当チームを突き合わせる。not-enabledをすべて設定漏れとせず、ポリシー・前提条件・利用対象外を確認する。[1][2]
- 対象にするリポジトリでは、企業→組織→リポジトリの設定階層を確認する。組織レベルが無効なら、リポジトリ設定だけでは覆せない。設定変更は権限のある管理者が段階的に行う。[3][5]
- 対象言語の変更を含む通常のPRで実行結果を確認する。結果は助言であり、真偽を人がレビューする。APIでの導入管理も可能だが、実効状態の棚卸しと実際のPR実行確認は別に行う。[3][5]
運用上の注意:Coverageの`enabled`は「設定と資格を反映した有効状態」。そのリポジトリの過去・将来のすべてのPRがAIで検査されたことを示す監査証跡ではない。監査報告では、有効化率と実際の適格PRでの実行・検出結果を分けて記載する。[2][3]
リスクと限界
- プレビューと誤検知:対象言語や検出カテゴリは変更され得る。結果は誤検知を含み得るため、手動確認が必要。[3]
- 対象外のPR:forkやDependabotによるPRは実行されない。CodeQL等の既存の対策を外さない。[3]
- 費用:利用時にAI creditsを消費する。広範囲に有効化する前に、ライセンスと使用量の管理方針を決める。[3]
- 数字の解釈:
not enabledは理由別の分類ではない。権限・資格・方針の違いを確認せずにチームを評価するのは避けたい。[2]
今後注目すべき点
Coverageに理由別の内訳や実行件数が加わるか、対応言語・フレームワークと課金条件がどう変わるかを追いたい。まずは設定の可視化を使いながら、適格PRでの実行と人によるトリアージを別々に測定するのが実務的だ。
最終確認日:2026年10月7日(日本時間)。今回のCoverage更新の発表日は2026年10月6日。APIによる設定管理は9月10日、CodeQLデフォルトセットアップが不要になったのは9月16日の更新であり、同時公開ではない。[1][4][5]
参照元
- GitHub Changelog:AI ScanのCoverage表示追加
- GitHub Docs:セキュリティ機能の採用状況を確認する
- GitHub Docs:AI Scan for pull requestsの条件・制限
- GitHub Changelog:CodeQLデフォルトセットアップ要件の変更
- GitHub Changelog:AI Scan設定APIの公開