<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で動作を検証。
  1. 組織の「Security and quality」→「Coverage」を開き、code-scanning-ai-scan-pr-scan:not-enabledで絞り込む。必要ならcode-scanning-ai-scan-pr-scan:enabledで有効側も確認する。[1][2]
  2. CSVを出力し、Code Scanning AI Scan for pull requests列とリポジトリの担当チームを突き合わせる。not-enabledをすべて設定漏れとせず、ポリシー・前提条件・利用対象外を確認する。[1][2]
  3. 対象にするリポジトリでは、企業→組織→リポジトリの設定階層を確認する。組織レベルが無効なら、リポジトリ設定だけでは覆せない。設定変更は権限のある管理者が段階的に行う。[3][5]
  4. 対象言語の変更を含む通常の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]

参照元

  1. GitHub Changelog:AI ScanのCoverage表示追加
  2. GitHub Docs:セキュリティ機能の採用状況を確認する
  3. GitHub Docs:AI Scan for pull requestsの条件・制限
  4. GitHub Changelog:CodeQLデフォルトセットアップ要件の変更
  5. GitHub Changelog:AI Scan設定APIの公開

Previous Post Next Post