このガイドは、既存または試用版の GitHub Enterprise アカウントに対して、GitHub Advanced Security の試用を計画し、開始していることを前提としています。「GitHub Advanced Security の試用を計画する」を参照してください。
はじめに
Secret scanning の機能は、GitHub Advanced Security が有効なプライベート リポジトリと内部リポジトリでも、すべてのパブリック リポジトリと同様に機能します。 この記事では、GitHub Advanced Security を使うときにビジネスをセキュリティ リークから保護するために使用できる追加機能に焦点を当てます。具体的には、次のとおりです。
- 使う追加のアクセス トークンを特定する。
- AI を使って潜在的なパスワードを検出する。
- プッシュ保護のバイパス プロセスを制御および監査する。
- 公開されたトークンの有効性チェックを有効にする。
secret scanning のセキュリティ構成
ほとんどの Enterprise では、secret scanning を有効にし、これらの機能を有効にしてセキュリティ構成を適用することで、すべてのリポジトリに保護をプッシュすることを選んでいます。 これにより、ユーザーが GitHub でトークンを漏えいしようとしているときにフラグが設定されるだけでなく、GitHub に既に追加されているアクセス トークンがリポジトリでチェックされるようになります。 Enterprise レベルのセキュリティ構成の作成とテスト リポジトリへの適用については、「試用版 Enterprise でセキュリティ機能を有効にする」を参照してください。
secret scanning の結果を表示するためのアクセス権を付与する
既定では、リポジトリ管理者と organization 所有者のみが、自分の領域内のすべての secret scanning アラートを表示できます。 試用の間に検出されたアラートにアクセスできるようにする、organization のすべてのチームとユーザーに、定義済みのセキュリティ マネージャー ロールを割り当てる必要があります。 試用に参加している各 organization の Enterprise アカウント所有者にこのロールを付与することもできます。 詳しくは、「Organizationでのセキュリティマネージャーの管理」をご覧ください。
試用している Enterprise の organization で見つかった結果の概要は、Enterprise の [Code security] タブで確認できます。 セキュリティ アラートの種類ごとに個別のビューもあります。「セキュリティの分析情報の表示」を参照してください。
追加のアクセス トークンを特定する
カスタム パターンを作成して、リポジトリ、organization、Enterprise レベルで追加のアクセス トークンを特定できます。 ほとんどの場合、カスタム パターンを Enterprise レベルで定義する必要があります。これにより、Enterprise 全体でパターンが確実に使われるようになります。 また、トークンの形式が変更されたときにパターンを更新する必要がある場合でも、メンテナンスが容易になります。
カスタム パターンを作成して公開すると、secret scanning とプッシュ保護の両方で、すべてのスキャンに新しいパターンが自動的に追加されます。 カスタム パターンの作成の詳細については、「シークレット スキャンのカスタム パターンの定義」を参照してください。
AI を使って潜在的なパスワードを検出する
Enterprise レベルでは、正規表現を使って特定できないシークレット (汎用シークレットまたは非プロバイダー パターンとも呼ばれます) を検出するために AI の使用を許可するかどうかを完全に制御できます。
- Enterprise 全体に対して機能をオンまたはオフにする。
- Organization およびリポジトリ レベルで機能の制御を禁止するポリシーを設定する。
- Organization 所有者またはリポジトリ管理者が機能を制御できるようにポリシーを設定する。
カスタム パターンと同様に、AI 検出を有効にすると、secret scanning とプッシュ保護の両方で、AI 検出の使用がすべてのスキャンで自動的に開始されます。 Enterprise レベルの制御については、「Enterprise 用の追加のシークレット スキャン設定の構成」と「エンタープライズのコード セキュリティと分析のためのポリシーの適用」を参照してください。
バイパス プロセスの制御と監査
GitHub Advanced Security を使わないパブリック リポジトリ内で GitHub へのプッシュがプッシュ保護によって禁止されている場合、ユーザーにはシンプルな選択肢が 2 つあります。制御をバイパスする方法と、選んだコンテンツをブランチとその履歴から削除する方法です。 プッシュ保護をバイパスすることを選んだ場合、secret scanning アラートが自動的に作成されます。 これにより、開発者は、secret scanning によって特定されたコンテンツの監査証跡を提供できるだけでなく、迅速に作業の禁止を解除できます。
通常、大規模なチームは、アクセス トークンやその他のシークレットの公開の可能性をより厳密に制御したいと考えるものです。 GitHub Advanced Security を使うと、プッシュ保護をバイパスする要求を承認するレビュー担当者グループを定義し、開発者がまだアクティブなトークンを誤って漏えいするリスクを軽減できます。 レビュー担当者は、organization レベルのセキュリティ構成またはリポジトリの設定で定義されます。 詳しくは、「プッシュ保護のために委任されたバイパスについて」をご覧ください。
有効性チェックを有効にする
有効性チェックを有効にして、検出されたトークンがリポジトリ、organization、Enterprise レベルでまだアクティブであるかどうかをチェックできます。 一般に、Enterprise または organization レベルのセキュリティ構成を使って、Enterprise 全体でこの機能を有効にすることをお勧めします。 詳しくは、「リポジトリの有効性チェックの有効化」をご覧ください。
次のステップ
GitHub Advanced Security で使用できる secret scanning の追加の制御を有効にすると、ビジネス ニーズに合わせて制御をテストし、さらに詳しく調査できるようになります。 また、code scanning の試用を検討することもできます。