|
| 1 | +""" |
| 2 | +Secret detection patterns for redaction. |
| 3 | +
|
| 4 | +Hyperscan-compatible: no backrefs, no lookahead/lookbehind. |
| 5 | +Patterns match the secret value only (no surrounding context). |
| 6 | +
|
| 7 | +Sources: |
| 8 | +- mazen160/secrets-patterns-db (high-confidence, rules-stable) |
| 9 | +- gitleaks/gitleaks config |
| 10 | +- Yelp/detect-secrets plugins |
| 11 | +""" |
| 12 | + |
| 13 | +# (pattern, id) — ids must be unique |
| 14 | +PATTERNS: list[tuple[bytes, int]] = [ |
| 15 | + # OpenAI (detect-secrets, custom) |
| 16 | + (br"sk-proj-[a-zA-Z0-9_-]{20,}", 0), |
| 17 | + (br"sk-[a-zA-Z0-9_-]{20,}", 1), |
| 18 | + (br"sk-[A-Za-z0-9-_]*[A-Za-z0-9]{20}T3BlbkFJ[A-Za-z0-9]{20}", 2), |
| 19 | + # AWS (secrets-patterns-db, gitleaks) |
| 20 | + (br"AKIA[0-9A-Z]{16}", 3), |
| 21 | + (br"ASIA[0-9A-Z]{16}", 4), |
| 22 | + (br"da2-[a-z0-9]{26}", 5), |
| 23 | + # GitHub (detect-secrets) |
| 24 | + (br"(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9_]{36}", 6), |
| 25 | + # Stripe (secrets-patterns-db) |
| 26 | + (br"sk_live_[0-9a-zA-Z]{24}", 7), |
| 27 | + (br"rk_live_[0-9a-zA-Z]{24}", 8), |
| 28 | + # Slack (detect-secrets — flexible format) |
| 29 | + (br"xox(?:a|b|p|o|s|r)-(?:\d+-)+[a-zA-Z0-9]+", 9), |
| 30 | + (br"https://hooks\.slack\.com/services/T[a-zA-Z0-9_]+/B[a-zA-Z0-9_]+/[a-zA-Z0-9_]+", 10), |
| 31 | + # SendGrid (detect-secrets) |
| 32 | + (br"SG\.[a-zA-Z0-9_-]{22}\.[a-zA-Z0-9_-]{43}", 11), |
| 33 | + # Discord (detect-secrets) |
| 34 | + (br"[MNO][a-zA-Z0-9_-]{23,25}\.[a-zA-Z0-9_-]{6}\.[a-zA-Z0-9_-]{27}", 12), |
| 35 | + # Google (secrets-patterns-db) |
| 36 | + (br"AIza[0-9A-Za-z_-]{35}", 13), |
| 37 | + (br"ya29\.[0-9A-Za-z_-]+", 14), |
| 38 | + # Twilio (secrets-patterns-db) |
| 39 | + (br"SK[0-9a-fA-F]{32}", 15), |
| 40 | + # Telegram (secrets-patterns-db) |
| 41 | + (br"[0-9]+:AA[0-9A-Za-z_-]{33}", 16), |
| 42 | + # Mailgun, Mailchimp (secrets-patterns-db) |
| 43 | + (br"key-[0-9a-zA-Z]{32}", 17), |
| 44 | + (br"[0-9a-f]{32}-us[0-9]{1,2}", 18), |
| 45 | + # Square (secrets-patterns-db) |
| 46 | + (br"sq0atp-[0-9A-Za-z_-]{22}", 19), |
| 47 | + (br"sq0csp-[0-9A-Za-z_-]{43}", 20), |
| 48 | + # Private keys (secrets-patterns-db, detect-secrets) |
| 49 | + (br"-----BEGIN RSA PRIVATE KEY-----", 21), |
| 50 | + (br"-----BEGIN DSA PRIVATE KEY-----", 22), |
| 51 | + (br"-----BEGIN EC PRIVATE KEY-----", 23), |
| 52 | + (br"-----BEGIN OPENSSH PRIVATE KEY-----", 24), |
| 53 | + (br"-----BEGIN PGP PRIVATE KEY BLOCK-----", 25), |
| 54 | + (br"-----BEGIN PRIVATE KEY-----", 26), |
| 55 | +] |
0 commit comments