secret scanningアラートページについて
リポジトリのsecret scanningを有効にするか、secret scanningが有効になっているリポジトリにコミットをプッシュすると、サービス プロバイダーで定義されているパターン、および Enterprise、organization、またはリポジトリで定義されているカスタム パターンと一致するシークレットについて、GitHub によりその内容がスキャンされます。
secret scanningでシークレットが検出されると、GitHub によってアラートが送信されます。GitHub のリポジトリの [セキュリティ] タブにアラートが表示されます。
アラートの表示
- お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
- リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
- 左側のサイドバーの [Vulnerability alerts] (脆弱性アラート) で、 [Secret scanning] をクリックします。
- [Secret scanning]で、表示するアラートをクリックします。
アラートのフィルター処理
アラート リストにさまざまなフィルターを適用し、関心のあるアラートを見つけることができます。 アラート リストの上にあるドロップダウン メニューを使用したり、テーブルにリストされた修飾子を検索バーに入力したりすることができます。
修飾子 | 説明 |
---|---|
is:open | 開いたアラートを表示します。 |
is:closed | 終了したアラートを表示します。 |
validity:active | まだアクティブなシークレットのアラートを表示します。 有効性の状態の詳細については、「シークレットの有効性を確認する」を参照してください。 |
validity:inactive | アクティブではなくなったシークレットのアラートを表示します。 |
validity:unknown | シークレットの有効性の状態が不明な場合、シークレットのアラートを表示します。 |
secret-type:SECRET-NAME | たとえば、secret-type:github_personal_access_token のような特定のシークレット タイプのアラートを表示します。 サポートされているシークレットの種類のリストについては、「secret scanning パターン」を参照してください。 |
provider:PROVIDER-NAME | たとえば、provider:github のような特定のプロバイダーのアラートを表示します。 サポートされているパートナーのリストについては、「secret scanning パターン」を参照してください。 |
アラートの評価
シークレットの有効性をチェックし、シークレットがまだアクティブかどうかを確認できます。 GitHub トークンにのみ適用されます。 詳細については、「シークレットの有効性のチェック」を参照してください。
シークレットの有効性の確認
有効性チェックは、どのシークレットが“active
“または“inactive
“なのかについて教え、アラートの優先順位付けに役立ちます。 “active
“のシークレットは引き続き悪用される可能性があるため、これらのアラートを確認して優先事項として修復する必要があります。
既定では、GitHubはGitHubトークンの有効性をチェックし、アラート ビューにトークンの有効性の状態を表示します。
有効期限までの日数 | 状態 | 結果 |
---|---|---|
アクティブなシークレット | active | GitHub はこのシークレットのプロバイダーでチェックし、シークレットがアクティブであることを確認しました |
アクティブである可能性があるシークレット | unknown | GitHub は、このトークンの種類の有効性チェックをまだサポートしていません |
アクティブである可能性があるシークレット | unknown | GitHub はこのシークレットを検証できませんでした |
シークレットが非アクティブ | inactive | 未承認のアクセスが既に行われていないことを確認する必要があります |
REST API を使用して、各トークンの最新の検証状態の一覧を取得できます。 詳しくは、REST API ドキュメントの「シークレット スキャン用の REST API エンドポイント」をご覧ください。 Webhook を使用して、secret scanning アラートに関連するアクティビティの通知を受け取ることもできます。 詳細については、「Webhook のイベントとペイロード」の secret_scanning_alert
イベントをご覧ください。
アラートの修正
シークレットがリポジトリにコミットされたら、シークレットが侵害されたと考える必要があります。 GitHub は、侵害されたシークレットに対して次のアクションを行うことをおすすめします。
- 侵害された GitHub personal access token については、侵害されたトークンを削除し、新しいトークンを作成し、古いトークンを使っていたサービスを更新してください。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。
- 特定します。 詳しくは、「アクセス トークンによって実行される監査ログ イベントの識別」を参照してください。
- それ以外のすべてのシークレットについては、最初に GitHub Enterprise Server にコミットされたシークレットが有効であることを確認してください。 有効な場合は、新しいシークレットを作成し、古いシークレットを使用するサービスをすべて更新して、古いシークレットを削除します。
アラートの終了
Note
Secret scanning は、対応するトークンがリポジトリから削除された場合、アラートを自動的に閉じることはありません。 これらのアラートは、GitHub のアラート リストから手動で閉じる必要があります。
-
お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
左側のサイドバーの [Vulnerability alerts] (脆弱性アラート) で、 [Secret scanning] をクリックします。
-
[Secret scanning]で、表示するアラートをクリックします。
-
アラートを無視するには、[次の状態として閉じる] ドロップダウン メニューを選び、アラートを解決する理由をクリックします。
-
必要に応じて、[コメント] フィールドに無視のコメントを追加します。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。 アラート タイムラインで、すべての無視されたアラートと無視コメントの履歴を確認できます。 また、Secret scanning API を使って、コメントを取得または設定することもできます。 コメントは
resolution_comment
フィールドに含まれています。 詳しくは、REST API ドキュメントの「シークレット スキャン用の REST API エンドポイント」をご覧ください。 -
[アラートをクローズする] をクリックします。
シークレット スキャンニング アラート
の通知を構成する
増分スキャンと履歴スキャンでは通知が異なります。
増分スキャン
新しいシークレットが検出されると GitHub Enterprise Server によって、通知設定に従ってリポジトリのセキュリティ アラートにアクセスできるすべてのユーザーに通知されます。 これらのユーザーは次のとおりです。
- リポジトリ管理者
- セキュリティマネージャー
- 読み書きアクセス権が与えられるカスタム ロールを持つユーザー
- Organization 所有者とエンタープライズ所有者。シークレットが漏洩したリポジトリの管理者である場合
Note
シークレットを誤ってコミットしてしまったコミット作成者には、通知の基本設定に関係なく通知が行われます。
次の場合に、電子メール通知を受け取ります。
- リポジトリをウォッチしている。
- リポジトリ で [すべてのアクティビティ]、またはカスタムの [セキュリティ アラート] の通知を有効にしている。
- 通知設定にある [サブスクリプション] の [ウォッチ] で、電子メールによる通知を受け取ることを選んだ。
-
お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。
-
リポジトリのウォッチを開始するには、 [ ウォッチ] を選んでください。
-
ドロップダウン メニューで、 [すべてのアクティビティ] を選びます。 または、セキュリティ アラートのみをサブスクライバーにする場合は、 [カスタム] を選び、 [セキュリティ アラート] を選びます。
-
個人用アカウントの通知設定に移動します。 https://github.com/settings/notifications で利用できます。
-
通知設定のページの、[サブスクリプション] にある [視聴] で、 [通知する] ドロップダウンを選びます。
-
通知方法として [Email] を選び、 [保存] を選びます。
通知設定について詳しくは、「リポジトリのセキュリティと分析設定を管理する」と「個々のリポジトリのウォッチ設定の構成」を参照してください。
履歴スキャン
履歴スキャンの場合、GitHub Enterprise Server では次のユーザーに通知します。
- 組織所有者、エンタープライズ所有者、セキュリティ マネージャー - 履歴スキャンの完了時に必ず。シークレットが見つからないとしても。
- リポジトリ管理者、セキュリティ マネージャー、読み書きアクセス権が与えられるカスタム ロールを持つユーザー - 履歴スキャンでシークレットが見つかったときは必ず。通知設定に基づいて。
コミット作成者には通知 "しません"。
通知設定について詳しくは、「リポジトリのセキュリティと分析設定を管理する」と「個々のリポジトリのウォッチ設定の構成」を参照してください。
シークレット スキャン アラートへの応答の監査
GitHub ツールを使用して、secret scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。