GitHubは10月13日(現地時間)、開発者が誤ってコード内に残した機密情報(シークレット)を検出するモデルを強化したと発表した。新しいモデルを導入することで、検出時の不要な通知(ノイズ)を減らしつつ、より多くのシークレットを発見できるようになるという。この機能強化により、ジェネリックシークレット検出が、コードをリポジトリにプッシュする前にスキャンを行う「プッシュ保護」機能に拡張された。
GitHubは、コードベースのセキュリティを確保する上で重要なシークレット検出機能の改良を進めている。今回強化されたのは、従来のジェネリックシークレット検出機能で、誤検知を大幅に削減しながら、より多くの種類の機密情報を正確に識別することを目指している。この改良により、シークレットの検出は開発プロセスのより早い段階、すなわちコードがリポジトリにコミットされる前の「プッシュ保護」に組み込まれることになった。
新たに導入された検出モデルは、ジェネリックシークレットの識別において、実際の認証情報と紛らわしい文字列を区別する能力を持つ。これにより、開発者が意図せず公開してしまう可能性のあるAPIキー、トークン、認証情報などのシークレットが、リポジトリにプッシュされる前に検出され、ブロックされるため、潜在的なセキュリティインシデントのリスクを低減できる。
新しいスキャナーは、二段階のパイプラインで構成されている。まず、第一段階では正規表現フィルターが適用され、潜在的なシークレット候補を特定する。次に、第二段階では、候補と周辺のコンテキストを評価するモデルが機能する。このモデルは、ファイルパス、シークレットタイプ、変数名、周辺のコードなどの信号を利用して、誤検知の削減に貢献するとされている。
GitHubは、正規表現には一致するものの、実際にはシークレットではない、いわゆる「ハードネガティブ」の識別において、モデルベースのアプローチが特に有効であると説明している。このモデルは、コンパクトで効率的な設計が特徴であり、大規模言語モデル(LLM)ベースのパイプラインと比較して、低レイテンシーと低い計算オーバーヘッドで、コードに隣接するテキストの分類に適しているという。
このモデルのトレーニングは、GitHubリポジトリから収集された実際の製品由来の例、高再現性の正規表現候補、および合成された例を組み合わせることで実施された。多様なデータセットを用いることで、モデルは現実世界で発生する様々なシークレットのパターンと、それらを囲むコンテキストを学習し、検出精度と信頼性を向上させている。GitHubは、この検出モデルの強化により、開発者はより安心してプロジェクトを進められると見込んでいる。
参考: GitHub Blog (AI) (アーカイブ) — 2026年10月14日 02:56 (JST)