Skip to main content

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

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

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

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

  • パブリック リポジトリ: Secret scanning は無料で自動的に実行されます。
  • 組織所有のプライベートリポジトリと内部リポジトリ: GitHub Advanced Security または GitHub Team で有効になっている GitHub Enterprise Cloud で使用できます。
  • ユーザー所有のリポジトリ: GitHub Enterprise Cloud および Enterprise Managed Users で利用可能です。 GitHub Enterprise Server で使用できるのは、エンタープライズで 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 で検出されません。

プッシュ保護の制限事項

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

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

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