Skip to main content

シークレット スキャンからのアラートの管理

リポジトリにチェックインされたシークレットのアラートを表示、評価、解決できます。

この機能を使用できるユーザーについて

People with admin access to a repository can view and dismiss secret scanning alerts for the repository.

Secret scanning alerts for partners runs automatically on public repositories and public npm packages to notify service providers about leaked secrets on GitHub.

Secret scanning alerts for users are available for user-owned public repositories for free. Organizations using GitHub Enterprise Cloud with a license for GitHub Advanced Security can also enable secret scanning alerts for users on their private and internal repositories. Additionally, secret scanning alerts for users are available and in beta on user-owned repositories for GitHub Enterprise Cloud with Enterprise Managed Users. For more information, see "About secret scanning" and "About GitHub Advanced Security."

For information about how you can try GitHub Advanced Security for free, see "Setting up a trial of GitHub Advanced Security."

secret scanningアラートページについて

リポジトリのsecret scanningを有効にするか、secret scanningが有効になっているリポジトリにコミットをプッシュすると、サービス プロバイダーで定義されているパターン、および Enterprise、organization、またはリポジトリで定義されているカスタム パターンと一致するシークレットについて、GitHub によりその内容がスキャンされます。

secret scanningでシークレットが検出されると、GitHub によってアラートが送信されます。GitHub のリポジトリの [セキュリティ] タブにアラートが表示されます。

アラートをより効果的にトリアージするため、GitHubはアラートを 2 つのリストに分けます。

  • 信頼度の高いアラート。
  • その他のアラート

secret scanningアラート ビューのスクリーンショット。 [高い信頼度]と[その他]のアラートの間に切り替えるボタンは、オレンジ色のアウトラインで強調表示されています。

信頼度の高いアラートのリスト

[高い信頼度]のアラート リストは、サポートされたパターンと指定されたカスタムパターンに関連した表示アラートを表示します。 このリストは、常にアラート ページのデフォルト ビューです。

その他のアラート リスト

[その他]のアラート リストは、プロバイダー以外のパターン(秘密キーなど)または AI を使用して検出された汎用シークレット(パスワードなど)に関連したアラートを表示します。 この種類のアラートは、誤検知率が高くなります。

さらに、このカテゴリに分類されるアラートは次のとおりです。

  • リポジトリあたりのアラート数は 5,000 件に制限されています (これには、オープン アラートとクローズしたアラートが含まれます)。
  • セキュリティ概要の概要ビューには表示されず、"Secret scanning" ビューにのみ表示されます。
  • プロバイダー以外のパターンにGitHubで最初の 5 つの検出場所のみが表示され、AI で検出された汎用シークレットに最初の検出場所のみが表示されている。

GitHubがプロバイダー以外のパターンと汎用シークレットをスキャンするには、最初にリポジトリまたは組織の機能を有効にする必要があります。 詳細については、「リポジトリのシークレット スキャンの構成」と「AI を利用した汎用シークレット検出の有効化」を参照してください。

アラートの表示

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [セキュリティ] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイドバーの [Vulnerability alerts] (脆弱性アラート) で、 [Secret scanning] をクリックします。

  4. 必要に応じて、[その他] に切り替えてプロバイダー以外のパターンまたは AI を使用して検出された汎用シークレットのアラートを表示します。

  5. [Secret scanning]で、表示するアラートをクリックします。

    メモ: 漏洩したシークレットを含むリポジトリに対して管理者のアクセス許可を持つユーザーのみが、アラートのセキュリティ アラート詳細およびトークン メタデータを閲覧できます。 企業所有者は、この目的のためにリポジトリへの一時的なアクセスを要求できます。

アラートのフィルター処理

アラート リストにさまざまなフィルターを適用し、関心のあるアラートを見つけることができます。 アラート リストの上にあるドロップダウン メニューを使用したり、テーブルにリストされた修飾子を検索バーに入力したりすることができます。

修飾子説明
is:open開いたアラートを表示します。
is:closed終了したアラートを表示します。
bypassed: trueプッシュ保護がバイパスされたシークレットのアラートを表示します。 詳しくは、「リポジトリと Organization のプッシュ保護」を参照してください。
validity:activeまだアクティブなシークレットのアラートを表示します。 有効性の状態の詳細については、「シークレットの有効性を確認する」を参照してください。
validity:inactiveアクティブではなくなったシークレットのアラートを表示します。
validity:unknownシークレットの有効性の状態が不明な場合、シークレットのアラートを表示します。
secret-type:SECRET-NAMEたとえば、secret-type:github_personal_access_token のような特定のシークレット タイプのアラートを表示します。 サポートされているシークレットの種類のリストについては、「secret scanning パターン」を参照してください。
provider:PROVIDER-NAMEたとえば、provider:github のような特定のプロバイダーのアラートを表示します。 サポートされているパートナーのリストについては、「secret scanning パターン」を参照してください。
confidence:highサポートされているシークレットとカスタム パターンに関連する信頼度の高いシークレットのアラートを表示します。 サポートされている信頼度の高いパターンのリストについては、「secret scanning パターン」を参照してください。
confidence:otherプロバイダー以外のパターン(秘密キーなど)のアラートと、AI で検出された汎用シークレット(パスワードなど)のアラートを表示します。 サポートされているプロバイダー以外のパターンのリストについては、「secret scanning パターン」を参照してください。 AI で検出された汎用シークレットの詳細については、「シークレットスキャンを使用した、ジェネリックシークレットの検出について」を参照してください。

アラートの評価

アラートの優先順位付けと管理を強化するため、アラートを評価するうえで便利な追加機能がいくつかあります。 次のことを実行できます。

  • シークレットの有効性をチェックし、シークレットがまだアクティブかどうかを確認します。 詳細については、「シークレットの有効性のチェック」を参照してください。
  • "オンデマンド"の有効性チェックを実行し、最新の有効性の状態を取得します。 詳細については、「オンデマンドの有効性チェックの実行」を参照してください。
  • トークンのメタデータを確認します。 GitHubトークンにのみ適用されます。 たとえば、トークンが最後に使用された日時を確認します。 詳細については、「GitHubトークン メタデータの確認」を参照してください。

シークレットの有効性の確認

注: パートナー パターンの有効性チェックは現在ベータ版であり、変更される可能性があります。

有効性チェックは、どのシークレットが“active“または“inactive“なのかについて教え、アラートの優先順位付けに役立ちます。 “active“のシークレットは引き続き悪用される可能性があるため、これらのアラートを確認して優先事項として修復する必要があります。

既定では、GitHubはGitHubトークンの有効性をチェックし、アラート ビューにトークンの有効性の状態を表示します。

さらに、パートナー パターンの有効性チェックを有効にすることもできます。 有効にすると、GitHubはGitHubの正式なシークレット スキャン パートナーシップ プログラムの一環として、シークレットをプロバイダーに直接送信することにより、検出された資格証明の有効性を定期的にチェックします。 GitHubは通常、資格証明の有効性をチェックするために GET 要求を行い、最も侵入性の少ないエンドポイントを選択して個人情報を返さないエンドポイントを選択します。

GitHubは、アラート ビューにシークレットの有効性の状態を表示します。

有効期限までの日数結果
アクティブなシークレットGitHub は、このシークレットがアクティブであることを確認しました
アクティブなシークレットGitHub はこのシークレットのプロバイダーでチェックし、シークレットがアクティブであることを確認しました
アクティブである可能性があるシークレットGitHub は、このトークンの種類の有効性チェックをまだサポートしていません
アクティブである可能性があるシークレットGitHub はこのシークレットを検証できませんでした
非アクティブとみられるシークレット未承認のアクセスが既に行われていないことを確認する必要があります

パートナー パターンの有効性チェックは、GitHub.com のすべての種類のリポジトリで使用できます。 この機能を使用するには、GitHub Advanced Security のライセンスが必要です。

パートナー パターンの有効性チェックを有効にする方法の詳細については、「リポジトリのシークレット スキャンの構成」を参照してください。現在サポートされているパートナー パターンの詳細については、「secret scanning パターン」を参照してください。

REST API を使用して、各トークンの最新の検証状態の一覧を取得できます。 詳しくは、REST API ドキュメントの「シークレット スキャン用の REST API エンドポイント」をご覧ください。 Webhook を使用して、secret scanning アラートに関連するアクティビティの通知を受け取ることもできます。 詳細については、「Webhook のイベントとペイロード」の secret_scanning_alert イベントをご覧ください。

オンデマンドの有効性チェックの実行

リポジトリでパートナー パターンに有効性チェックを有効にすると、アラート ビューで[シークレットの検証] をクリックすることにより、サポートされているシークレットに“オンデマンド“の有効性チェックを実行できます。 GitHub は、関連するパートナーにパターンを送信し、アラート ビューにシークレットの検証状態を表示します。

secret scanningアラートを示した UI のスクリーンショット。 [シークレットの検証]とラベル付けされたボタンは、オレンジ色の枠線で強調されています。

GitHub トークン メタデータの確認

注: GitHub 現在、トークンのメタデータはパブリック ベータ版であり、変更される可能性があります。

アクティブな GitHub トークン アラートのビューでは、そのトークンに関する特定のメタデータを確認できます。 このメタデータは、トークンを識別したり実行すべき修復手順を判断するのに役立ちます。

personal access token などのトークンやその他の資格情報は、個人情報と見なされます。 GitHub トークンの使用について詳しくは、「GitHub のプライバシーに関する声明」と「GitHub 利用規約」をご覧ください。

GitHub トークンの UI のスクリーンショット。トークン メタデータが表示されています。

GitHub トークンのメタデータは、シークレット スキャンが有効になっているリポジトリ内にあるアクティブなトークンに使うことができます。 トークンが取り消された場合や状態を検証できない場合は、メタデータを使うことができません。 GitHub によってパブリック リポジトリ内にある GitHub トークンが自動的に取り消されるため、パブリック リポジトリ内にある GitHub トークンのメタデータを使うことができる可能性はあまりありません。 次のメタデータは、アクティブな GitHub トークンに使うことができます。

メタデータ説明
シークレット名作成者が GitHub に付けた名前
シークレットの所有者トークンの所有者の GitHub ハンドル
[作成日]トークンが作成された日付
有効期限切れトークンの有効期限が切れた日付
最終使用日トークンが最後に使用された日付
Accessトークンに Organization のアクセス権があるかどうか

漏洩したシークレットを含むリポジトリに対して管理者のアクセス許可を持つユーザーのみが、アラートのセキュリティ アラート詳細およびトークン メタデータを閲覧できます。 企業所有者は、この目的のためにリポジトリへの一時的なアクセスを要求できます。アクセスが許可されている場合、GitHubは漏洩したシークレットを含むリポジトリの所有者に通知し、リポジトリ所有者および企業の監査ログでアクションを報告して、アクセスを 2 時間有効にします。詳細については、「エンタープライズ内のユーザー所有のリポジトリにアクセスする」を参照してください。

アラートの修正

シークレットがリポジトリにコミットされたら、シークレットが侵害されたと考える必要があります。 GitHub は、侵害されたシークレットに対して次のアクションを行うことをおすすめします。

  • 侵害された GitHub personal access token については、侵害されたトークンを削除し、新しいトークンを作成し、古いトークンを使っていたサービスを更新してください。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。
  • それ以外のすべてのシークレットについては、最初に GitHub Enterprise Cloud にコミットされたシークレットが有効であることを確認してください。 有効な場合は、新しいシークレットを作成し、古いシークレットを使用するサービスをすべて更新して、古いシークレットを削除します。

注: シークレットが GitHub.com のパブリック リポジトリで検出され、シークレットもパートナー パターンと一致する場合は、アラートが生成され、可能性のあるシークレットがサービス プロバイダーに報告されます。 パートナー パターンの詳細については、「secret scanning パターン」を参照してください。

アラートの終了

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [セキュリティ] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイドバーの [Vulnerability alerts] (脆弱性アラート) で、 [Secret scanning] をクリックします。

  4. [Secret scanning]で、表示するアラートをクリックします。

  5. アラートを無視するには、[次の状態として閉じる] ドロップダウン メニューを選び、アラートを解決する理由をクリックします。

    secret scanning アラートのスクリーンショット。 [閉じる] というタイトルのドロップダウン メニューが展開され、濃いオレンジ色の枠線で強調表示されています。

  6. 必要に応じて、[コメント] フィールドに無視のコメントを追加します。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。 アラート タイムラインで、すべての無視されたアラートと無視コメントの履歴を確認できます。 また、Secret scanning API を使って、コメントを取得または設定することもできます。 コメントは resolution_comment フィールドに含まれています。 詳しくは、REST API ドキュメントの「シークレット スキャン用の REST API エンドポイント」をご覧ください。

  7. [アラートをクローズする] をクリックします。

シークレット スキャンニング アラート

の通知を構成する

増分スキャンと履歴スキャンでは通知が異なります。

増分スキャン

新しいシークレットが検出されると GitHub Enterprise Cloud によって、通知設定に従ってリポジトリのセキュリティ アラートにアクセスできるすべてのユーザーに通知されます。 これらのユーザーは次のとおりです。

  • リポジトリ管理者
  • セキュリティマネージャー
  • 読み書きアクセス権が与えられるカスタム ロールを持つユーザー
  • Organization 所有者とエンタープライズ所有者。シークレットが漏洩したリポジトリの管理者である場合

注: コミット作成者がシークレットを間違ってコミットした場合、通知設定に関係なくその者に通知されます。

次の場合に、電子メール通知を受け取ります。

  • リポジトリをウォッチしている。
  • リポジトリ で [すべてのアクティビティ]、またはカスタムの [セキュリティ アラート] の通知を有効にしている。
  • 通知設定にある [サブスクリプション] の [ウォッチ] で、電子メールによる通知を受け取ることを選んだ。
  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリのウォッチを開始するには、 [ ウォッチ] を選んでください。

    リポジトリのメイン ページのスクリーンショット。 [ウォッチ] というタイトルが付いたドロップダウン メニューがオレンジ色の枠線で強調表示されています。

  3. ドロップダウン メニューで、 [すべてのアクティビティ] を選びます。 または、セキュリティ アラートのみをサブスクライバーにする場合は、 [カスタム] を選び、 [セキュリティ アラート] を選びます。

  4. 個人用アカウントの通知設定に移動します。 https://github.com/settings/notifications で利用できます。

  5. 通知設定のページの、[サブスクリプション] にある [視聴] で、 [通知する] ドロップダウンを選びます。

  6. 通知方法として [Email] を選び、 [保存] を選びます。

    ユーザー アカウントの通知設定のスクリーンショット。 "サブスクリプション" というタイトルの要素ヘッダーと、"ウォッチ中" というタイトルのサブヘッダーが表示されています。 [Email] というチェックボックスがオレンジ色の枠線で強調されています。

通知設定について詳しくは、「リポジトリのセキュリティと分析設定を管理する」と「個々のリポジトリのウォッチ設定の構成」を参照してください。

履歴スキャン

履歴スキャンの場合、GitHub Enterprise Cloud では次のユーザーに通知します。

  • 組織所有者、エンタープライズ所有者、セキュリティ マネージャー - 履歴スキャンの完了時に必ず。シークレットが見つからないとしても。
  • リポジトリ管理者、セキュリティ マネージャー、読み書きアクセス権が与えられるカスタム ロールを持つユーザー - 履歴スキャンでシークレットが見つかったときは必ず。通知設定に基づいて。

コミット作成者には通知 "しません"。

通知設定について詳しくは、「リポジトリのセキュリティと分析設定を管理する」と「個々のリポジトリのウォッチ設定の構成」を参照してください。

シークレット スキャン アラートへの応答の監査

GitHub ツールを使用して、secret scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。