# GitHub シークレット保護の影響の評価

GitHub Secret Protectionが組織全体の秘密の露出を減らす方法を測定し、セキュリティ体制を強化するための価値を示し、領域を特定できるようにします。

## はじめに

組織の GitHub Secret Protection (GHSP) を有効にした後、その影響を評価し、それがどのように組織を保護しているかを理解する必要があります。 このチュートリアルでは、シークレット関連のデータにアクセスし、結果を解釈して GHSP のパフォーマンスを測定する手順について説明します。

このチュートリアルで学習する内容は次のとおりです。

* 組織のセキュリティの概要にアクセスして、 secret scanning データを表示する
* secret risk assessment (SRA) レポートを確認する
* データを比較して分析し、GHSP の影響を評価する

GHSP ロールアウト前の履歴 SRA レポートがない場合でも、GHSP の有効性を評価できます。
[「手順 4: セキュリティ概要データの傾向を分析する」](#step-4-analyze-security-overview-data-trends)に進んでください。

## 前提条件

* 組織の所有者またはセキュリティ マネージャーの役割が必要です。
* Secret Protection は、組織で有効にする必要があります。

## 手順 1: 組織レベルのセキュリティの概要にアクセスする

セキュリティの概要では、組織全体の シークレット スキャンニング アラート に関するリアルタイム データが提供されます。

1. GitHub で、organization のメイン ページに移動します。
2. 組織名の下の \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security** ] タブをクリックします。
3. \[セキュリティの概要] ページで、\[ **リスク** ] タブをクリックしてシークレット スキャン データを表示します。
   概要には、次の情報が表示されます。
   * 開いている数の合計 シークレット スキャンニング アラート
   * 時間の経過に伴うアラートの傾向
   * リポジトリ別の内訳
   * アラートの重大度の分布

## 手順 2: secret risk assessment レポートを表示する

以前に SRA レポートを実行した場合は、レポートにアクセスしてベースラインを確立できます。

1. GitHub で、organization のメイン ページに移動します。
2. 組織名の下の \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security** ] タブをクリックします。
3. サイドバーの \[Security] で、**\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-key" aria-label="key" role="img"><path d="M10.5 0a5.499 5.499 0 1 1-1.288 10.848l-.932.932a.749.749 0 0 1-.53.22H7v.75a.749.749 0 0 1-.22.53l-.5.5a.749.749 0 0 1-.53.22H5v.75a.749.749 0 0 1-.22.53l-.5.5a.749.749 0 0 1-.53.22h-2A1.75 1.75 0 0 1 0 14.25v-2c0-.199.079-.389.22-.53l4.932-4.932A5.5 5.5 0 0 1 10.5 0Zm-4 5.5c-.001.431.069.86.205 1.269a.75.75 0 0 1-.181.768L1.5 12.56v1.69c0 .138.112.25.25.25h1.69l.06-.06v-1.19a.75.75 0 0 1 .75-.75h1.19l.06-.06v-1.19a.75.75 0 0 1 .75-.75h1.19l1.023-1.025a.75.75 0 0 1 .768-.18A4 4 0 1 0 6.5 5.5ZM11 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg> Assessments]** をクリックします。
4. 次のような評価の主要なメトリックを確認します。
   * 検出された公開されたシークレットの数
   * 検出されたシークレットの種類
   * リスクが最も高いリポジトリ
   * 推奨される修復アクション

> \[!NOTE] SRA レポートは、GHSP の実装前または実装中にシークレットが公開された時点のスナップショットを表します。

## 手順 3: SRA データと現在のセキュリティの概要を比較する

SRA レポートは、GHSP ロールアウトの前または実行中に作成された **特定の時点の** スナップショットです。一方、セキュリティの概要には、アラートが開かれ解決されると更新される **リアルタイム** データが表示されます。 意味のある比較を行うには、両方のデータセットが同じシークレットの種類をカバーしていることを確認する必要があります。

### 同等のパターンの種類にフィルターを適用する

SRA レポートでは、 **プロバイダー パターン** と **汎用パターン**のみが検出されます。 ただし、セキュリティの概要には、GHSP を有効にしてから構成したカスタム パターンの結果も含まれる場合があります。 正確な比較を確実に行うために、セキュリティの概要をフィルター処理して、SRA がカバーするのと同じパターンの種類にします。

#### UI を使用する

セキュリティの概要の \[ **リスク** ] タブで、フィルター バーを使用して、カスタム パターンを除き、プロバイダーと汎用パターンのみに結果を絞り込みます。

#### API の使用

または、REST API を使用して、シークレットの種類でフィルター処理されたアラートをプログラムで取得することもできます。 たとえば、リポジトリの既定の (プロバイダー) シークレット スキャンニング アラート のみを一覧表示するには、次のようにします。

```shell copy
gh api \
  -H "Accept: application/vnd.github+json" \
  /orgs/ORG/secret-scanning/alerts --paginate
```

これにより、既定のパターンについてのみアラートが返されます。 結果にジェネリック パターンを含めるには、 `secret_type` パラメーターを使用して特定のトークン名を渡します。

詳細については、「[シークレット スキャン用の REST API エンドポイント](/ja/enterprise-server@3.22/rest/secret-scanning/secret-scanning)」を参照してください。

### 比較を構築する

1. フィルター処理されたデータを使用して、次の主要なメトリックを含む比較テーブルを作成します。

   | メトリック           | SRA レポート (ベースライン) | 現在のセキュリティの概要 (フィルター処理) | Change |
   | --------------- | ----------------- | ---------------------- | ------ |
   | 公開されたシークレットの合計数 | \[SRA 番号]         | \[現在の番号]               | \[相違点] |
   | 重大なアラート         | \[SRA 番号]         | \[現在の番号]               | \[相違点] |
   | 影響を受けるリポジトリ     | \[SRA 番号]         | \[現在の番号]               | \[相違点] |

2. 各メトリックの変化率を計算します。
   * **プラスの影響インジケーター:** 公開されているシークレットの合計数の削減、重大なアラートの減少
   * **改善の領域:** 新しいアラートが表示され、傾向が高まる特定のリポジトリ

3. 次の点に大きな違いがあることに注意してください。
   * 検出されるシークレットの種類
   * リポジトリの対象範囲
   * アラート解決率

## 手順 4: セキュリティ概要データの傾向を分析する

SRA レポートがなくても、セキュリティの概要の傾向を分析することで、GHSP の有効性を評価できます。

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

2. 組織名の下の \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security** ] タブをクリックします。

3. セキュリティの概要の \[ **リスク** ] タブで、時間の経過に伴う シークレット スキャンニング アラート を示す傾向グラフを確認します。

4. パターンを特定する:
   * **減少傾向:** 修復と防止が成功したことを示します
   * **高 原：** 安定した状態または認識の向上の必要性を示唆する場合があります
   * **上昇傾向:** 検出範囲の増加または新しいシークレットの導入を示している可能性があります

5. 個々のリポジトリをクリックして、特定のアラートの詳細にドリルダウンします。

6. アラート解決率を確認します。
   * 組織の \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security** ] タブに移動します。
   * \[結果] の \[ **Secret scanning**] をクリックします。
   * 閉じられたアラートの数と、開いたままのアラートの数を確認します。
   * 関心のあるアラートの種類を選択します。
   * 平均解決時間を評価します。

## 手順 5: 結果を解釈してアクションを実行する

分析に基づいて、次の手順を決定します。

### 肯定的な傾向が表示されている場合

* GHSP の価値を実証するための改善を文書化する
* 他のリポジトリ間でレプリケートする成功プラクティスを特定する
* 追加のリポジトリまたは組織への GHSP カバレッジの拡張を検討する

### 改善点が見つかった場合

* アラートの増加または解決時間が遅いリポジトリを確認する
* 開発チームに追加のトレーニングを提供する
* カスタム パターンを構成する必要があるかどうかを評価する
* プッシュ保護が有効になっているかどうかを確認して、新しいシークレットが導入されないようにする

### 継続的な監視

* セキュリティの概要の定期的なレビュー (毎週または毎月) をスケジュールする
* 新しいシークレット スキャンニング アラートを知るための通知を設定する
* 継続的な改善を実証するために、時間の経過に伴うメトリックを追跡する