Skip to main content

シークレット スキャンのトラブルシューティング

secret scanning を使用してリポジトリ内のシークレット、またはリポジトリにコミットしようとしているシークレットを検出する場合は、予期しない問題のトラブルシューティングが必要になる場合があります。

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

Secret scanning は、次のリポジトリに使うことができます:

  • GitHub Advanced Security が有効な状態の組織所有リポジトリ
  • GitHub Advanced Security が有効になっている企業用のユーザー所有リポジトリ

注: この機能を使用するには、サイト管理者が インスタンスの secret scanning を有効にする必要があります。 詳しくは、「アプライアンスのシークレットスキャンを設定する」を参照してください。

エンタープライズオーナーがエンタープライズ レベルでポリシーを設定している場合、secret scanning を有効または無効にできない場合があります。 詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」を参照してください。

パターン ペアの検出

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

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

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

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

プッシュ保護の制限事項

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

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

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