Skip to main content

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

正規表現を使用してカスタム パターンを定義することで、一意のシークレットの種類を保護します。

この機能を使用できるユーザーについて

リポジトリの所有者、organization の所有者、セキュリティ管理者、エンタープライズ管理者、および管理者ロールを持つユーザー

GitHub Team または GitHub Enterprise 上の組織所有リポジトリ (GitHub Secret Protection が有効)

Copilot

を使用したカスタム パターンの定義

Copilot シークレットスキャン を使用すると、検出したいパターンの種類をテキストで説明し、その説明に基づいて正規表現を生成できます。その際、検出すべき省略可能な例の文字列も含めることができます。 「Copilot シークレット スキャンを使用してカスタム パターンの正規表現を生成する」を参照してください。

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

カスタム パターンを定義する前に、Secret Protection がリポジトリで有効になっていることを確認する必要があります。 詳しくは、「リポジトリのシークレット スキャンの有効化」をご覧ください。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [Security] セクションで、[ Advanced Security] をクリックします。

  4. Secret Protection の "カスタム パターン" の右側にある [新しいパターン] をクリックします。 1. 新しいカスタム パターンの詳細を入力します。 少なくともパターンの名前と、シークレットパターンのフォーマットとして正規表現を提供しなければなりません。

    1. [Pattern name] (パターン名) フィールドにパターンの名前を入力します。
    2. [シークレット形式] フィールドに、シークレット パターンの形式の正規表現を入力します。
    3.     **「その他のオプション<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg>」** をクリックして、秘密の形式に関するその他の周辺コンテンツや追加の一致要件を指定できます。 「[AUTOTITLE](/code-security/reference/secret-security/custom-patterns#syntax-for-manually-defining-custom-patterns)」を参照してください。
      
    4. サンプルのテスト文字列を指定し、設定内容が期待するパターンにマッチすることを確認できます。

    記入したカスタム secret scanning パターン形式のスクリーンショット。

  5. 新しいカスタム パターンをテストする準備ができたら、アラートを作成せずにリポジトリで一致するものを特定するために、 [保存してドライ ラン] をクリックします。

  6. ドライ ランが完了すると、結果のサンプル (最大 1000 個) が表示されます。 結果をレビューし、誤検知の結果を特定します。

    ドライ ランの結果を示すスクリーンショット。

  7. 新しいカスタム パターンを編集して結果に関するすべての問題を修正してから、 [保存してドライ ラン] をクリックして変更をテストします。

  8. 新しいカスタム パターンに問題がなければ、 [パターンの発行] をクリックします。

  9. 任意で、カスタム パターンのプッシュ保護を有効にするには、 [有効にする] をクリックします。 詳しくは、「プッシュ保護について」をご覧ください。

    メモ

    ドライ ランが成功し、パターンを公開するまで、[Enable] ボタンは使用できません。

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

組織のカスタムパターンの定義

カスタム パターンを定義する前に、Organization 内でスキャンするリポジトリに対して secret scanning を有効にしていることを確かめる必要があります。 security configurations を使用して、organization 内のすべてのリポジトリで secret scanning を有効にすることができます。 詳しくは、「大規模なセキュリティ機能の有効化について」を参照してください。

  1. GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。1. 組織をクリックして選択します。

  2. Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの [セキュリティ] セクションで、Advanced Security ドロップダウン メニューを選び、Global settings をクリックします。

1。 [Custom patterns] (カスタム パターン) で、[新しいパターン] をクリックします。

  1. 新しいカスタム パターンの詳細を入力します。 少なくともパターンの名前と、シークレットパターンのフォーマットとして正規表現を提供しなければなりません。

    1. [Pattern name] (パターン名) フィールドにパターンの名前を入力します。
    2. [シークレット形式] フィールドに、シークレット パターンの形式の正規表現を入力します。
    3.     **「その他のオプション<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg>」** をクリックして、秘密の形式に関するその他の周辺コンテンツや追加の一致要件を指定できます。 「[AUTOTITLE](/code-security/reference/secret-security/custom-patterns#syntax-for-manually-defining-custom-patterns)」を参照してください。
      
    4. サンプルのテスト文字列を指定し、設定内容が期待するパターンにマッチすることを確認できます。

    記入したカスタム secret scanning パターン形式のスクリーンショット。

  2. 新しいカスタム パターンをテストする準備ができたら、アラートを作成せずにリポジトリの選択で一致するものを特定するために、 [保存してドライ ラン] をクリックします。

  3. ドライ ランを実行するリポジトリを選びます。

    • 組織全体でドライ ランを実行するには、[組織内のすべてのリポジトリ] を選択します。
    • ドライ ランを実行するリポジトリを指定するには、 [選択済みリポジトリ] を選び、最大 10 個のリポジトリを検索して選びます。
  4. 新しいカスタム パターンをテストする準備ができたら、 [実行] をクリックします。

  5. ドライ ランが完了すると、結果のサンプル (最大 1000 個) が表示されます。 結果をレビューし、誤検知の結果を特定します。

    ドライ ランの結果を示すスクリーンショット。

  6. 新しいカスタム パターンを編集して結果に関するすべての問題を修正してから、 [保存してドライ ラン] をクリックして変更をテストします。

  7. 新しいカスタム パターンに問題がなければ、 [パターンの発行] をクリックします。

  8. 任意で、カスタム パターンのプッシュ保護を有効にするには、 [有効にする] をクリックします。 詳しくは、「プッシュ保護について」をご覧ください。

    メモ

    • プッシュ保護を有効にするオプションは、公開されたパターンでのみ表示されます。
    • カスタム パターンのプッシュ保護は、プッシュ保護として secret scanning が有効になっている組織のリポジトリにのみ適用されます。
    • 一般的なカスタム パターンに対してプッシュ保護を有効にすると、共同作成者が混乱する可能性があります。

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

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

メモ

  • エンタープライズ レベルでは、カスタム パターンの作成者のみがパターンを編集し、ドライ ランで使用できます。
  • ドライ ランは、自分が管理アクセス権を持つリポジトリでのみ実行できます。 エンタープライズ所有者が、組織内の任意のリポジトリでドライ ランを実行するためのアクセス権を必要とする場合は、組織所有者ロールが割り当てられている必要があります。 詳しくは、「あなたの企業が所有する組織での役割を管理する」をご覧ください。
  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。

  2. ページの上部にある [ Policies] をクリックします。

  3. [Policies] で、[Advanced Security] をクリックします。

  4. [Advanced Security] の下にある [セキュリティ機能] をクリックします。

  5. [シークレット スキャン カスタム パターン] で、 [新しいパターン] をクリックします。

  6. 新しいカスタム パターンの詳細を入力します。 少なくともパターンの名前と、シークレットパターンのフォーマットとして正規表現を提供しなければなりません。

    1. [Pattern name] (パターン名) フィールドにパターンの名前を入力します。
    2. [シークレット形式] フィールドに、シークレット パターンの形式の正規表現を入力します。
    3.     **「その他のオプション<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg>」** をクリックして、秘密の形式に関するその他の周辺コンテンツや追加の一致要件を指定できます。 「[AUTOTITLE](/code-security/reference/secret-security/custom-patterns#syntax-for-manually-defining-custom-patterns)」を参照してください。
      
    4. サンプルのテスト文字列を指定し、設定内容が期待するパターンにマッチすることを確認できます。

    記入したカスタム secret scanning パターン形式のスクリーンショット。

  7. 新しいカスタム パターンをテストする準備ができたら、アラートを作成せずに Enterprise で一致するものを特定するため、 [保存してドライ ラン] をクリックします。

  8. ドライ ランを実行するリポジトリを最大 10 個検索して選択します。

  9. 新しいカスタム パターンをテストする準備ができたら、 [実行] をクリックします。1. ドライ ランが完了すると、結果のサンプル (最大 1000 個) が表示されます。 結果をレビューし、誤検知の結果を特定します。

    ドライ ランの結果を示すスクリーンショット。

  10. 新しいカスタム パターンを編集して結果に関するすべての問題を修正してから、 [保存してドライ ラン] をクリックして変更をテストします。1. 新しいカスタム パターンに問題がなければ、 [パターンの発行] をクリックします。

  11. 任意で、カスタム パターンのプッシュ保護を有効にするには、 [有効にする] をクリックします。 詳しくは、「プッシュ保護について」をご覧ください。

    メモ

    • カスタム パターンのプッシュ保護を有効にするには、エンタープライズ レベルでプッシュ保護として secret scanning を有効にする必要があります。
    • 一般的なカスタム パターンに対してプッシュ保護を有効にすると、共同作成者が混乱する可能性があります。

パターンが作成されると、secret scanning は、GitHub Secret Protection が有効なあなたの組織のリポジトリ内に存在するすべてのシークレットを、すべてのブランチの Git 履歴全体を含めてスキャンします。 Organization の所有者とリポジトリの管理者は、シークレットが見つかるとアラートを受け、シークレットが見つかったリポジトリでアラートをレビューできます。 シークレット スキャンニング アラート の表示については、「シークレット スキャン アラートの管理」を参照してください。

詳細については、次を参照してください。