Skip to main content

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

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

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

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

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

メモ

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

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

パターン ペアの検出

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 を超える既存のシークレット (つまり、アラートが既に作成されているシークレット) が含まれている場合は、プッシュ保護でプッシュがブロックされません。
  • コミットまたはファイル パスの詳細がないバイパス要求が表示される場合は、プッシュ保護が時間切れになったことを意味します。 プッシュが大きすぎるか、履歴が複雑すぎて、シークレットを持ち込んだコミットを見つけられませんでした。