ワンクリックで
rotation-and-revocation-analysis
How to determine if a secret has been rotated, revoked, expired, or replaced.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
How to determine if a secret has been rotated, revoked, expired, or replaced.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Effective usage of GitHub API tools for fetching secret scanning alerts and locations.
Guidelines for setting up isolated testing environments for secret validation scripts.
Techniques for analyzing code context around secret locations to understand usage and intent.
Strategies for cloning repositories with full history into the workspace for analysis.
Use the validate-secrets tool for deterministic secret validation when a matching validator is available.
Verification guide specific to HTTP Basic Authentication credentials.
| name | rotation-and-revocation-analysis |
| description | How to determine if a secret has been rotated, revoked, expired, or replaced. |
| agent | challenger |
| required | true |
This skill helps identify when a secret has been invalidated through rotation, revocation, expiration, or replacement — even when the analysis report missed these signals.
A common failure mode: the analysis concludes TRUE_POSITIVE when the secret was already rotated. The security team wastes time on a fixed issue. Conversely, FALSE_POSITIVE when the secret was rotated but then recreated.
Use gh_secret_scanning_alert to get current alert metadata:
state: "resolved" with resolution: "revoked" strongly suggests
the secret was invalidatedpush_protection_bypassed: true may indicate intentional commit of
a test/non-production secretlocations across branches may indicate historical exposureCompare the alert state against the report's claims.
Look for rotation evidence in the repository:
# Search for rotation commits
git log --oneline --all --grep="rotate" {{workspace_path}}/repo/
git log --oneline --all --grep="revoke" {{workspace_path}}/repo/
git log --oneline --all --grep="invalidate" {{workspace_path}}/repo/
# Check if the secret-containing file was modified recently
git log -p --follow -- path/to/secret/file {{workspace_path}}/repo/
Key signals:
Different secret types have rotation indicators:
| Secret Type | Rotation Signal |
|---|---|
| AWS Access Key | Key ID format shows age (older keys start with 'AKIA', newer with 'AKID') |
| GitHub Token | ghp_ prefix is classic, github_pat_ is fine-grained (newer) |
| Slack Token | Check /auth.test endpoint for ok: false, error: "invalid_auth" |
| Database | Connection refused vs auth failed distinguishes network vs credential |
| API Keys | 401 with "expired" or "revoked" in body |
Some secrets have built-in expiration:
exp claimexpires_in or expires_at in responseIf the analysis didn't check expiration, this is an evidence gap.
Did the analysis test the CURRENT secret or a historical one?
# Find all versions of the secret
git log -p --all -S 'secret_pattern' {{workspace_path}}/repo/
When reviewing a report, ask:
If the answer to any is "no," document it as an evidence gap.
Refute a TRUE_POSITIVE if:
resolution: "revoked" AND testing confirms
the secret no longer worksexp in past, cert expired)Refute a FALSE_POSITIVE if: