API キーやパスワードなどの資格情報がハードコーディングされたシークレットとしてリポジトリにコミットされると、承認されていないアクセスのターゲットになります。 Secret scanning は資格情報リークを自動的に検出するため、悪用される前にセキュリティで保護できます。
ヒント
漏洩したシークレットについては、いつでも組織のコードの無料評価を実行できます。
レポートを生成するには、 組織の [ Security] タブで、[評価] ページを表示し、[組織のスキャン] をクリックします。を開きます。
シークレット スキャンによってコードが保護されるしくみ
Secret scanning は、リポジトリのすべてのブランチで Git 履歴全体をスキャンして、API キー、パスワード、トークン、その他の既知のシークレットの種類など、ハードコーディングされた資格情報を探します。 これにより、セキュリティ リスクになる前に、シークレットのスプロール(リポジトリ間での資格情報の制御不能な急増)を特定するのに役立ちます。 GitHub また、新しいシークレットの種類が追加されると、リポジトリも定期的に再スキャンされます。
GitHub また、次の項目も自動的にスキャンされます。
- 問題の説明とコメント
- オープンとクローズの過去の問題のタイトル、説明、およびコメント
- pull request のタイトル、説明とコメント
- のタイトル、説明、およびコメント GitHub Discussions
- ウィキ
- 秘密の要旨
Secret scanning アラートと修復
secret scanningが資格情報の漏洩を検出すると、GitHubは公開された資格情報に関する詳細を含むアラートをリポジトリの** Security** タブに生成します。
アラートを受信したら、影響を受ける資格情報をすぐにローテーションして、承認されていないアクセスを防ぎます。 Git 履歴からシークレットを削除することもできますが、これは時間がかかり、資格情報を既に取り消している場合は多くの場合不要です。
カスタマイズ
パートナーシークレットとプロバイダー シークレットの既定の検出以外にも、ニーズに合わせて secret scanning を拡張およびカスタマイズできます。
- プロバイダー以外のパターン。 秘密キー、接続文字列、汎用 API キーなど、特定のサービス プロバイダーに関連付けられていないシークレットに検出を拡張します。
- カスタム パターン。 既定のパターンでカバーされていない組織固有のシークレットを検出する独自の正規表現を定義します。
- 有効性チェック。 検出されたシークレットがまだアクティブであるかどうかを確認して、修復に優先順位を付けます。
有効性チェックについて
有効性チェックは、検出されたシークレットがまだアクティブであるかどうかを確認することで、最初に修復するシークレットに優先順位を付けるのに役立ちます。 有効性チェックを有効にすると、 secret scanning はシークレットの発行元サービスに連絡して、資格情報が取り消されたかどうかを判断できます。
有効性チェックは、 secret scanningのパートナー プログラムとは別です。 パートナー シークレットは失効のためにサービス プロバイダーに自動的に報告されますが、有効性チェックでは、独自のアラートで管理するシークレットの状態が確認されます。 詳しくは、「有効性チェックについて」をご覧ください。
この機能にアクセスするにはどうすればよいですか?
Secret scanning は、次のリポジトリの種類で使用できます。
- パブリック リポジトリ: Secret scanning は無料で自動的に実行されます。
- 組織所有のプライベートリポジトリと内部リポジトリ: GitHub Secret Protection または GitHub Team で有効になっている GitHub Enterprise Cloud で使用できます。
- ユーザー所有のリポジトリ: GitHub Enterprise Cloud および Enterprise Managed Users で利用可能です。 GitHub Enterprise Server で使用できるのは、エンタープライズで GitHub Secret Protection が有効になっている場合です。
次のステップ
- アラートを受け取った場合は、 シークレット スキャン アラートの管理 を参照して、公開されているシークレットを確認、解決、修復する方法を確認してください。
- 組織をセキュリティで保護する場合は、 組織のシークレット リスク評価の実行 を参照して、漏洩したシークレットに対する組織の露出を判断してください。
詳細については、次を参照してください。
- サポートされているシークレットとサービス プロバイダーの完全な一覧については、 サポートされているシークレット スキャン パターン を参照してください。