Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

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

GitHub はリポジトリをスキャンして既知のシークレットのタイプを探し、誤ってコミットされたシークレットの不正使用を防止します。

Secret scanning alerts for partners は、GitHub.com 上のすべての製品のパブリック リポジトリで自動的に実行されます。 Secret scanning alerts for users は、パブリック リポジトリで利用できるほか、GitHub Enterprise Cloud を使用し、GitHub Advanced Security のライセンスを持つ Organization が所有するリポジトリで利用できます。 詳細については、「secret scanning alerts for users について」と「GitHub Advanced Security について」を参照してください。

secret scanningについて

プロジェクトを外部サービスと通信させる場合、認証にトークンまたは秘密鍵を使用できます。 トークンや秘密鍵は、サービスプロバイダが発行できるシークレットです。 リポジトリにシークレットをチェックインする場合、リポジトリへの読み取りアクセスを持つすべてのユーザがシークレットを使用して、自分の権限で外部サービスにアクセスできます。 シークレットは、プロジェクトのリポジトリの外の、安全な専用の場所に保存することをお勧めします。

Secret scanningでは、シークレットの GitHub リポジトリに存在するすべてのブランチ上の Git 履歴全体がスキャンされます。

Secret scanningは、GitHub.com で次の 2 つの形式で使用できます。

  1. Secret scanning alerts for partners. すべてのパブリック リポジトリで自動的に実行されます。 シークレット スキャン パートナーによって指定されたパターンと一致するすべての文字列が、関連するパートナーに直接報告されます。 詳細については、以下の「secret scanning alerts for partners について」セクションを参照してください。

  2. Secret scanning alerts for users. 次のユーザーは、追加のスキャンを有効にして構成できます。

    • GitHub.com のリポジトリの所有者で、所有するすべての "パブリック" リポジトリ。__
    • これらのリポジトリのいずれかで、"パブリック" リポジトリを所有する組織。__
    • "プライベート" と "内部" リポジトリを含む、組織が所有するリポジトリで GitHub Enterprise Cloud を GitHub Advanced Security のライセンスで使っている組織。

    注: secret scanning alerts for users 機能は、GitHub Free、GitHub Pro、または GitHub Team プランのユーザー向けのベータ版として利用でき、変更される可能性があります。

    シークレット スキャン パートナーが指定したか、その他のサービス プロバイダーが指定したか、自分または自分の Organization が定義したパターンに一致する文字列は、リポジトリの [セキュリティ] タブでアラートとして報告されます。 パブリック リポジトリ内の文字列がパートナー パターンと一致する場合は、パートナーにも報告されます。 詳細については、以下の「secret scanning alerts for users について」セクションを参照してください。

サービス プロバイダーは GitHub と提携して、スキャンのためのシークレット フォーマットを指定することができます。 パートナー プログラムについては、「Secret scanning パートナー プログラム」をご覧ください。

secret scanning alerts for partners について

リポジトリをパブリックにするか、パブリック リポジトリに変更をプッシュすると、GitHub では常にコードがスキャンされて、パートナー パターンと一致するシークレットがないか確認されます。 secret scanning によって潜在的シークレットが検出された場合、シークレットを発行したサービス プロバイダーに通知します。 サービス プロバイダーは文字列を検証してから、シークレットを取り消すか、新しいシークレットを発行するか、または直接連絡するかを決定します。 その対応は、ユーザーまたはプロバイダーに関連するリスクによって決まります。 詳細については、「パートナー アラートでサポートされるシークレット」を参照してください。

パブリック リポジトリ上のパートナー パターンの secret scanning の構成を変更することはできません。

secret scanning alerts for usersについて

Secret scanning alerts for users は、すべてのパブリック リポジトリで利用できます。リポジトリに対して secret scanning を有効にすると、GitHub は、コードをスキャンして、多くのサービス プロバイダーが使用するシークレットに一致するパターンを探します。 サポートされているシークレットが漏洩した場合、GitHub は、secret scanning アラートを生成します。 詳細については、「ユーザー アラートに対してサポートされているシークレット」を参照してください。

リポジトリ管理者は、任意のパブリック リポジトリに対して secret scanning alerts for users を有効にすることができます。 組織所有者は、すべてのリポジトリまたは組織内のすべての新しいリポジトリに対して secret scanning alerts for users を有効にすることもできます。 詳細については、「リポジトリのセキュリティと分析設定を管理する」および「Managing security and analysis settings for your organization」(組織のセキュリティと分析設定を管理する) を参照してください。

GitHub は、転送中と保存時の両方で対称暗号化を使用して検出されたシークレットを格納します。

secret scanning alerts へのアクセス

リポジトリの secret scanningを有効にする、または secret scanningが有効になっているリポジトリにコミットをプッシュすると、GitHub によってそれらのコミットの内容がスキャンされて、サービス プロバイダーで定義されているパターンと一致するシークレットが確認されます。

secret scanningでシークレットが検出されると、GitHub によってアラートが送信されます。

  • GitHub は、リポジトリ管理者と Organizationのオーナーにメールアラートを送信します。 あなたがリポジトリを監視しており、セキュリティ アラートまたはリポジトリ上のすべてのアクティビティの通知を有効にしている場合、アラートが通知されます。
  • シークレットをコミットしたコントリビューターがリポジトリを無視していない場合も、GitHub によってコントリビューターにメール アラートが送信されます。 メールには、関連する secret scanning アラートへのリンクが含まれています。 コミット作者は、リポジトリでこのアラートを表示して、アラートを解決できます。
  • GitHub のリポジトリの [セキュリティ] タブにアラートが表示されます。

secret scanning alerts の表示と解決について詳しくは、「secret scanning からのアラートの管理」を参照してください。

リポジトリ管理者と組織所有者は、ユーザーおよびチームに secret scanning alerts へのアクセスを許可できます。 詳細については、「リポジトリのセキュリティと分析の設定を管理する」を参照してください。

また、REST API を使って、リポジトリ全体でsecret scanningからの結果を監視できます。 API エンドポイントの詳細については、「Secret scanning」(シークレット スキャン) を参照してください。

参考資料