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

シークレット スキャンのカスタム パターンの定義

secret scanning を拡張して、既定のパターン以外のシークレットを検出できます。

GitHub AE の Organization 所有のリポジトリで Secret scanning が利用できます。 これは GitHub Advanced Security の機能です (ベータ リリース中は無料)。

secret scanningのカスタムパターンについて

カスタム パターンを定義して、secret scanning でサポートされている既定のパターンで検出されないシークレットを特定できます。 たとえば、Organizationの内部的なシークレットのパターンを持っていることもあるかもしれません。 サポートされているシークレットとサービス プロバイダーの詳細については、「Secret scanning パターン」を参照してください。

Enterprise、Organization、またはリポジトリのカスタム パターンを定義できます。 Secret scanning では、Organization または Enterprise アカウントごとに最大 500 個のカスタム パターン、およびリポジトリごとに最大 100 個のカスタム パターンがサポートされます。

カスタムパターンの正規表現構文

secret scanning のカスタム パターンを 1 つまたは複数の正規表現として指定できます。

  • シークレット形式: シークレット自体の形式を記述する式。
  • シークレットの前: シークレットの前にある文字を記述する式。 既定では、これは \A|[^0-9A-Za-z] に設定されます。これは、シークレットが行の先頭にあるか、前に英数字以外の文字を付ける必要があることを意味します。
  • シークレットの後: シークレットの後に来る文字を記述する式。 既定では、これは \z|[^0-9A-Za-z] に設定されます。これは、シークレットの後に新しい行または英数字以外の文字が続く必要があることを意味します。
  • 追加の一致要件: シークレット自体が一致しなければならない、または一致してはならない 1 つまたは複数の省略可能な式。

単純なトークンの場合、通常はシークレット形式のみを指定する必要があります。 他のフィールドでは柔軟性が提供されるため、複雑な正規表現を作成せずに、より複雑なシークレットを指定できます。 カスタム パターンの例については、以下の「追加の要件を使用して指定されたカスタム パターンの例」を参照してください。

Secret scanning では Hyperscan ライブラリが使用され、PCRE 構文のサブセットである Hyperscan の正規コンストラクトのみがサポートされます。 Hyperscanのオプション修飾子はサポートされません。 Hyperscan パターン コンストラクトの詳細については、Hyperscan ドキュメントの「パターンのサポート」を参照してください。

リポジトリのカスタムパターンの定義

カスタムパターンを定義する前に、リポジトリでsecret scanningが有効化されていることを確認しておかなければなりません。 詳細については、「リポジトリの secret scanning の構成」を参照してください。

  1. your enterprise で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン
  2. サイドバーで、 [セキュリティと分析] をクリックします。 リポジトリ設定の [セキュリティと析] タブ 1. [コードのセキュリティと分析] の下で、「GitHub Advanced Security」を見つけてください。 1. [Secret scanning] の [カスタム パターン] で、 [新しいパターン] をクリックします。 1. 新しいカスタムパターンの詳細を入力します。
    1. 少なくともパターンの名前と、シークレットパターンのフォーマットとして正規表現を提供しなければなりません。
    2. [その他のオプション ] をクリックして、シークレットのフォーマットのその他の周辺コンテンツあるいは追加のマッチ要件を指定できます。
    3. サンプルのテスト文字列を指定し、設定内容が期待するパターンにマッチすることを確認できます。 カスタム secret scanning パターン形式を作成する 1. 新しいカスタム パターンに問題がなければ、 [パターンの作成] をクリックします。

パターンが作成された後、secret scanningはGitHubリポジトリ中に存在するすべてのブランチのGit履歴全体に対して、あらゆるシークレットをスキャンします。 secret scanning alerts の表示について詳しくは、「secret scanning からのアラートの管理」を参照してください。

追加の要件を使用して指定されたカスタム パターンの例

ある会社には、5 つの特性を持つ内部トークンがあります。 さまざまなフィールドを使用して、トークンを特定する方法を次のように指定します。

特徴フィールドと正規表現
5 から 10 文字の長さシークレット形式: [$#%@AA-Za-z0-9]{5,10}
. で終わらないシークレットの後: [^\.]
数字と大文字を含む追加の要件: シークレットは [A-Z] および [0-9] と一致する必要がある
1 行に複数の小文字を含まない追加の要件: シークレットは [a-z]{2,} と一致してはならない
$%@! のいずれかを含む追加の要件: シークレットは [$%@!] と一致する必要がある

これらのトークンは、上記のカスタム パターンと一致します。

a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA

これらの文字列は、上記のカスタム パターンと一致しません。

a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9

Organizationのカスタムパターンの定義

カスタム パターンを定義する前に、Organization 内でスキャンするリポジトリに対して secret scanning を有効にしていることを確かめる必要があります。 Organization 内のすべてのリポジトリで secret scanning を有効にする場合は、「Organization のセキュリティおよび分析設定を管理する」を参照してください。

注: ドライラン機能がないため、Organization 全体に対して定義する前に、リポジトリでカスタム パターンをテストすることをお勧めします。 そうすることで、過剰な誤検知 secret scanning alerts を作成しないようにすることができます。

  1. GitHub AE の右上隅にあるプロファイル写真をクリックし、 [自分の Organization] をクリックします。 プロファイル メニューの組織 2. 組織の隣の [設定] をクリックします。 [設定] ボタン
  2. サイドバーで、 [セキュリティと分析] をクリックします。 Organization の設定の [セキュリティと分析] タブ 1. [コードのセキュリティと分析] の下で、「GitHub Advanced Security」を見つけてください。 1. [Secret scanning] の [カスタム パターン] で、 [新しいパターン] をクリックします。 1. 新しいカスタムパターンの詳細を入力します。
    1. 少なくともパターンの名前と、シークレットパターンのフォーマットとして正規表現を提供しなければなりません。
    2. [その他のオプション ] をクリックして、シークレットのフォーマットのその他の周辺コンテンツあるいは追加のマッチ要件を指定できます。
    3. サンプルのテスト文字列を指定し、設定内容が期待するパターンにマッチすることを確認できます。 カスタム secret scanning パターン形式を作成する 1. 新しいカスタム パターンに問題がなければ、 [パターンの作成] をクリックします。

パターンが作成された後、secret scanning により、すべてのブランチの Git 履歴全体を含め、Organization 内のリポジトリですべてのシークレットがスキャンされます。 Organization のオーナーとリポジトリの管理者は、シークレットが見つかるとアラートを受け、シークレットが見つかったリポジトリでアラートをレビューできます。 secret scanning alerts の表示について詳しくは、「secret scanning からのアラートの管理」を参照してください。

Enterprise アカウントのカスタム パターンの定義

注: ドライラン機能がないため、Enterprise 全体に対してカスタム パターンを定義する前に、リポジトリでテストすることをお勧めします。 そうすることで、過剰な誤検知 secret scanning alerts を作成しないようにすることができます。

  1. GitHub AE の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 GitHub AE のプロファイル写真のドロップダウン メニューの [自分の Enterprise] 1. Enterprise サイドバーで、 [ポリシー] をクリックします。 [Enterprise アカウント] サイドバーの [ポリシー] タブ 1. [ ポリシー] で、[Advanced Security] をクリックします。 サイドバーの [Advanced Security] ポリシー 1. [GitHub Advanced Security] の [セキュリティ機能] タブをクリックします。
  2. [シークレット スキャン カスタム パターン] で、 [新しいパターン] をクリックします。
  3. 新しいカスタムパターンの詳細を入力します。
    1. 少なくともパターンの名前と、シークレットパターンのフォーマットとして正規表現を提供しなければなりません。
    2. [その他のオプション ] をクリックして、シークレットのフォーマットのその他の周辺コンテンツあるいは追加のマッチ要件を指定できます。
    3. サンプルのテスト文字列を指定し、設定内容が期待するパターンにマッチすることを確認できます。 カスタム secret scanning パターン形式を作成する 1. 新しいカスタム パターンに問題がなければ、 [パターンの作成] をクリックします。

パターンが作成された後、secret scanningにより、すべてのブランチの Git 履歴全体を含め、GitHub Advanced Security が有効になっている Enterprise の Organization 内のリポジトリですべてのシークレットがスキャンされます。 Organizationのオーナーとリポジトリの管理者は、シークレットが見つかるとアラートを受け、シークレットが見つかったリポジトリでアラートをレビューできます。 secret scanning alerts の表示について詳しくは、「secret scanning からのアラートの管理」を参照してください。

カスタム パターンの編集

カスタム パターンへの変更を保存すると、以前のバージョンのパターンを使用して作成されたすべての secret scanning alerts が閉じられます。

  1. カスタム パターンが作成された場所に移動します。 カスタム パターンは、リポジトリ、Organization または Enterprise アカウントに作成できます。
  2. [Secret scanning] で、編集するカスタム パターンの右側にある をクリックします。
  3. 変更を確認してテストしたら、 [Publish changes] (変更の発行) をクリックします。

カスタムパターンの削除

  1. カスタム パターンが作成された場所に移動します。 カスタム パターンは、リポジトリ、Organization または Enterprise アカウントに作成できます。

  2. 削除するカスタム パターンの右側にある をクリックします。

  3. 確認をレビューし、カスタム パターンに関連する開いているアラートを処理する方法を選択します。

  4. [はい、このパターンを削除します] をクリックします。

    カスタム secret scanning パターンの削除を確認する