GitHub、ModernBERT分類器でプッシュ保護を拡張 非構造化シークレットを2ミリ秒未満で判定
Secret protection must scale with software
GitHubはMicrosoft Applied Sciencesと開発したファインチューニング済みのModernBERT分類器を、シークレット保護に導入する。候補シークレット群を2ミリ秒未満で評価し、プッシュ保護で防げるシークレット数を2倍超にできるとしている。現在はプライベートプレビューで、今月後半にEnterprise CloudとGitHub Teamsの GitHub Secret Protection 利用組織へ提供される予定である。
GitHubによると、現在のプルリクエストの3件に1件にAIエージェントが関与しており、1年前は10件に1件未満だった。2024年第2四半期から2026年第2四半期にかけて、検査対象のプッシュは2.84倍、認証情報を含むプッシュは2.59倍に増えた。9四半期分のデータでは、プッシュあたりの発生率に統計的に検出できる傾向は見られず、プッシュ保護のブロックを開発者が上書きした割合も6.63%から3.93%に下がった。著者はこれを、開発者が不注意になったのではなく開発速度に追い越されている状況だと説明している。
手動での対応は規模に追いつかない。シークレットを手動で失効させるまでの平均は約40日で、5件に1件ほどは90日を超える。2026年第2四半期の公開スキャンでは、重複観測を含め1秒あたり平均26件の認証情報の一致を報告した。150超の技術パートナーが参加するパートナープログラムでは、通知を受けた発行元がOpenAIのAPIキーやSlack webhookなどを即座に失効させる例も多い。直近1か月では、プッシュ保護が少なくとも1秒に1回シークレットをブロックしたという。ただし追加のシークレット種別を含めると、プッシュ保護で履歴に入る前に止められるのは新規検出の約30%で、残り70%は漏洩後に見つかる。
新モデルが狙うのは、内部データベースのパスワードのように識別パターンを持たないシークレットである。GitHubは精度、遅延、スループット、コストが相互に制約し合う問題を、シークレット保護の「four-body problem」と呼ぶ。ModernBERT分類器は周辺のコード文脈から候補を評価し、データベースURLやKubernetes Secretのマニフェスト、Dockerfile内のパスワード様の値をブロックする一方、プレースホルダーのchangemeは通す。既存の大規模言語モデル(LLM)ベースのパイプラインより精度が高く、コスト効率も高いとされる。
提供範囲は複数に及ぶ。プッシュ保護への組み込みはAIクレジットを消費する。AIシークレット検出を使う組織は本日から自動的に新モデルへ更新され、プッシュ後スキャンのアラートは追加費用なしで含まれる。GitHub Enterprise Server 3.23ではパブリックプレビューとして搭載され、エアギャップ環境でもAI検出アラートを使える。Copilot CLIとCopilot Appの/security-reviewコマンドにも追加され、GitHub Secret Protectionのプランがなくてもプッシュ前に対処できる。
出典: GitHub Blog: AI & ML · github.blog