Skip to main content
Skip to content

シークレット スキャン検出スコープ

シークレット スキャンでは、パターン マッチングと検証を使用してシークレットを検出します。 検出は、パターン ペア、トークンの種類、プッシュ保護の設定によって異なります。

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

Secret scanning は、次のリポジトリの種類で使用できます。

  • パブリック リポジトリ: Secret scanning は無料で自動的に実行されます。
  • 組織所有のプライベートリポジトリと内部リポジトリ: GitHub Team または GitHub Enterprise Cloud で有効になっている GitHub Secret Protection で使用できます。
  • ユーザー所有のリポジトリ: GitHub Enterprise Cloud および Enterprise Managed Users で利用可能です。 GitHub Enterprise Server で使用できるのは、エンタープライズで GitHub Secret Protection が有効になっている場合です。

パブリック監視スコープ

企業でパブリック監視が有効になっている場合、 secret scanning は企業が所有するリポジトリを超えて検出を拡張します。 パブリック監視は、issue コメントや pull request コメント、Gist などのコード以外のコンテンツを含む、GitHub 全体にわたるパブリック リポジトリをスキャンします。 パブリック監視では、エンタープライズ メンバーまたは電子メール アドレスが企業の検証済みドメインと一致するユーザーに関連付けられているシークレットが検出されます。 企業が データ所在地付き GitHub Enterprise Cloud を利用している場合は、検証済みドメイン方式のみが適用されます。

パブリック監視アラートは、エンタープライズ レベルのセキュリティの概要の専用 パブリック監視 ページに表示されます。 「シークレット スキャンのパブリック監視」を参照してください。

パターン ペアの検出

Secret scanning は、ID とシークレットが同じファイル内で検出され、両方がリポジトリにプッシュされている場合にのみ、AWS アクセス キーやシークレットなどのパターン ペアを検出します。 ペア マッチングは、ペアの両方の要素 (ID とシークレット) をプロバイダーのリソースにアクセスするために一緒に使用する必要があるため、誤検知を減らすのに役立ちます。

異なるファイルにプッシュされたか、同じリポジトリにプッシュされていないペアでは、アラートは生成されません。 サポートされるパターンについて詳しくは、「サポートされているシークレット スキャン パターン」の表をご覧ください。

レガシ GitHub トークンについて

GitHub トークンの場合、シークレットの有効性を確認して、シークレットがアクティブか非アクティブかを判断します。 つまり、レガシ トークンの場合、secret scanningはGitHub Enterprise Serverのpersonal access tokenGitHub Enterprise Cloudを検出しません。 同様に、 GitHub Enterprise Cloudpersonal access token は GitHub Enterprise Serverには見つかりません。

プッシュ保護の制限事項

プッシュ保護で検出されたはずのシークレットが検出されなかった場合は、まず、サポートされているシークレットのリストでプッシュ保護でそのシークレットの種類がサポートされていることを確認する必要があります。 詳細については「サポートされているシークレット スキャン パターン」を参照してください。

シークレットがサポート対象リストにある場合、プッシュ保護で検出されない理由はさまざまです。

  • プッシュ保護では、最も識別可能なユーザーアラート パターンのサブセットに対して漏洩したシークレットのみがブロックされます。 このようなシークレットがブロックされている場合、共同作成者はセキュリティ防御を信頼できます。これは、誤検知の数が最も少ないパターンであるためです。
  • シークレットのバージョンが古い可能性があります。 以前のバージョンの特定のトークンは、プッシュ保護によってサポートされない場合があります。これらのトークンでは、最新バージョンよりも多くの誤検知が生成される可能性があるためです。 プッシュ保護は、レガシ トークンにも適用されない場合があります。 Azure Storage キーなどのトークンの場合、GitHub では、レガシ パターンに一致するトークンではなく、''最近作成された'' トークンのみがサポートされます。__
  • プッシュが大きすぎる可能性があります。たとえば、数千もの大きなファイルをプッシュしようとしている場合などです。 プッシュ保護スキャンがタイムアウトになる可能性はありますが、プッシュが大きすぎる場合はユーザーがブロックされない可能性があります。 GitHub は、必要に応じて、プッシュ後もアラートをスキャンして作成します。
  • プッシュによって 5 つを超える新しいシークレットが検出された場合、最初の 5 つのシークレットのみが表示されます (常に最大 5 つのシークレットが一度に表示されます)。
  • プッシュに 1,000 を超える既存のシークレット (つまり、アラートが既に作成されているシークレット) が含まれている場合は、プッシュ保護でプッシュがブロックされません。
  • パブリック リポジトリ内のプッシュが 50 MB を超える場合、プッシュ保護はスキップされ、スキャンされません。
  • コミットまたはファイル パスの詳細がないバイパス要求が表示される場合は、プッシュ保護が時間切れになったことを意味します。 プッシュが大きすぎるか、履歴が複雑すぎて、シークレットを持ち込んだコミットを見つけられませんでした。