シークレットスキャン検出パターンの更新と製品改善
本文の状態
日本語全文を表示中
詳細モードで約9分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
GitHub Changelog
GitHubがシークレットスキャン機能の検出範囲、API、ワークフローを改善し、Cloudflareを新たな検出パートナーに追加した。また、エンタープライズ管理ユーザー向けにフォークのプッシュ保護を強化した。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るSource Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
タイトル: シークレットスキャンのパターン更新と製品改善
今週、検出カバレッジ、API、ワークフローに関する複数の改善をリリースします。これらの改善は、シークレットスキャン機能の開発者エクスペリエンスへの継続的な投資を強化するものです。開発者によって、開発者のために構築されています。
検出カバレッジ
新しいCloudflare検出器: Cloudflareが新たにシークレットスキャンのパートナーとなりました。
プッシュ保護
エンタープライズ管理ユーザー(EMU)向けフォーク: EMUエンタープライズ内のユーザー所有フォークが、最も近いライセンスを持つ祖先リポジトリからプッシュ保護を継承するようになりました。
プッシュ保護のデフォルト設定拡大: Figma、GCP、Langchain、OpenVSX、PostHogのパターンについて、デフォルトで一致するシークレットを含むコミットをブロックするようになりました。
シークレットメタデータ
API経由でのカスタムパターンアラートの有効性設定: PATCHエンドポイントを介して、カスタムパターンのアラートを直接「アクティブ」または「非アクティブ」としてマークできるようになりました。
シークレットスキャンキャンペーン向けのチームとトピックフィルター: キャンペーンが、コードスキャンキャンペーンと同様のチームおよびトピックフィルターオプションをサポートするようになりました。
アラートAPIにおけるプロバイダーフィールドとフィルタリング: アラートレスポンスにproviderとprovider_slugが含まれるようになり、3つのリストエンドポイントすべてに新たなprovidersおよびexclude_providersクエリパラメータが追加されました。
スキャン履歴と委任リスト
スキャン履歴APIにおけるAI検出シークレット: AI検出(ジェネリックシークレット)のバックフィルスキャンが、スキャン履歴APIのレスポンスに表示されるようになりました。
却下リクエストを一覧表示するエンタープライズAPI: 新エンドポイントにより、エンタープライズ所有者とセキュリティマネージャーが、エンタープライズ内の全組織にわたるシークレットスキャンの却下リクエストを一覧表示できるようになりました。
追加された検出器
シークレットスキャンが、リポジトリ内で以下の新しいシークレットタイプを自動検出するようになりました。
| プロバイダー | シークレットタイプ | パートナー | ユーザー | プッシュ保護 |
|---|---|---|---|---|
| Cloudflare | cloudflare_account_api_token | ✓ | ✓ | ✓ (デフォルト) |
| Cloudflare | cloudflare_global_user_api_key | ✓ | ✓ | ✓ (デフォルト) |
| Cloudflare | cloudflare_user_api_token | ✓ | ✓ | ✓ (デフォルト) |
パートナーシークレットは、シークレットスキャンパートナーシッププログラムを通じて公開リポジトリで発見された場合、自動的にシークレット発行者に報告されます。ユーザーシークレットは、公開またはプライベートリポジトリで発見された場合にシークレットスキャンアラートを生成します。詳細は、シークレットスキャンに関するドキュメントをご覧ください。
プッシュ保護の改善
EMUユーザー所有フォーク
EMUエンタープライズでは、開発者が組織リポジトリを個人の名前空間にフォークすることがよくあります。以前は、プッシュ保護はフォーク自体にアクティブなGHASライセンスがある場合にのみ適用されていたため、組織リポジトリではブロックされた同じシークレットがフォークでは見逃される可能性がありました。
プッシュ保護は祖先チェーンをたどるようになりました。フォーク階層内のいずれかのリポジトリでプッシュ保護が有効になっている場合、その下位のすべてのフォークが自動的にその保護を継承します。
プッシュ保護のデフォルト設定拡大
以下の検出器がデフォルトでプッシュ保護に含まれるようになりました。シークレットスキャンが有効なリポジトリ(無料の公開リポジトリを含む)では、これらのシークレットを含むコミットが自動的にブロックされます。
| プロバイダー | シークレットタイプ |
|---|---|
| Cloudflare | cloudflare_account_api_token |
| Cloudflare | cloudflare_global_user_api_key |
| Cloudflare | cloudflare_user_api_token |
| Figma | figma_scim_token |
google_gcp_api_key_bound_service_account | |
| Langchain | langsmith_license_key |
| Langchain | langsmith_scim_bearer_token |
| OpenVSX | openvsx_access_token |
| PostHog | posthog_personal_api_key |
まだデフォルトで有効になっていないパターンは、GitHub Secret ProtectionおよびGitHub Advanced Securityのお客様向けのプッシュ保護設定で構成可能です。
シークレットメタデータの改善
API経由でのカスタムパターンアラートの有効性設定
独自または内部シークレットを検出するカスタムパターンを作成する場合、自動有効性チェックにはない文脈を持つことがよくあります。つまり、フラグが立ったトークンが本物なのか、すでにローテーション済みなのかを知っているのです。以前は、APIでその判断を記録する方法がありませんでした。アラートを解決または却下することはできましたが、有効性は読み取り専用でした。
既存のPATCHエンドポイントを使用して、カスタムパターンのシークレットスキャンアラートのvalidityフィールドを手動で設定できるようになりました。
PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}アラートを「アクティブ」(確認済みのライブシークレット)、「非アクティブ」(脅威ではないと確認済み)に設定するか、nullを送信してオーバーライドをクリアします。設定した値は以下に即座に反映されます。
- GETアラートレスポンス
- アラート詳細UI(ヘッダーとタイムラインエントリ)
- Webhookペイロード
- 監査ログ
これはカスタムパターンのアラートのみに適用されます。標準的な有効性(GitHubサポートパターン向け)は、引き続きバリデーターによって自動的に設定され、このエンドポイント経由でのオーバーライドはできません。
シークレットスキャンキャンペーン向けのチームとトピックフィルター
シークレットスキャンキャンペーンを作成する際、GitHubチームとトピックでアラートセットをフィルタリングできるようになりました。これは、コードスキャンキャンペーンおよび標準(非キャンペーン)のシークレットスキャンアラートビューですでに利用可能なフィルターオプションと同じです。以前は、キャンペーンアラートのフィルターバーにこれら2つのオプションがなく、特定のチームが所有するリポジトリにキャンペーンの範囲を絞り込むことが困難でした。
アラートAPIにおけるプロバイダーフィールドとフィルタリング
シークレットスキャンアラートを基に自動化を構築している場合(例:プロバイダーごとに異なるチームにルーティングする、特定の統合セットからのアラートをレポートする)、以前はAPIでプロバイダーによるフィルタリングができず、プロバイダー名はレスポンスペイロードに含まれていませんでした。
アラートレスポンスに以下の2つの新フィールドが含まれるようになりました。
provider: プロバイダーの表示名(例: "Stripe")provider_slug: 機械判読に適した識別子(例: "stripe")。secret_typeと同じスラッグ規則に従います。
3つのリストエンドポイントすべて(/repos、/orgs、/enterprises)で、以下の2つの新クエリパラメータが利用可能です。
providers: これらのプロバイダーからのアラートのみを含めます(カンマ区切りのスラッグ)。exclude_providers: これらのプロバイダーからのアラートを除外します(カンマ区切りのスラッグ)。
providersとexclude_providersは相互排他的です。両方を使用すると422が返されます。providerフィールドはWebhookペイロードにも含まれます。
スキャン履歴と委任リストの改善
スキャン履歴APIにおけるAI検出
GitHubのAI駆動によるジェネリックシークレット検出は、リポジトリ全体でバックフィルスキャンを実行しますが、これまでこれらのスキャンはスキャン履歴APIに表示されませんでした。
スキャン履歴APIレスポンスにgeneric_secrets_backfill_scans配列が含まれるようになりました。これは既存のスキャンタイプ(backfill_scans、pattern_update_scansなど)と同じ構造に従います。
エンタープライズAPI: シークレットスキャンアラート却下リクエストの一覧表示
委任されたアラートクロージャーを使用するエンタープライズセキュリティチームは、一度に1つの組織だけでなく、エンタープライズ全体にわたる却下リクエストを監査およびレポートする方法を必要としていました。以前は、利用可能なエンドポイントは組織レベルだけでした。
以下の新エンドポイントが利用可能になりました。
GET /enterprises/{enterprise}/dismissal-requests/secret-scanningこれは、エンタープライズ内のすべての組織にわたるシークレットスキャンアラートの却下リクエストを一覧表示し、organization_name、reviewer、requester、time_period、request_statusによるフィルタリングとページネーションをサポートします。アクセスにはエンタープライズ所有者またはエンタープライズセキュリティマネージャー(ESM)権限が必要です。
詳細情報
シークレットスキャンの詳細とサポートされているシークレットの完全なリストは、ドキュメントをご覧ください。これらの改善は、皆様からのフィードバックによって形作られました。コミュニティディスカッションでご意見をお聞かせください。
投稿「Secret scanning pattern updates and product improvements」は、The GitHub Blogに最初に掲載されました。
原文を表示
This week, we’re rolling out several improvements to our detection coverage, APIs, and workflows. These improvements strengthen our continued investment in the developer experience of our secret scanning features. Built by developers, for developers.
Detection coverage
New Cloudflare detectors: Cloudflare is now a secret scanning partner.
Push protection
Forks for enterprise-managed users: User-owned forks in EMU enterprises now inherit push protection from their nearest licensed ancestor repository.
Push protection defaults expanded: Figma, GCP, Langchain, OpenVSX, and PostHog patterns now block commits containing matching secrets by default.
Secret metadata
Set validity on custom pattern alerts via API: You can now mark custom pattern alerts as active or inactive directly through the PATCH endpoint.
Team and Topic filters for secret scanning campaigns: Campaigns now support the same team and topic filter options as code scanning campaigns.
Provider field and filtering in the alerts API: Alert responses now include provider and provider_slug, with new providers and exclude_providers query parameters on all three list endpoints.
Scan history and delegation lists
AI-detected secrets in scan history API: AI-detected (generic secrets) backfill scans now appear in the scan history API response.
Enterprise API for listing dismissal requests: A new endpoint lets enterprise owners and security managers list secret scanning dismissal requests across all orgs in an enterprise.
Detectors added
Secret scanning now automatically detects the following new secret types in your repositories.
Provider
Secret type
Partner
User
Push protection
Cloudflare
cloudflare_account_api_token
✓
✓
✓ (default)
Cloudflare
cloudflare_global_user_api_key
✓
✓
✓ (default)
Cloudflare
cloudflare_user_api_token
✓
✓
✓ (default)
Partner secrets are automatically reported to the secret issuer when found in public repositories through the secret scanning partnership program. User secrets generate secret scanning alerts when found in public or private repositories. Learn more in our documentation about secret scanning.
Push protection improvements
EMU user-owned forks
In EMU enterprises, developers often fork organization repositories into their personal namespaces. Previously, push protection only applied to those forks if the fork itself had an active GHAS license, meaning the same secrets blocked in the org repository could slip through in a fork.
Push protection now walks the ancestor chain. When any repository in the fork hierarchy has push protection enabled, all forks beneath it automatically inherit that protection.
Push protection defaults expanded
The following detectors are now included in push protection by default. Repositories with secret scanning enabled, including free public repositories, will have commits containing these secrets automatically blocked.
Provider
Secret type
Cloudflare
cloudflare_account_api_token
Cloudflare
cloudflare_global_user_api_key
Cloudflare
cloudflare_user_api_token
Figma
figma_scim_token
google_gcp_api_key_bound_service_account
Langchain
langsmith_license_key
Langchain
langsmith_scim_bearer_token
OpenVSX
openvsx_access_token
PostHog
posthog_personal_api_key
Patterns that are not yet enabled by default remain configurable in your push protection settings for GitHub Secret Protection and GitHub Advanced Security customers.
Secret metadata improvements
Set validity on custom pattern alerts via API
When you create custom patterns to detect proprietary or internal secrets, you often have context that automated validity checks don’t: you know whether a flagged token is real or already rotated. Previously there was no way to record that judgment in the API. You could resolve or dismiss an alert, but validity was read-only.
You can now manually set the validity field on custom pattern secret scanning alerts using the existing PATCH endpoint:
PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}
Set an alert to active (confirmed live secret), inactive (confirmed not a threat), or clear your override by sending null. The value you set is reflected immediately in:
GET alert responses
The alert detail UI (header and timeline entry)
Webhook payloads
Audit logs
This is scoped to custom pattern alerts only. Standard validity (for GitHub-supported patterns) continues to be automatically set by our validators and is not overridable via this endpoint.
Team and Topic filters for secret scanning campaigns
When creating a secret scanning campaign, you can now filter the alert set by GitHub Team and Topic, the same filter options already available in code scanning campaigns and in the standard (non-campaign) secret scanning alert view. Previously, the campaign alert filter bar was missing these two options, making it harder to scope a campaign to repositories owned by a specific team.
Provider field and filtering in the alerts API
If you’re building automation on top of secret scanning alerts (e.g., routing them to different teams by provider, or reporting on alerts from a specific set of integrations) you previously had no way to filter by provider through the API, and the provider name wasn’t in the response payload.
The alert response now includes two new fields:
provider: The provider display name (e.g., "Stripe")
provider_slug: A machine-friendly identifier (e.g., "stripe") following the same slug convention as secret_type
Two new query parameters are available on all three list endpoints (/repos, /orgs, /enterprises):
providers: Include only alerts from these providers (comma-separated slugs).
exclude_providers: Exclude alerts from these providers (comma-separated slugs).
providers and exclude_providers are mutually exclusive—using both returns a 422. The provider field is also included in webhook payloads.
Scan history and delegation list improvements
AI detection in scan history API
GitHub’s AI-powered generic secret detection runs backfill scans across your repositories, but until now those scans didn’t show up in the scan history API.
The scan history API response now includes a generic_secrets_backfill_scans array, following the same structure as existing scan types (backfill_scans, pattern_update_scans, etc.).
Enterprise API: List secret scanning alert dismissal requests
Enterprise security teams that use delegated alert closures needed a way to audit and report on dismissal requests across their entire enterprise, not just one organization at a time. Previously, the only available endpoint was org-level.
A new endpoint is now available:
GET /enterprises/{enterprise}/dismissal-requests/secret-scanning
It lists secret scanning alert dismissal requests across all organizations in the enterprise, with support for filtering by organization_name, reviewer, requester, time_period, and request_status, plus pagination. Access requires enterprise owner or enterprise security manager (ESM) permissions.
Learn more
Learn more about secret scanning and see the full list of supported secrets in our documentation. These improvements were shaped by your feedback. Let us know what you think in the community discussion.
The post Secret scanning pattern updates and product improvements appeared first on The GitHub Blog.
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み