Skip to main content

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

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

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

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

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

secret scanningについて

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

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

GitHub ツールを使用して、secret scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。

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

注: secret scanning またはプッシュ保護が有効になっているリポジトリをフォークした場合、フォークではこれらの機能は既定で有効になりません。 スタンドアロン リポジトリで有効にするのと同じ方法で、secret scanning を有効にするか、フォークで保護をプッシュできます。

GitHub Enterprise Server の シークレット スキャンについて

シークレット スキャンニング は GitHub Advanced Security の一部として、組織が所有するすべてのリポジトリで利用できます。 この機能は、ユーザーが所有するリポジトリでは使用できません。リポジトリに対して secret scanning を有効にする場合、GitHub によって、多くのサービス プロバイダーが使うシークレットに一致するパターンがコードでスキャンされます。

サポートされているシークレットが漏洩した場合、GitHub Enterprise Server は、secret scanning アラートを生成します。 GitHub では、secret scanning が有効になっている GitHub Advanced Security リポジトリ内の既存のコンテンツの完全な Git 履歴スキャンも定期的に実行され、secret scanning アラート通知設定に従ってアラート通知が送信されます。 詳細については、「Secret scanning パターン」を参照してください。

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

リポジトリ、組織、またはエンタープライズ用のカスタム secret scanning パターンを定義することもできます。 詳しくは、GitHub Enterprise Cloud ドキュメントの「シークレット スキャンのカスタム パターンの定義

GitHub は、転送中と保存時の両方で対称暗号化を使用して検出されたシークレットを格納します。 検出されたシークレットの格納に使用される暗号化キーをローテーションするには、GitHub Enterprise サポート にアクセスしてください。

シークレット スキャンニング アラート

へのアクセス

リポジトリの secret scanning を有効にする、または secret scanning が有効になっているリポジトリにコミットをプッシュすると、GitHub によってその内容がスキャンされ、サービス プロバイダーで定義されているパターン、およびエンタープライズ、組織、またはリポジトリで定義されているカスタム パターンと一致するシークレットが確認されます。 GitHub では、新たなパートナー パターンやカスタム パターンが追加または更新される際に secret scanning が有効になっているリポジトリ内のすべての履歴コード コンテンツのスキャンも実行されます。

secret scanning がコミット内のシークレットを検出した場合、GitHub によってアラートが生成されます。

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

シークレット スキャンニング アラート の表示と解決について詳しくは、「シークレット スキャンからのアラートの管理」を参照してください。

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

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

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

参考資料