원클릭으로
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: