Skip to main content

シークレット スキャンについて

公開された資格情報を悪用する前に自動的に検出することで、シークレットの不正使用を防止します。

API キーやパスワードなどの資格情報がハードコーディングされたシークレットとしてリポジトリにコミットされると、承認されていないアクセスのターゲットになります。 Secret scanning は資格情報リークを自動的に検出するため、悪用される前にセキュリティで保護できます。

ヒント

漏洩したシークレットについては、いつでも組織のコードの無料評価を実行できます。

レポートを生成するには、 組織の [ Security and quality] タブで、[評価] ページを表示し、[組織のスキャン] をクリックします。を開きます。

シークレット スキャンによってコードが保護されるしくみ

          Secret scanning は、リポジトリのすべてのブランチで Git 履歴全体をスキャンして、API キー、パスワード、トークン、その他の既知のシークレットの種類など、ハードコーディングされた資格情報を探します。 これにより、セキュリティ リスクになる前に、シークレットのスプロール(リポジトリ間での資格情報の制御不能な急増)を特定するのに役立ちます。 
          GitHub また、新しいシークレットの種類が追加されると、リポジトリも定期的に再スキャンされます。

          GitHub また、次の項目も自動的にスキャンされます。
  • 問題の説明とコメント
  • オープンとクローズの過去の問題のタイトル、説明、およびコメント
  • pull request のタイトル、説明とコメント
  • のタイトル、説明、およびコメント GitHub Discussions
  • ウィキ
  • 秘密の要旨

          Secret scanning アラートと修復

          secret scanningが資格情報の漏洩を検出すると、GitHubは公開された資格情報に関する詳細を含むアラートをリポジトリの**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** タブに生成します。

アラートを受信したら、影響を受ける資格情報をすぐにローテーションして、承認されていないアクセスを防ぎます。 Git 履歴からシークレットを削除することもできますが、これは時間がかかり、資格情報を既に取り消している場合は多くの場合不要です。

パートナー統合

          GitHub は、検出されたシークレットを検証するために、さまざまなサービス プロバイダーと連携します。 パートナー シークレットが検出されると、資格情報の取り消しなどのアクションを実行できるように、プロバイダーに通知します。 パートナー シークレットはプロバイダーに直接報告され、リポジトリのアラートには表示されません。 詳しくは、「[AUTOTITLE](/code-security/secret-scanning/secret-scanning-partnership-program/secret-scanning-partner-program)」をご覧ください。

カスタマイズ

パートナーシークレットとプロバイダー シークレットの既定の検出以外にも、ニーズに合わせて secret scanning を拡張およびカスタマイズできます。

  • プロバイダー以外のパターン。 秘密キー、接続文字列、汎用 API キーなど、特定のサービス プロバイダーに関連付けられていないシークレットに検出を拡張します。
  • カスタム パターン。 既定のパターンでカバーされていない組織固有のシークレットを検出する独自の正規表現を定義します。
  • 有効性チェック。 検出されたシークレットがまだアクティブであるかどうかを確認して、修復に優先順位を付けます。

          Copilot シークレットスキャン.** AI を使用して、パスワードなどの非構造化シークレットを検出したり、カスタム パターンの正規表現を生成したりします。

有効性チェックについて

有効性チェックは、検出されたシークレットがまだアクティブであるかどうかを確認することで、最初に修復するシークレットに優先順位を付けるのに役立ちます。 有効性チェックを有効にすると、 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 が有効になっている場合です。

次のステップ

詳細については、次を参照してください。