GitHubは2026年10月13日、シークレットスキャンに独自の分類モデルを導入した経緯と成果を発表した。リポジトリに含まれるパスワードやAPIキーなどの認証情報(シークレット)を、周囲のコードの文脈から見分けるモデルだ。
従来はLLMを使った仕組みで判定していた。新しい仕組みでは、利用者が検出結果を受け入れた割合が11.5%高まり、スキャンの実行時間は86%短くなった。運用コストも98%以上削減したという。
汎用シークレットの検出が難しい理由
APIキーなどの構造化された認証情報には、特有の接頭辞や長さ、文字種、チェックサムがあることが多い。一方で、パスワードのような汎用的なシークレットにはそうした特徴がない場合がある。ビルドIDやチェックサム、ファイルのハッシュ値、サンプル値などと見た目が重なるためだ。
GitHubは、判定の決め手は文脈だと説明する。本番データベースのURLの横に書かれたパスワードは本物の可能性が高い。一方で、同じ形の値でもテスト用のデータに書かれていれば無害な可能性が高い。ルールを追加して誤検知を抑える方法もあるが、例外を増やすほど本物のシークレットを見逃すリスクが高まる。
正規表現と分類モデルの2段階で判定
新しいスキャナーは2段階の仕組みで動く。まず正規表現で、シークレットらしい文字列を漏れなく拾い出す。次に、微調整した「ModernBERT」の分類モデルが、候補の値とファイルパス、変数名、周囲のコードを合わせて読み、本物のシークレットである可能性を判定する。
確度の高いものだけがアラートになり、プレースホルダーやテスト用データ、チェックサムなどは開発者に届く前に除外される。GitHubは、モデルが正規表現を置き換えるのではなく補完する点を重要な設計判断として挙げる。高速で確実な候補抽出は正規表現に任せ、「シークレットらしい」と「本物らしい」の区別に機械学習を使う形だ。
ModernBERTを選んだのは、小型で効率がよく、コードに近いテキストの分類に向いているためだという。文章を生成する汎用LLMより、この段階の処理に適した構成だとしている。モデルはONNX形式に変換し、8ビット量子化して高速に推論できるようにした。
学習データと評価の結果
学習には3種類のデータを使った。GitHubのリポジトリから得た製品由来の例、正規表現で幅広く拾った候補、検出が難しいケースを狙った合成データである。合成データは、決定的な検証とモデルによる品質確認を経てから取り込んだ。
評価は2段階で行った。同じ公開トラフィックで従来のLLM方式と比べたオフライン評価では、コード保存後のスキャンで精度が13%、再現率が19%向上した。顧客を対象にしたA/Bテストでは、リポジトリ所有者ごとに重み付けした受け入れ率が11.5%上がった。
処理が速くなったことで、汎用シークレットの検出を「プッシュ保護」にも広げられるようになった。プッシュ保護は、変更をリポジトリに送る前にスキャンし、シークレットの混入を防ぐ機能だ。コードの保存後だけでなく、送信前の段階で開発者に結果を返せるようになった。
企業への示唆
開発を内製している企業では、ソースコードに認証情報が紛れ込むリスクが常にある。AIによるコード生成で開発のスピードが上がるほど、確認の手が回らなくなる。GitHubを使っている場合は、シークレットスキャンとプッシュ保護が自社のリポジトリで有効になっているかを確認しておきたい。
一方で、ツールの精度が上がっても、検出された認証情報を無効化して再発行する運用は社内で整えておく必要がある。外部委託先が管理するリポジトリについても、同じ水準のスキャンが行われているかを確認しておきたい。どの機能がどの料金プランで使えるかは今回の発表では示されていないため、GitHubの公式ドキュメントで確かめておくとよい。
ITトレンドで情報漏えい対策サービスについてチェック![情報漏えい対策サービスを徹底比較!メリットや選び方も解説]
GitHubの動向はこちらもチェック![GitHub Copilotアプリが示すエージェント時代の開発環境 – 開発者体験の再定義とその意味]
まとめ
GitHubは、シークレットスキャンに正規表現とModernBERTを組み合わせた独自の分類モデルを導入した。従来のLLM方式と比べ、受け入れ率は11.5%高まり、スキャン時間は86%短く、コストは98%以上下がった。
処理の高速化により、汎用シークレットの検出はプッシュ保護にも広がった。企業は自社のリポジトリでこれらの機能が有効になっているかを確認し、検出後の対応手順も整えておきたい。

