MF Blogs 便利ツール
盾のチェックマークとプルリクエストの分岐アイコン、AIのきらめきをあしらったセキュリティイメージ

記事

GitHub、AI Scanの有効化をAPIで一括管理——プルリクエスト向けAIセキュリティ検査がパブリックプレビューに

GitHubはコードスキャニングの「AI Scan for pull requests」をREST APIから組織・リポジトリ単位で管理できるパブリックプレビューを公開しました。公式Changelogをもとに新機能を紹介します。

0:00 0:00

GitHubは、コードスキャニングのAI活用機能「AI Scan for pull requests」の有効・無効を、REST APIから組織単位・リポジトリ単位でまとめて管理できる新機能をパブリックプレビューとして公開しました。公式Changelogによると、これまでGitHub UI上で1つずつ設定していたAI Scanの有効化作業を、プログラム経由で一括操作できるようになったといいます。多数のリポジトリを抱える組織が、手作業の設定変更なしにAIによるセキュリティ検査を展開しやすくなる仕組みです。

新しい2つのAPIエンドポイント

今回追加されたのは、/orgs/{org}/code-scanning/ai-scan/repos/{owner}/{repo}/code-scanning/ai-scan という2つのエンドポイントです。前者は組織全体でプルリクエストのAI Scanを実行できるかどうかを制御し、後者は個別リポジトリごとのオン・オフを切り替えます。公式Changelogは、リポジトリ単位の設定が組織レベルの無効化設定を上書きすることはできないと明記しており、組織の方針を優先する設計になっている点がポイントです。大規模な組織でセキュリティポリシーを一元管理したいセキュリティチームにとって、扱いやすい構成といえます。

GitHub Advanced Securityによるプルリクエストの自動レビューで、コード中の脆弱性を検出し修正案を提示している画面

画像引用元: GitHub Blog

対象はGitHub Advanced Security利用者、GHESは非対応

この新しいプレビュー機能は、github.com上でGitHub Advanced Securityを契約している顧客が対象です。公式Changelogは、今回のリリースではGitHub Enterprise Serverがサポート対象外であることも明記しており、クラウド版の利用者から先行して展開する方針が読み取れます。詳細な仕様は「AI Scan security detections」のドキュメントにまとまっており、実際にAPIを呼び出す前に一読しておくとつまずきにくいでしょう。

  • 対象API: 組織単位(/orgs/{org}/code-scanning/ai-scan)とリポジトリ単位(/repos/{owner}/{repo}/code-scanning/ai-scan)
  • できること: AI Scan for pull requestsの有効・無効の読み取りと更新
  • 優先順位: 組織で無効化されている場合、リポジトリ側の設定では上書きできない
  • 提供範囲: github.com上のGitHub Advanced Security顧客向け、GitHub Enterprise Serverは非対応
  • フィードバック: GitHub Community上のアナウンススレッドで受付中

大規模導入を後押しするAPI公開の意味

これまでAI Scanのようなセキュリティ機能を数百のリポジトリに展開しようとすると、管理者がUIを1つずつ開いて設定する必要があり、展開の速度がボトルネックになりがちでした。今回のAPI公開によって、Infrastructure as Codeの発想でセキュリティ設定をコード化し、CI/CDパイプラインやプロビジョニングスクリプトに組み込むことが可能になります。新規リポジトリを作成した瞬間にAI Scanを自動で有効化する、といった運用も現実的になるはずです。

セキュリティチームにとっても恩恵は小さくありません。従来はリポジトリごとの設定状況を定期的に目視で確認する必要がありましたが、APIから現在の有効・無効状態を読み取れるようになったことで、コンプライアンス監査のレポートを自動生成したり、設定ドリフトを検知して自動修復したりする仕組みも作りやすくなります。まずはテスト用の組織で code-scanning/ai-scan エンドポイントを叩いてみて、既存のポリシー管理フローにどう組み込めるかを検証してみるとよいでしょう。パブリックプレビューの段階であるため、仕様は今後の正式リリースに向けて変更される可能性がある点にも注意しておきたいところです。