Skip to main content

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

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

ご自分のエンタープライズで GitHub Advanced Security のライセンスがある場合、GitHub Enterprise Server の Organization 所有のリポジトリで Secret scanning が利用できます。 詳細については、「GitHub Enterprise Server の secret scanning について」と「GitHub Advanced Security について」を参照してください。

注: この機能を使うには、サイト管理者が your GitHub Enterprise Server instance の secret scanning を有効にする必要があります。 詳しくは、「アプライアンスでの secret scanning の構成」をご覧ください。

secret scanningについて

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

Secret scanningでは、シークレットの GitHub リポジトリ (リポジトリがアーカイブされている場合も含む) に存在するすべてのブランチ上の Git 履歴全体がスキャンされます。

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

また、リポジトリまたは組織のプッシュ保護としてsecret scanningを有効にすることもできます。 この機能を有効にすると、secret scanningでは、共同作成者が検出済みのシークレットを含むコードをプッシュできなくなります。 続行するには、共同作成者がプッシュからシークレットを削除するか、必要に応じて保護をバイパスします。 また、管理者は、push がブロックされると共同作成者に表示されるカスタム リンクを指定することもできます。このリンクには、共同作成者を支援するための Organization 固有のリソースが含まれています。 詳しくは、「secret scanning を使って push を保護する」を参照してください。

GitHub Enterprise Server の secret scanningについて

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

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

リポジトリ、Organization、または Enterprise のカスタム secret scanning パターンを定義することもできます。 詳細については、「secret scanningのカスタム パターンの定義」を参照してください。

secret scanning alerts へのアクセス

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

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

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

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

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

セキュリティの概要を使用して、secret scanning が有効になっているリポジトリと検出されたアラートの組織レベルのビューを表示できます。 詳細については、「Viewing the security overview」(セキュリティの概要の表示) を参照してください。

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

参考資料