# シークレット スキャン

公開された資格情報を悪用する前に自動的に検出することで、シークレットの不正使用を防止します。

API キーやパスワードなどの資格情報がハードコーディングされたシークレットとしてリポジトリにコミットされると、承認されていないアクセスのターゲットになります。
Secret scanning は資格情報リークを自動的に検出するため、悪用される前にセキュリティで保護できます。

> \[!TIP]
> 漏洩したシークレットについては、いつでも組織のコードの無料評価を実行できます。
>
> レポートを生成するには、 組織の \[**<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**] タブで、\[**<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>評価**] ページを表示し、\[**組織のスキャン**] をクリックします。を開きます。

## シークレット スキャンによってコードが保護されるしくみ

Secret scanning は、リポジトリのすべてのブランチで Git 履歴全体をスキャンして、API キー、パスワード、トークン、その他の既知のシークレットの種類など、ハードコーディングされた資格情報を探します。 これにより、セキュリティ リスクになる前に、シークレットのスプロール(リポジトリ間での資格情報の制御不能な急増)を特定するのに役立ちます。
GitHub また、新しいシークレットの種類が追加されると、リポジトリも定期的に再スキャンされます。

GitHub また、次の項目も自動的にスキャンされます。

* 問題の説明とコメント
* オープンとクローズの過去の問題のタイトル、説明、およびコメント
* pull request のタイトル、説明とコメント
* のタイトル、説明、およびコメント GitHub Discussions
* 秘密の要旨

### Secret scanning アラートと修復

secret scanningが資格情報の漏洩を検出すると、GitHubは公開された資格情報に関する詳細を含むアラートをリポジトリの\*\*<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\*\* タブに生成します。

アラートを受信したら、影響を受ける資格情報をすぐにローテーションして、承認されていないアクセスを防ぎます。 Git 履歴からシークレットを削除することもできますが、これは時間がかかり、資格情報を既に取り消している場合は多くの場合不要です。

## カスタマイズ

パートナーシークレットとプロバイダー シークレットの既定の検出以外にも、ニーズに合わせて secret scanning を拡張およびカスタマイズできます。

* **プロバイダー以外のパターン。** 秘密キー、接続文字列、汎用 API キーなど、特定のサービス プロバイダーに関連付けられていないシークレットに検出を拡張します。
* **カスタム パターン。** 既定のパターンでカバーされていない組織固有のシークレットを検出する独自の正規表現を定義します。
* **有効性チェック。** 検出されたシークレットがまだアクティブであるかどうかを確認して、修復に優先順位を付けます。

## この機能にアクセスするにはどうすればよいですか?

Secret scanning は、次のリポジトリの種類で使用できます。

* **パブリック リポジトリ**: Secret scanning は無料で自動的に実行されます。
* **組織所有のプライベートリポジトリと内部リポジトリ**: [GitHub Secret Protection または GitHub Team](/ja/enterprise-server@3.18/get-started/learning-about-github/about-github-advanced-security) で有効になっている GitHub Enterprise Cloud で使用できます。
* **ユーザー所有のリポジトリ**: GitHub Enterprise Cloud および Enterprise Managed Users で利用可能です。 GitHub Enterprise Server で使用できるのは、エンタープライズで [GitHub Secret Protection](/ja/enterprise-server@3.18/get-started/learning-about-github/about-github-advanced-security) が有効になっている場合です。