Skip to main content

シークレット スキャンについて

公開された資格情報を悪用する前に自動的に検出することで、シークレットの不正使用を防止します。

API キーやパスワードなどの資格情報がハードコーディングされたシークレットとしてリポジトリにコミットされると、承認されていないアクセスのターゲットになります。 Secret scanning は資格情報リークを自動的に検出するため、悪用される前にセキュリティで保護できます。

シークレット スキャンによってコードが保護されるしくみ

Secret scanning は、リポジトリのすべてのブランチで Git 履歴全体をスキャンして、API キー、パスワード、トークン、その他の既知のシークレットの種類など、ハードコーディングされた資格情報を探します。 これにより、セキュリティ リスクになる前に、シークレットのスプロール(リポジトリ間での資格情報の制御不能な急増)を特定するのに役立ちます。 GitHub また、新しいシークレットの種類が追加されると、リポジトリも定期的に再スキャンされます。

GitHub また、次の項目も自動的にスキャンされます。

  • 問題の説明とコメント
  • オープンとクローズの過去の問題のタイトル、説明、およびコメント
  • pull request のタイトル、説明とコメント
  • のタイトル、説明、およびコメント GitHub Discussions
  • 秘密の要旨

Secret scanning アラートと修復

secret scanningが資格情報の漏洩を検出すると、GitHubは公開された資格情報に関する詳細を含むアラートをリポジトリの** Security** タブに生成します。

アラートを受信したら、影響を受ける資格情報をすぐにローテーションして、承認されていないアクセスを防ぎます。 Git 履歴からシークレットを削除することもできますが、これは時間がかかり、資格情報を既に取り消している場合は多くの場合不要です。

カスタマイズ

パートナーシークレットとプロバイダー シークレットの既定の検出以外にも、ニーズに合わせて secret scanning を拡張およびカスタマイズできます。

  • プロバイダー以外のパターン。 秘密キー、接続文字列、汎用 API キーなど、特定のサービス プロバイダーに関連付けられていないシークレットに検出を拡張します。
  • カスタム パターン。 既定のパターンでカバーされていない組織固有のシークレットを検出する独自の正規表現を定義します。
  • 有効性チェック。 検出されたシークレットがまだアクティブであるかどうかを確認して、修復に優先順位を付けます。

この機能にアクセスするにはどうすればよいですか?

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

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

次のステップ

詳細については、次を参照してください。