Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

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

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

ご自分のエンタープライズで GitHub Advanced Security のライセンスがある� �合、GitHub Enterprise Server の Organization 所有のリポジトリで が利用できます。 詳細については、「[GitHub's products](/articles/githubs-products)」 (GitHub の製品) を参照してく� さい。

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

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

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

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

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

パターンが作成された後、secret scanningはGitHubリポジトリ中に存在するすべてのブランチのGit履歴全体に対して、あらゆるシークレットをスキャンします。 secret scanning アラートの表示について詳しくは、「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 アラートを作成しないようにすることができます。

  1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分の 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 アラートの表示について詳しくは、「secret scanning からのアラートの管理」を参照してく� さい。

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

カスタ�  パターンを定義する前に、Enterprise アカウントのシークレット スキャンを必ず有効にする必要があります。 詳細については、「Enterprise での GitHub Advanced Security の有効化」を参照してく� さい。

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

  1. GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 GitHub Enterprise Server のプロファイル写真のドロップダウン メニューの [自分の 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 アラートの表示について詳しくは、「secret scanning からのアラートの管理」を参照してく� さい。

カスタ�  パターンの編集

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

  1. カスタ�  パターンが作成された� �所に移動します。 カスタ�  パターンは、リポジトリ、Organization または Enterprise アカウントに作成できます。
  2. [Secret scanning] で、編集するカスタ�  パターンの右側にある をクリックします。
  3. 変更をレビューしてテストしたら、 [変更の保存] をクリックします。

カスタ� パターンの削除

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

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

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

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

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