この記事について海外で公開された情報をもとにAIが要約・解説した記事です。原文の翻訳ではありません。正確な内容は記事末尾の出典元をご確認ください。
この記事の要点
  • 正規表現で候補を広く抽出し、ModernBERTで文脈から真偽を分類する2段パイプライン
  • Post-pushスキャンの実行時間を86%短縮、配信コストを98%以上削減
  • オフライン評価で精度13%・再現率19%向上、オンラインで承認率11.5%改善

何が発表されたのか

GitHubは、シークレットスキャンを支える新しい分類器について、設計・学習・評価の手法を公開しました。シークレットスキャンは、プッシュ前に機密情報の混入を防ぐ「プッシュ保護」と、コミット後に継続的にスキャンする「Post-pushスキャン」の2つの場面で動作します。

汎用シークレットは、同じ文字列が本物の資格情報にもドキュメントのプレースホルダーにもなり得るため、前後のコードやテキストを理解しないと判別が難しいと説明されています。GitHubはこの課題に対し、製品要件に合わせて学習させた分類器で、本物の資格情報と紛らわしい文字列を区別する仕組みを導入しました。

2段パイプラインの仕組み

新しいスキャナは2段構成です。第1段の「候補生成」では、正規表現フィルターが資格情報らしい文字列を高い再現率で高速かつ決定的に抽出します。第2段の「文脈考慮型分類」では、ファインチューニングしたModernBERTが候補とその周辺文脈を評価します。

分類器はファイルパス、シークレットの種類、変数名、周辺のコードやテキストといった信号を手がかりに、本物のシークレットである確率を見積もります。確信度の高い検出だけをアラートとし、プレースホルダーやテスト用フィクスチャ、チェックサムなどの類似文字列は開発者に届く前に除外されます。

設計上の要点は、モデルが決定的なスキャンを置き換えるのではなく補完する点です。正規表現は候補を素早く見つける役割を担い、機械学習は「シークレットに見える」と「実際にシークレットである可能性が高い」を区別する場面で使われます。

ModernBERTを選んだ理由

GitHubは、この用途にModernBERTが適していると説明します。小さく効率的で、コードに隣接するテキストの分類に向いており、短い候補ウィンドウに対して高スループット・低遅延で判断を下せるためです。学習したモデルは8ビット量子化したONNX形式でエクスポートされ、高速な推論を可能にしています。

汎用LLMをこの段に使うよりも、ファインチューニングしたエンコーダ型分類器の方が配信形態として適しているとしています。判断境界を直接学習でき、シークレットスキャンの品質で重視される再現率と精度の指標で評価できる点が理由です。

学習データと評価結果

学習と評価には3種類のデータを組み合わせています。GitHubリポジトリから得た製品由来の例、人間による注釈や弱ラベルを含む高再現率の正規表現候補、ドキュメントのシークレットやテストフィクスチャ、公開鍵、チェックサムなど難しいケースを狙った合成例です。合成データは決定的な検証とモデルベースの品質レビューを通過したものだけが使われます。

評価は2段階で行われました。オフライン評価では、同じ公開トラフィック上で従来のLLMパイプラインより精度が13%、再現率が19%高い結果となりました。オンラインではA/B実験で検証し、リポジトリオーナー加重の承認率が11.5%向上しました。

承認率をリポジトリオーナーで加重するのは、大量のアラートを一括処理する顧客の影響を抑え、単純平均の歪みを避けるためだと説明されています。

今後の取り組み

GitHubは今後、2つの領域に注力するとしています。1つは継続的な改善の仕組みづくりで、本番のフィードバックループから新たな偽陰性・偽陽性を見つけ、実世界の信号を学習・評価データの品質向上につなげます。

もう1つは新しいモデルアーキテクチャの検討です。シークレットの検出と抽出を1ステップで行い、精度とスケールを保ちながらパイプラインの複雑さを減らすアプローチを調査していると述べています。

新旧パイプラインの主な差(従来のLLMベースを基準)
項目新パイプライン(ModernBERT)従来(LLMベース)
Post-pushスキャン実行時間(中央値)86%短縮基準
配信コスト98%以上削減基準
オフライン評価の精度13%向上基準
オフライン評価の再現率19%向上基準
承認率(リポジトリオーナー加重)11.5%改善基準
原文からの引用
Higher precision means fewer distracting alerts. Higher recall means more real secrets are caught. Lower cost means we can keep improving coverage without making scanning prohibitively expensive.

精度が高ければ、注意をそらすアラートが減ります。再現率が高ければ、より多くの本物のシークレットを捕捉できます。コストが低ければ、スキャンを法外に高価にすることなく、カバレッジを改善し続けられます。

今後の見通し

GitHubは今後、本番のフィードバックを使って偽陰性・偽陽性を継続的に見つける改善サイクルと、検出と抽出を1ステップで行う新アーキテクチャの検討を進めるとしています。ただし、具体的な時期や対象範囲は現時点で示されていません。こうした取り組みがどの程度の精度・コスト改善につながるかは、今後の評価結果が公表されれば判断できるとみられます。汎用シークレット検出の対応範囲がどこまで広がるかも注目点です。

日本の開発者・IT企業にとっての意味

シークレットの誤検知は、開発者がアラートを確認する負担を増やし、やがてアラートを軽視する原因になります。GitHubの事例は、正規表現による候補抽出と小型の文脈考慮型分類器を組み合わせることで、精度とコストを両立できることを示しています。同様の構成は、自社のCIやコードレビューにシークレット検出を組み込む際の参考になるでしょう。特に、汎用LLMの呼び出しはコストと遅延が課題になりやすいため、8ビット量子化した小型モデルを自前で動かす選択肢は検討に値します。一方で、学習データの作り方や閾値の選び方など、品質を左右する工程は自組織で設計する必要があります。

気になる点

この分類器はGitHub以外の環境でも使えますか
原文では、GitHubの製品要件に合わせて学習した分類器と説明されており、モデルや重みの一般公開については触れられていません。オープンソースとして提供されるか、他社の環境で利用できるかは現時点では公表されていません。
誤検知はどの程度減りますか
GitHubは、リポジトリオーナー加重のアラート承認率が11.5%改善したと報告しています。またオフライン評価では精度が13%向上しています。ただしこれらはGitHub側の評価条件での数値であり、個々の環境で同じ効果が得られるとは限りません。
推論はどう動きますか。外部APIは必要ですか
学習したモデルは8ビット量子化したONNX形式でエクスポートされ、GitHubの推論基盤上で動作すると説明されています。汎用LLMの呼び出しではなく小型モデルを動かす構成のため、配信コストが大幅に下がったとみられます。

用語解説

シークレットスキャン
リポジトリ内のパスワードやAPIキーなどの機密情報(シークレット)を検出する仕組み。
ModernBERT
コードやテキストの分類に向く、小型で効率的なBERT系のエンコーダモデル。
ハードネガティブ
資格情報のパターンに一致するが実際には使えない文字列。誤検知の主な原因となる。
プッシュ保護
プッシュが受け入れられる前に変更をスキャンし、シークレットの混入を防ぐ機能。
ONNX
機械学習モデルを異なる環境で動作させるための共通フォーマット。

出典

GitHub’s model for secret detection: Finding more secrets with less noise

GitHub / Batu Ozturkler / 2026年10月14日

https://github.blog/ai-and-ml/githubs-model-for-secret-detection-finding-more-secrets-with-less-noise

AI導入も顧問も、お任せください

何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。

AI導入について相談する