10月15日、GitHubが「AI Scan for pull requests generally available」と題した記事を公開した。プルリクエスト向けのAIコードスキャン機能「AI Scan」が正式リリース(GA)となり、CodeQLがカバーしてこなかった言語・フレームワークの脆弱性検出を補完する形で全ユーザーへの提供が始まった。Terraform・Dockerfile・PHPといったインフラ定義ファイルやサーバーサイド言語まで対象に含まれる点は、現場のセキュリティレビュー工数に直接影響する。
CodeQLの死角を埋めるAIスキャン
GitHubのコードスキャン機能は、長らくCodeQLを中心に構成されてきた。CodeQLは静的解析エンジンとして強力だが、対応言語には限りがある。そのカバレッジ外に置かれてきたのが、PHP、Shell/Bash、Terraform設定(HCL)、Dockerfile、JavaのJSP、C#のBlazorといった言語・フレームワークだ。
「AI Scan for pull requests」は、まさにこの空白地帯を埋めるために設計されている。CodeQLと競合するのではなく、補完的な位置づけとして動作する点が重要だ。インフラ定義ファイル(Terraform、Dockerfile)まで対象に含まれているのは、IaCのセキュリティレビューが手薄になりがちな現場にとって実用的な強化である。
動作の仕組み
AI Scanは、コードスキャンとリポジトリのAI Scan設定が有効になっている場合に、プルリクエスト上で自動実行される。検出結果はCodeQLのアラートと並んで、会話タブおよびファイル差分タブに表示され、「AI」インジケーターでCodeQLのアラートと区別できる。
検出結果には、セキュリティリスクの説明と自動修正の提案(autofix)が含まれる場合がある。
ただし、AI Scanの検出結果はアドバイザリ扱いである。コードスキャンチェックを失敗させることはなく、ルールセット要件によるプルリクエストのマージブロックにも使用できない。また、フォークからのプルリクエスト、およびDependabotが作成したプルリクエストでは動作しない。
利用条件と課金
利用可能範囲:
- 組織または個人アカウントが所有するパブリックリポジトリ:追加ライセンス不要
- プライベート・内部リポジトリ:**GitHub Code Security** または GitHub Advanced Security が必要
- GitHub Copilotライセンスは不要
課金面では、AI Scan for pull requestsは「Code Security AI Credits」を消費する。使用量はエンタープライズの課金・ライセンス画面の「AI usage」セクションに「Advanced Security」プロダクトとして表示される。SKUレベルの予算上限設定も可能だ。
何がエンジニアに刺さるか
CodeQLが対応していないインフラ系ファイル(Terraform、Dockerfile)やサーバーサイドテンプレート(JSP、Blazor)の脆弱性をPRレビューの段階で自動検出できる点は、セキュリティレビューの工数削減に直結する。アドバイザリ扱いでマージをブロックしない設計は、開発フローへの摩擦を最小化する意図が読み取れる。
一方で、Code Security AI Creditsの消費が課金に直結する従量制モデルは、大規模リポジトリや高頻度のPR運用をする組織にとってコスト試算が必要な部分だ。パブリックリポジトリであれば無償で利用できるため、OSSプロジェクトでの検証から始めるのが現実的な選択肢である。
コミュニティでの議論はGitHub Community Discussions(AI Scan関連スレッド)でも行われている。
詳細はAI Scan for pull requests generally availableを参照していただきたい。