mcpField
S
security-secrets

security-secrets

github.com/igorwarzochaSecurity122112 installsUpdated 38w ago
Repository

About security-secrets

security-secrets is a security skill that provides regex patterns and scanning guidance for finding exposed credentials in codebases. It covers common secret types, priority files, CLI scans, and redaction rules.

Key features

  1. 01High-signal secret regex patterns
  2. 02Coverage of common credential types
  3. 03Priority file risk guidance
  4. 04CLI scanning commands
  5. 05Secret redaction format
  6. 06Immediate rotation guidance

Use cases

  1. 01Searching repositories for exposed credentials
  2. 02Prioritizing files during a security review
  3. 03Redacting findings in an audit report

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/igorwarzocha/opencode-workflows --skill security-secrets

After installing, type/security-secretsin Claude Code to confirm it loaded.

Bundled filesscripts/scan-all.shscripts/scan.sh

Details

From the project README

High-signal regex patterns for detecting secrets in codebases.

High-Signal Regex Patterns

Secret TypePatternNotes
AWS Access KeyAKIA[0-9A-Z]{16}Always 20 chars, starts AKIA
AWS Secret(?i)aws(.{0,20})?['"][0-9a-zA-Z/+]{40}['"]40 chars base64-ish
Google API KeyAIza[0-9A-Za-z\-_]{35}39 chars total
Google OAuth[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.comClient ID
Google Service Account"type":\s*"service_account"In JSON files
GitHub Tokengh[pousr]_[A-Za-z0-9_]{36,}ghp_/gho_/ghu_/ghs_/ghr_
GitHub PAT (fine-grained)github_pat_[A-Za-z0-9_]{22,}Newer format
GitLab Tokenglpat-[A-Za-z0-9\-]{20,}Personal access token
Stripe Secret`sk_(livetest)_[0-9a-zA-Z]{24,}`
Stripe Restricted`rk_(livetest)_[0-9a-zA-Z]{24,}`
Stripe Publishable`pk_(livetest)_[0-9a-zA-Z]{24,}`
Slack Bot Tokenxoxb-[A-Za-z0-9-]+Bot token
Slack User Tokenxoxp-[A-Za-z0-9-]+User token
Slack Workflow Tokenxwfp-[A-Za-z0-9-]+Workflow token
Slack App Tokenxapp-[A-Za-z0-9-]+App-level token
Slack Webhookhttps://hooks\.slack\.com/services/T[A-Z0-9]+/B[A-Z0-9]+/[a-zA-Z0-9]+
Discord Token[MN][A-Za-z\d]{23,}\.[\w-]{6}\.[\w-]{27}Bot token
Discord Webhookhttps://discord\.com/api/webhooks/[0-9]+/[A-Za-z0-9_-]+
OpenAI Keysk-[A-Za-z0-9]{48}API key
Anthropic Keysk-ant-[A-Za-z0-9\-]{32,}API key
TwilioSK[a-z0-9]{32}API key SID
SendGridSG\.[a-zA-Z0-9]{22}\.[a-zA-Z0-9]{43}API key
Mailgunkey-[0-9a-zA-Z]{32}API key
Mailchimp[a-f0-9]{32}-us[0-9]{1,2}API key
Firebase(?i)firebase[a-z0-9\-]+\.firebaseio\.comDatabase URL
SupabaseeyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*JWT (check context)
Heroku[hH]eroku.*[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}API key
NPM Tokennpm_[A-Za-z0-9]{36}Publish token
PyPI Tokenpypi-[A-Za-z0-9_-]{50,}Upload token
Private Key`-----BEGIN (RSAEC
Database URL`(?i)(postgresmysql
Password in URL[a-zA-Z]{3,15}://[^/\\:@]+:[^/\\:@]+@.{1,100}Basic auth
JWT Secret`(?i)(jwt[_-]?secrettoken[_-]?secret)['"]?\s*[:=]\s*['"][^'"]+['"]`
Generic Secret`(?i)(passwordpasswd

CLI Scanning Commands

# Quick grep scan (fast, high signal)
rg -n "(AKIA[0-9A-Z]{16}|sk_(live|test)_|rk_(live|test)_|pk_(live|test)_|xox[baprs]-|xapp-|xwfp-|gh[pousr]_|github_pat_)" .
rg -n "BEGIN (RSA|EC|OPENSSH|DSA|PGP) PRIVATE KEY" .
rg -n "(?i)(api[_-]?key|secret|token|password)\s*[:=]\s*['\"][^'\"]{8,}" .

# Dedicated scanners (thorough)
gitleaks detect --source . --redact --no-git
semgrep scan --config p/secrets --error
trufflehog filesystem . --only-verified

<priority_files>

Files to Prioritize

File PatternRisk LevelWhy
.env*CRITICALOften contains all secrets
*config*.js/ts/jsonHIGHApp configuration
*secret*, *credential*HIGHNamed suspiciously
docker-compose*.ymlHIGHDB passwords, service creds
.github/workflows/*.ymlHIGHCI/CD secrets
*test*, *spec*, *fixture*MEDIUMTest data with real creds
*.pem, *.key, *.p12CRITICALPrivate keys

</priority_files>

Redaction Format

When reporting secrets, MUST always redact:

Original: AKIAIOSFODNN7EXAMPLE
Redacted: AKIA****...****MPLE

Original: sk_test_XXXXYYYYZZZZ11112222
Redacted: sk_****...****2222

Show first 4 + last 4 characters only. MUST instruct immediate rotation.

Comments

Markdown supported