Skip to main content

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

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

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

People with admin access to a public 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 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. For more information, see "About secret scanning" and "About GitHub Advanced Security."

For information about how you can try GitHub Enterprise with GitHub Advanced Security for free, see "Setting up a trial of GitHub Enterprise Cloud" and "Setting up a trial of GitHub Advanced Security" in the GitHub Enterprise Cloud documentation.

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

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

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

アラートの表示

  1. GitHub.com で、リポジトリのメイン ページへ移動します。
  2. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
    タブを示すリポジトリ ヘッダーのスクリーンショット。 [セキュリティ] タブが濃いオレンジ色の枠線で強調表示されています。
  3. 左側のサイドバーの [Vulnerability alerts] (脆弱性アラート) で、 [Secret scanning] をクリックします。
  4. [Secret scanning]で、表示するアラートをクリックします。

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

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

修飾子説明
is:open開いたアラートを表示します。
is:closed終了したアラートを表示します。
bypassed: trueプッシュ保護がバイパスされたシークレットのアラートを表示します。 詳しくは、「リポジトリと Organization のプッシュ保護」を参照してください。
validity:activeまだアクティブなシークレットのアラートを表示します。 GitHubトークンにのみ適用されます。有効性の状態の詳細については、「シークレットの有効性を確認する」を参照してください。
validity:inactiveアクティブではなくなったシークレットのアラートを表示します。
validity:unknownシークレットの有効性の状態が不明な場合、シークレットのアラートを表示します。
secret-type:SECRET-NAMEたとえば、secret-type:github_personal_access_token のような特定のシークレット タイプのアラートを表示します。 サポートされているシークレットの種類のリストについては、「secret scanning パターン」を参照してください。
provider:PROVIDER-NAMEたとえば、provider:github のような特定のプロバイダーのアラートを表示します。 サポートされているパートナーのリストについては、「secret scanning パターン」を参照してください。

アラートの評価

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

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

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

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

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

GitHub Advanced Securityのライセンスを持つGitHub Enterprise Cloudを使用している組織は、パートナー パターンに有効性チェックを有効にすることもできます。 詳細については、GitHub Enterprise Cloudのドキュメントの「シークレットの有効性のチェック」を参照してください。

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

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

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

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

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

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

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

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

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

アラートの修正

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

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

注: シークレットが 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 によって、通知設定に従ってリポジトリのセキュリティ アラートにアクセスできるすべてのユーザーに通知されます。 これらのユーザーは次のとおりです。

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

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

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

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

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

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

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

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

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

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

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

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

履歴スキャン

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

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

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

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

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

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