pattern_requirements for rules — Post-regex character-class gating to cut false positives without lookarounds. Authors can now require minimum counts of digits, uppercase, lowercase, and special characters, with an optional custom special-char set.

Why: Hyperscan doesn’t support lookaheads/behinds, so many “must contain X and Y” checks had to be baked into the regex (hurting readability) or were impossible. pattern_requirements applies lightweight, in-memory checks after a match is found, keeping patterns fast and clean.
This commit is contained in:
Mick Grove 2025-11-04 13:55:31 -05:00
commit 0f953f59a5
209 changed files with 1267 additions and 299 deletions

View file

@ -2,6 +2,8 @@
All notable changes to this project will be documented in this file.
## [Unrelease]
- pattern_requirements for rules — Post-regex character-class gating to cut false positives without lookarounds. Authors can now require minimum counts of digits, uppercase, lowercase, and special characters, with an optional custom special-char set. Why? Hyperscan doesnt support lookaheads/behinds, so many "must contain X and Y" checks had to be baked into the regex (hurting readability) or were impossible. `pattern_requirements` applies lightweight, in-memory checks after a match is found, keeping patterns fast and clean.
## [v1.61.0]
- Fixed local filesystem scans to keep `open_path_as_is` enabled when opening Git repositories and only disable it for diff-based scans.
- Created Linux and Windows specific installer script

View file

@ -6,11 +6,13 @@ rules:
\b
adobe
(?:.|[\n\r]){0,32}?
\b
\b
(
[A-F0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
examples:
- adobeKey = 1a2b3c4d5e6f7890abcdef1234567890

View file

@ -3,11 +3,14 @@ rules:
id: kingfisher.age.1
pattern: |
(?xi)
\b
(
age1[0-9a-z]{58}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -21,11 +24,9 @@ rules:
id: kingfisher.age.2
pattern: |
(?xi)
\b
(
AGE-SECRET-KEY-1[0-9A-Z]{58}
)
\b
min_entropy: 3.3
confidence: medium
examples:

View file

@ -19,6 +19,10 @@ rules:
[0-9a-f]{12}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.2
confidence: medium
examples:

View file

@ -9,7 +9,11 @@ rules:
(
[A-Z0-9-]{40}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 4.5
confidence: medium
examples:

View file

@ -10,7 +10,11 @@ rules:
\.
[a-z0-9]{62,66}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -37,7 +41,6 @@ rules:
id: kingfisher.airtable.2
pattern: |
(?xi)
\b
(
[A-Z0-9]+\.v1\.[A-Z0-9_-]+\.[a-f0-9]+
)

View file

@ -9,6 +9,11 @@ rules:
(
[a-z0-9/+=]{372}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:

View file

@ -5,11 +5,13 @@ rules:
(?xi)
algolia
(?:.|[\n\r]){0,32}?
\b
(
[a-z0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:
@ -38,11 +40,12 @@ rules:
(?xi)
algolia
(?:.|[\n\r]){0,16}?
\b
(
[A-Z0-9]{10}
)
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 2.0
visible: false
confidence: medium

View file

@ -3,11 +3,14 @@ rules:
id: kingfisher.alibabacloud.1
pattern: |
(?xi)
\b
(
LTAI[a-z0-9]{17,21}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 4.0
confidence: medium
visible: false
@ -21,11 +24,9 @@ rules:
\b
alibaba
(?:.|[\n\r]){0,32}?
\b
(
[a-z0-9]{30}
)
\b
min_entropy: 4.2
confidence: medium
examples:

View file

@ -10,15 +10,16 @@ rules:
-
[\w\-]{93}
AA
)
\b
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
- sk-ant-api668-Clm512odot9WDD7itfUU9R880nefA1EtYZDbpE-C9b0XQEWpqFKf9DQUo03vOfXl16oSmyar1CLF1SzV3YzpZJ6bahcpLAA
categories:
- api
- secret
references:
- https://docs.anthropic.com/claude/reference/authentication
validation:

View file

@ -18,8 +18,12 @@ rules:
[0-9a-z]{4}
-
[0-9a-z]{12}
)
\b
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -3,11 +3,14 @@ rules:
id: kingfisher.apify.1
pattern: |
(?xi)
\b
(
apify_api_[A-Z0-9]{34,38}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
confidence: medium
min_entropy: 3.5
validation:

View file

@ -8,6 +8,10 @@ rules:
AKC[A-Z0-9]{64,74}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -10,7 +10,9 @@ rules:
(
[0-9]{16}
)
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -30,7 +32,11 @@ rules:
(
[a-z0-9]{30,40}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:
@ -54,7 +60,9 @@ rules:
[a-z0-9]{32,64}
)?
)
\b
\b
pattern_requirements:
min_digits: 4
min_entropy: 3.5
confidence: medium
examples:

View file

@ -11,6 +11,9 @@ rules:
[0-9a-z]{32}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 1
min_entropy: 3.0
confidence: medium
examples:

View file

@ -10,7 +10,10 @@ rules:
(
[a-z0-9]{24}
)
\b
\b
pattern_requirements:
min_digits: 2
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -10,7 +10,10 @@ rules:
(
[a-z0-9_-]{32,60}
)
\b
\b
pattern_requirements:
min_digits: 2
min_lowercase: 1
min_entropy: 3.5
confidence: medium
visible: false

View file

@ -6,6 +6,10 @@ rules:
(
(?:sc|ext|scauth|authress)_[a-z0-9]{5,30}\.[a-z0-9]{4,6}\.acc[_-][a-z0-9-]{10,32}\.[a-z0-9+/_=-]{30,120}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 1
confidence: medium
min_entropy: 4.0
validation:

View file

@ -3,12 +3,14 @@ rules:
id: kingfisher.aws.1
pattern: |
(?xi)
\b
\b
(
(?:A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)
[2-7A-Z]{16}
)
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.2
visible: false
confidence: medium
@ -37,6 +39,8 @@ rules:
([A-Za-z0-9/+]{40})
\b
)
pattern_requirements:
min_digits: 2
min_entropy: 4.5
confidence: medium
examples:
@ -60,6 +64,8 @@ rules:
- name: AWS Session Token
id: kingfisher.aws.4
pattern: '(?i)(?:aws.?session|aws.?session.?token|aws.?token)["''`]?\s{0,30}(?::|=>|=)\s{0,30}["''`]?([a-z0-9/+=]{16,200})[^a-z0-9/+=]'
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -90,6 +90,8 @@ rules:
[A-Z0-9+/]{42}\+ACR[A-Z0-9]{6}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 4.0
validation:

View file

@ -24,6 +24,8 @@ rules:
[a-z0-9]{75,76}AZDO[a-z0-9]{4,5}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3
confidence: medium
examples:

View file

@ -14,6 +14,9 @@ rules:
[a-f0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -12,6 +12,10 @@ rules:
[0-9A-Z]{52}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -33,13 +33,25 @@ rules:
(?:.|[\n\r]){0,128}?
(?:SECRET|PRIVATE|ACCESS|KEY|TOKEN)
(?:.|[\n\r]){0,128}?
["':\s=}\]\)]
(
[A-Z0-9+\\/-]{86,88}={0,2}
(?:
[A-Z0-9+\-]{86,88}={1,2}
)
|
(?:
[A-Z0-9+\-]{86,88}\b
)
)
pattern_requirements:
min_digits: 2
min_uppercase: 2
min_lowercase: 2
min_entropy: 4.0
confidence: medium
examples:
- Azure AccountKey=Xy9aB8cD7eF6gH5iJ4kL3mN2oP1qR0sT9uV8wX7yZ6aB5cD4eF3gH2iJ1kL0mN9oP8qR7sT6uV5wX4yZ3aB2cD1eF0gH9iJ8kL7mN6oP5q==\
- Azure AccountKey=Xy9aB8cD7eF6gH5iJ4kL3mN2oP1qR0sT9uV8wX7yZ6aB5cD4eF3gH2iJ1kL0mN9oP8qR7sT6uV5wX4yZ3aB2cD1q
- Azure AccountKey=Xy9aB8cD7eF6gH5iJ4kL3mN2oP1qR0sT9uV8wX7yZ6aB5cD4eF3gH2iJ1kL0mN9oP8qR7sT6uV5wX4yZ3aB2cD1g==\
validation:
type: AzureStorage
depends_on_rule:

View file

@ -10,7 +10,9 @@ rules:
(
[a-z0-9_-]{25}
)
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
references:

View file

@ -13,6 +13,10 @@ rules:
[A-Za-z0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.4
confidence: medium
examples:

View file

@ -9,7 +9,12 @@ rules:
\b
(
b_[A-Z0-9=_\\/\\\-+]{44}
)
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.0
confidence: medium
examples:

View file

@ -8,9 +8,10 @@ rules:
(?:.|[\n\r]){0,16}?
(?:client|id)
(?:.|[\n\r]){0,16}?
\b
([a-z0-9]{30,40})
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -43,6 +44,9 @@ rules:
(
[a-z0-9+_\-+]{44}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -8,11 +8,13 @@ rules:
(?:.|[\n\r]){0,32}?
(?:SECRET|PRIVATE|ACCESS|KEY|TOKEN)
(?:.|[\n\r]){0,32}?
\b
(
[a-f0-9]{40}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 2
confidence: medium
min_entropy: 3.0
validation:

View file

@ -6,6 +6,10 @@ rules:
https://(?:fra1\.|lon1\.|ny3\.|sgp1\.|blr1\.)*blynk\.cloud/external/api/[A-Z0-9/]*\?token=
([A-Z0-9_\-]{32})
&
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -21,6 +25,10 @@ rules:
-H\s*"Authorization:\s*Bearer\s*
([A-Z0-9_\-]{40})
"
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -35,6 +43,10 @@ rules:
-H\s*"Authorization:\s*Bearer\s*
([A-Z0-9_\-]{40})
"[\s\\]*https://(?:fra1\.|lon1\.|ny3\.|sgp1\.|blr1\.)*blynk\.cloud/api
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -50,6 +62,10 @@ rules:
(oa2-client-id_[A-Z0-9_\-]{32})
(?: : | &client_secret= )
([A-Z0-9_\-]{40})
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -66,6 +82,10 @@ rules:
(oa2-client-id_[A-Z0-9_\-]{32})
:([A-Z0-9_\-]{40})
[\s\\]*https://(fra1\.|lon1\.|ny3\.|sgp1\.|blr1\.)*blynk\.cloud/oauth2
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:

View file

@ -3,11 +3,13 @@ rules:
id: kingfisher.buildkite.1
pattern: |
(?xi)
\b
(
bkua_[a-z0-9]{40}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -3,11 +3,13 @@ rules:
id: kingfisher.cerebras.1
pattern: |
(?xi)
\b
(
csk-[a-z0-9]{48}
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 2
confidence: medium
min_entropy: 3.0
validation:

View file

@ -20,7 +20,9 @@ rules:
_
[a-z0-9]{40}
)
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -56,7 +58,10 @@ rules:
(
[a-f0-9]{40}
)
\b
\b
pattern_requirements:
min_digits: 2
min_lowercase: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -5,11 +5,12 @@ rules:
(?xi)
meraki
(?:.|[\n\r]){0,32}?
\b
(
[0-9a-f]{40}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -11,6 +11,8 @@ rules:
[0-9a-f]{32,36}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.0
confidence: medium
examples:

View file

@ -13,6 +13,8 @@ rules:
[0-9a-z_]{35}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
4b1d[a-z0-9]{38}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.5
examples:
@ -43,11 +45,11 @@ rules:
(?:.|[\n\r]){0,16}?
(?:ID|USER)
(?:.|[\n\r]){0,16}?
\b
(
[a-z0-9]{20}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
visible: false
min_entropy: 3.0

View file

@ -10,9 +10,11 @@ rules:
(?:.|[\n\r]){0,16}?
\b
(
[a-zA-Z0-9_-]{3,}
[a-z0-9_-]{3,}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 1.5
visible: false
@ -28,6 +30,8 @@ rules:
CLOJARS_[a-z0-9]{60}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 4.0
examples:

View file

@ -12,7 +12,11 @@ rules:
(
[a-z0-9_-]{38,42}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:
@ -47,8 +51,9 @@ rules:
(
v1\.0-[a-z0-9._-]{160,}
)
["'`]?
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 4.5
confidence: medium
examples:
@ -58,9 +63,6 @@ rules:
references:
- https://developers.cloudflare.com/api/keys/
- https://developers.cloudflare.com/fundamentals/api/get-started/keys/
categories:
- api
- secret
validation:
type: Http
content:

View file

@ -11,8 +11,10 @@ rules:
\b
(
[a-z0-9]{20,24}
)
\b
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -12,6 +12,9 @@ rules:
(
[0-9A-Z]{20,24}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -5,10 +5,13 @@ rules:
(?xi)
(?: CODECLIMATE| CC_TEST_REPORTER_ID)
(?:.|[\n\r]){0,64}?
\b
(
[a-f0-9]{64}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -8,10 +8,13 @@ rules:
(?:.|[\n\r]){0,32}?
(?:SECRET|PRIVATE|ACCESS|KEY|TOKEN)
(?:.|[\n\r]){0,32}?
\b
(
[A-Z0-9-]{36}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.5
validation:

View file

@ -6,10 +6,13 @@ rules:
\b
cohere
(?:.|[\n\r]){0,16}?
\b
(
[A-Z0-9]{40}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -10,9 +10,11 @@ rules:
(?:.|[\n\r]){0,16}?
\b
(
[a-zA-Z-0-9]{32}
[a-z-0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
examples:
- coinbase_token = 32iAkQCcHHYxXGx20VogBZoj27PC1ouI

View file

@ -10,6 +10,8 @@ rules:
[A-Z0-9]{16}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3
confidence: medium
visible: false
@ -30,6 +32,7 @@ rules:
(
[A-Z0-9\+/]{64}
)
\b
min_entropy: 3.3
confidence: medium
examples:

View file

@ -10,9 +10,12 @@ rules:
(?:.|[\n\r]){0,32}?
\b
(
[a-zA-Z0-9_-]{43,45}
[A-Z0-9_-]{43,45}
)
\b
pattern_requirements:
min_digits: 2
min_special_chars: 1
confidence: medium
min_entropy: 4.0
validation:
@ -42,11 +45,11 @@ rules:
id: kingfisher.contentful.2
pattern: |
(?xi)
\b
(
CFPAT-[A-Z0-9_-]{43}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.5
validation:

View file

@ -1,7 +1,18 @@
rules:
- name: Coze Personal Access Token
id: kingfisher.coze.1
pattern: '(?i)\b(pat_[a-zA-Z0-9]{64})\b'
pattern: |
(?xi)
\b
coze
(?:.|[\n\r]){0,32}?
\b
(
pat_[A-Z0-9]{64}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 5.0
validation:

View file

@ -8,6 +8,8 @@ rules:
cio[A-Z0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -2,12 +2,17 @@ rules:
- name: Databricks API token
id: kingfisher.databricks.1
pattern: |
(?xi)
(?xi)
\b
(
dapi
[a-f0-9]{32}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:

View file

@ -13,6 +13,8 @@ rules:
[a-z0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:
@ -47,11 +49,13 @@ rules:
(?:.|[\n\r]){0,64}?
(?:SECRET|PRIVATE|ACCESS|KEY|TOKEN)
(?:.|[\n\r]){0,16}?
\b
(
[a-z0-9]{40}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:

View file

@ -6,11 +6,13 @@ rules:
\b
deepgram
(?:.|[\n\r]){0,32}?
\b
\b
(
[0-9a-f]{40}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -6,8 +6,10 @@ rules:
\b
(
sk-[a-f0-9]{32}
)
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.7
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
odt_[A-Z0-9]{32,255}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -11,6 +11,8 @@ rules:
[0-9a-z]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.0
examples:
- diffbot_key = a7424adbafc4624e61482d0f60e43016

View file

@ -9,6 +9,8 @@ rules:
[a-f0-9]{64}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:
@ -33,12 +35,10 @@ rules:
id: kingfisher.digitalocean.2
pattern: |
(?x)
\b
(
dor_v1_
[a-f0-9]{64}
)
\b
min_entropy: 3.3
confidence: medium
examples:

View file

@ -10,6 +10,9 @@ rules:
(
[0-9a-z_\-]{68}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -32,7 +35,6 @@ rules:
id: kingfisher.discord.2
pattern: |
(?xi)
\b
(
[MNO][A-Z0-9_-]{23}\.[A-Z0-9_-]{6}\.[A-Z0-9_-]{27}
)
@ -61,14 +63,11 @@ rules:
id: kingfisher.discord.3
pattern: |
(?xi)
\b
(?:discord|botid|bot_id)
(?:.|[\n\r]){0,64}?
\b
(
\d{17,19}
)
\b
min_entropy: 3.5
visible: false
confidence: medium

View file

@ -5,7 +5,6 @@ rules:
(?x)
[DJANGO]\w{0,8}SECRET_KEY
.{1,16}?
\b
(
[A-Za-z0-9*!$@\#&_%^-]{45,55}
)

View file

@ -12,6 +12,8 @@ rules:
\}
[^}]*?
\}
pattern_requirements:
min_digits: 2
min_entropy: 2.0
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
dckr_pat_[A-Z0-9_-]{27}
)
(?: $ | [^A-Z0-9_-] )
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -4,8 +4,12 @@ rules:
pattern: |
(?xi)
\b
(dp\.ct\.[A-Z0-9]{40,44})
(
dp\.ct\.[A-Z0-9]{40,44}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -15,6 +15,8 @@ rules:
[a-f0-9]{32,64}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -4,11 +4,12 @@ rules:
pattern: |
(?xi)
\b
sl\.
(
[A-Z0-9\-\_]{130,152}
sl\.[A-Z0-9\-\_]{130,152}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
duffel_(?:test|live)_[a-z0-9_\-=]{43}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.2
confidence: medium
examples:

View file

@ -12,6 +12,8 @@ rules:
[A-Z0-9]{64}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -6,9 +6,11 @@ rules:
\b
(
EZ[AT]K
[A-Za-z0-9]{54}
[A-Z0-9]{54}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -2,13 +2,15 @@ rules:
- name: ElevenLabs API Key
id: kingfisher.elevenlabs.1
pattern: |
(?xi)
\b
(?xi)
\b
(
sk_
[0-9a-f]{48}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -11,8 +11,10 @@ rules:
\b
(
\d{15}
)
\b
)
\b
pattern_requirements:
min_digits: 15
min_entropy: 2.0
visible: false
confidence: medium
@ -37,6 +39,8 @@ rules:
- " var fbApiKey = '0278fc1adf6dc1d82a156f306ce2c5cc';"
- ' fbApiKey: "171e84fd57f430fc59afa8fad3dbda2a",'
- '"facebook appSecret = "ce3f9f0362bbe5ab01dfc8ee565e4372"'
pattern_requirements:
min_digits: 2
validation:
type: Http
content:
@ -69,9 +73,12 @@ rules:
(?:access_token|access[\s-]token)
(?:.|[\n\r]){0,32}?
)?
(
EAACEdEose0cBA[A-Z0-9]{20,}
)
\b
(EAACEdEose0cBA[A-Z0-9]{20,})
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -13,6 +13,8 @@ rules:
[a-z0-9_-]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
figd_[A-Z0-9_-]{38,42}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -36,14 +38,14 @@ rules:
(?xi)
figma
(?:.|[\n\r]){0,32}?
\b
(
[0-9A-F]{4}
-[0-9A-F]{8}
(?:-[0-9A-F]{4}){3}
-[0-9A-F]{12}
)
\b
pattern_requirements:
min_digits: 2
examples:
- "--header='X-Figma-Token: 1394-0ca7a5be-8e22-40ee-8c40-778d41ab2313'"
references:

View file

@ -14,6 +14,8 @@ rules:
\.[A-Z0-9]{20}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -13,6 +13,8 @@ rules:
[a-f0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -11,6 +11,8 @@ rules:
[a-z0-9]{20}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.0
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
fc-[a-f0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
validation:

View file

@ -8,6 +8,8 @@ rules:
fw_[A-Z0-9]{24}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.5
validation:

View file

@ -13,6 +13,8 @@ rules:
[a-f0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
validation:
@ -43,11 +45,11 @@ rules:
(?:.|[\n\r]){0,32}?
(?:OAUTH|ACCESS|TOKEN)?
(?:.|[\n\r]){0,32}?
\b
(
[a-f0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
validation:

View file

@ -8,6 +8,8 @@ rules:
FlyV1\s[A-Za-z0-9=_\-,/+]{100,}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 4.0
validation:

View file

@ -7,7 +7,11 @@ rules:
(
fio-u-(?:[A-Z0-9_-]{16}){4}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -7,6 +7,9 @@ rules:
(
fio-u-[a-z0-9\-_=]{64}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -11,6 +11,8 @@ rules:
[a-z0-9]{64}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
flp_[A-Z0-9]{46}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
validation:

View file

@ -15,6 +15,8 @@ rules:
"auth_provider_x509_cert_url":\s*".+?"
(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*
\}
pattern_requirements:
min_digits: 2
min_entropy: 4.5
confidence: high
examples:
@ -48,9 +50,13 @@ rules:
[=:]
\s{0,8}
["']?
([0-9a-z]{35,40})
(
[0-9a-z]{35,40}
)
["']?
\b
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -5,9 +5,12 @@ rules:
(?xi)
secret
.{0,20}
(
[0-9a-z]{32,64}
)
\b
([0-9a-z]{32,64})
\b
pattern_requirements:
min_digits: 4
min_entropy: 3.3
confidence: low
examples:
@ -18,9 +21,12 @@ rules:
(?xi)
(?: api_key | apikey | access_key | accesskey )
(?:.|[\n\r]){0,8}?
(
[0-9a-z][0-9a-z\-._/+]{30,62}[0-9a-z]
)
\b
([0-9a-z][0-9a-z\-._/+]{30,62}[0-9a-z])
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: low
examples:
@ -31,7 +37,6 @@ rules:
pattern: |
(?xi)
(?: username | user)
\b
(?:.|[\n\r]){0,16}?
(?: password | pass )
(?:.|[\n\r]){0,16}?
@ -66,7 +71,6 @@ rules:
pattern: |
(?xi)
(?: username | user)
\b
(?:.|[\n\r]){0,16}?
(?: password | pass )
(?:.|[\n\r]){0,16}?
@ -89,7 +93,6 @@ rules:
pattern: |
(?xi)
password
\b
(?:.|[\n\r]){0,16}?
["']
([^$<%@.,\s'"(){}&/\#\-][^\s'"(){}/]{4,}) (?# password )
@ -130,7 +133,6 @@ rules:
id: kingfisher.generic.6
pattern: |
(?xi)
\b
(
blink\d{3,6}
|correcthorsebatterystaple\d{0,6}
@ -144,7 +146,6 @@ rules:
|qwerty\d{3,6}
|trustno\d{1,6}
)
\b
min_entropy: 1.0
confidence: low
examples:
@ -158,7 +159,6 @@ rules:
pattern: |
(?xi)
(?: db_user | db_USERNAME | db_name)
\b
(?:.|[\n\r]){0,8}?
["'] ([^"']{5,40}) ["']
(?:.|[\n\r]){0,32}?
@ -197,7 +197,6 @@ rules:
id: kingfisher.generic.9
pattern: |
(?xi)
\b
(
(?P<USER> [a-z0-9._-]+ \+ [a-z0-9._-]+ )
:

View file

@ -7,6 +7,8 @@ rules:
new \s+ Gitalk \s* \( \s* \{ \s*
clientID: \s* '([a-f0-9]{20})', \s*
clientSecret: \s* '([a-f0-9]{40})',
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
references:

View file

@ -18,6 +18,9 @@ rules:
)
)
\b
pattern_requirements:
min_digits: 2
min_lowercase: 2
min_entropy: 3.5
examples:
- "GITHUB_KEY=ghp_XIxB7KMNdAr3zqWtQqhE94qglHqOzn1D1stg"
@ -57,8 +60,9 @@ rules:
(
gho_
[A-Z0-9]{36}
)
\b
)
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -90,11 +94,9 @@ rules:
id: kingfisher.github.3
pattern: |
(?xi)
\b
(
(?:ghu|ghs)_[A-Z0-9]{36}
)
\b
examples:
- ' "token": "ghu_16C7e42F292c69C2E7C10c838347Ae178B4a",'
- |
@ -126,11 +128,9 @@ rules:
id: kingfisher.github.4
pattern: |
(?xi)
\b
(
ghr_[A-Z0-9]{76}
)
\b
examples:
- ' "refresh_token": "ghr_1B4a2e77838347a7E420ce178F2E7c6912E169246c3CE1ccbF66C46812d16D5B1A9Dc86A1498",'
references:
@ -210,11 +210,9 @@ rules:
id: kingfisher.github.7
pattern: |
(?xi)
\b
(
github_pat_[0-9A-Z_]{82}
)
\b
examples:
- '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'
validation:

View file

@ -2,12 +2,15 @@ rules:
- name: GitLab Private Token
id: kingfisher.gitlab.1
pattern: |
(?xi)
\b
(?xi)
\b
(
glpat-
[0-9A-Z_-]{20}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:
@ -42,6 +45,8 @@ rules:
GR1348941[0-9A-Z_-]{20}
)
\b
pattern_requirements:
min_digits: 2
examples:
- |
sudo gitlab-runner register \
@ -86,6 +91,8 @@ rules:
glptt-[0-9a-f]{40}
)
\b
pattern_requirements:
min_digits: 2
examples:
- |
curl \
@ -117,11 +124,14 @@ rules:
- name: GitLab Private Token - Updated Format
id: kingfisher.gitlab.4
pattern: |
(?x)
(?x)
\b
(
glpat-[A-Za-z0-9_-]{36,38}\.01\.[a-z0-9]{9}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

View file

@ -11,6 +11,8 @@ rules:
[a-z0-9_-]{40}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.2
confidence: medium
examples:

View file

@ -13,7 +13,11 @@ rules:
(?:[A-Z0-9=_-]{8}){3}
[A-Z0-9=_-]{0,2}
)
\b
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -15,9 +15,12 @@ rules:
id: kingfisher.google.2
pattern: |
(?xi)
\b
(GOCSPX-[A-Z0-9_-]{28})
(?:[^A-Z0-9_-] | $)
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -28,9 +31,14 @@ rules:
pattern: |
(?xi)
client.?secret .{0,10}
\b
([a-z0-9_-]{24})
(
[a-z0-9_-]{24}
)
(?: [^a-z0-9_-] |$)
pattern_requirements:
min_digits: 4
min_uppercase: 3
min_lowercase: 3
min_entropy: 3.3
confidence: medium
examples:
@ -42,9 +50,12 @@ rules:
id: kingfisher.google.4
pattern: |
(?xi)
\b
(ya29\.[0-9A-Z_-]{20,1024})
(?: [^0-9A-Z_-]|$)
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -66,12 +77,10 @@ rules:
id: kingfisher.google.6
pattern: |
(?xi)
\b
([0-9]+-[a-z0-9_]{32}\.apps\.googleusercontent\.com)
(?:
(?s).{0,40}
)
\b
(?:
(GOCSPX-[A-Z0-9_-]{28})
|
@ -80,6 +89,10 @@ rules:
)
)
(?:[^A-Z0-9_-] | $)
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.3
confidence: medium
examples:
@ -98,11 +111,16 @@ rules:
id: kingfisher.google.7
pattern: |
(?xi)
\b
(
AIza
[A-Za-z0-9_-]{35}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
min_entropy: 3.5
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
eyJrIjoi[a-z0-9]{60,100}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:
@ -20,12 +22,15 @@ rules:
id: kingfisher.grafana.2
pattern: |
(?xi)
\b
\b
(
glc_
[a-z0-9+/]{40,150}
={0,2}
)
pattern_requirements:
min_digits: 2
min_lowercase: 2
min_entropy: 3.3
confidence: medium
examples:
@ -56,6 +61,8 @@ rules:
glsa_[A-Z0-9]{32}_[A-F0-9]{8}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -8,6 +8,8 @@ rules:
gsk_[a-zA-Z0-9]{52}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 4.5
validation:

View file

@ -7,6 +7,8 @@ rules:
- https://unix.stackexchange.com/a/511017
- https://hashcat.net/wiki/doku.php?id=example_hashes
- https://passwordvillage.org/salted.html#md5crypt
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples: # generated with `openssl passwd -1 -salt 'OKgLCmVl' 'a'`
@ -38,6 +40,8 @@ rules:
\$ [./A-Za-z0-9]{8,16}
\$ [./A-Za-z0-9]{43}
)
pattern_requirements:
min_digits: 2
references:
- https://en.wikipedia.org/wiki/Crypt_(C)#Key_derivation_functions_supported_by_crypt
- https://hashcat.net/wiki/doku.php?id=example_hashes
@ -58,6 +62,8 @@ rules:
\$ [./A-Za-z0-9]{8,16}
\$ [./A-Za-z0-9]{86}
)
pattern_requirements:
min_digits: 2
references:
- https://en.wikipedia.org/wiki/Crypt_(C)#Key_derivation_functions_supported_by_crypt
- https://hashcat.net/wiki/doku.php?id=example_hashes
@ -76,6 +82,8 @@ rules:
\$ [./A-Za-z0-9]{8,16}
\$ [./A-Za-z0-9]{43}
)
pattern_requirements:
min_digits: 2
references:
- https://en.wikipedia.org/wiki/Crypt_(C)#Key_derivation_functions_supported_by_crypt
- https://hashcat.net/wiki/doku.php?id=example_hashes
@ -96,7 +104,8 @@ rules:
[0-9a-f]{32}
\$ [0-9a-f]{64,}
)
\b
pattern_requirements:
min_digits: 2
references:
- https://hashcat.net/wiki/doku.php?id=example_hashes
min_entropy: 3.3

View file

@ -5,16 +5,20 @@ rules:
pattern: |
(?x)
(?i: hashicorp | vault | token | key | secret )
["':=\ ]{0,5}
(?:.|[\n\r]){0,32}?
\b
(s\.[A-Za-z0-9_-]{24,128})
(?: [^A-Za-z0-9_-] | $ )
(
s\.[A-Za-z0-9_-]{24,128}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
examples:
- 'VAULT_CLIENT_TOKEN="s.Z4bTMtngfLeQ18AqVoBBkUAOD1"'
- '`-vaultToken s.CAESIP2jTxc9S3K7Z6CtcFWQv7-044m_oSsxkingfisher.0H3nF89l3GiYKHGh3cy5sQmlIZVNyTWJNcDRsYWJpQjlhYjVlb2cQh6PL8wEYAg"`'
- 'vaultToken="s.CAESIP2jTxc9S3K7Z6CtcFWQv7-044m_oS.0H3nF89l3GiYKHGh3cy5sQmlIZVNyTWJNcDRsYWJpQjlhYjVlb2cQh6PL8wEYAg"`'
references:
- https://developer.hashicorp.com/vault/docs/concepts/tokens
@ -26,9 +30,10 @@ rules:
(?x)
(?i: hashicorp | vault | token | key | secret )
["':=\ ]{0,5}
\b
(b\.[A-Za-z0-9_-]{24,500})
(?: [^A-Za-z0-9_-] | $ )
pattern_requirements:
min_digits: 2
examples:
- 'VAULT_CLIENT_TOKEN="b.Z4bTMtngfLeQ18AqVoBBkUAOD1"'
@ -44,9 +49,10 @@ rules:
(?x)
(?i: hashicorp | vault | token | key | secret )
["':=\ ]{0,5}
\b
(r\.[A-Za-z0-9_-]{24,500})
(?: [^A-Za-z0-9_-] | $ )
pattern_requirements:
min_digits: 2
examples:
- 'VAULT_CLIENT_TOKEN="r.Z4bTMtngfLeQ18AqVoBBkUAOD1"'
@ -62,9 +68,10 @@ rules:
pattern: |
(?x)
\b
(hvs\.[A-Za-z0-9]{24,130})
(?: [^A-Za-z0-9_-] | $ )
pattern_requirements:
min_digits: 2
examples:
- "apikey: hvs.JGbZZaCkOSgsZ56uhGlTK2zyC1j2mwhy0VLp4"
@ -79,9 +86,10 @@ rules:
pattern: |
(?x)
\b
(hvb\.[A-Za-z0-9_-]{24,500})
(?: [^A-Za-z0-9_-] | $ )
pattern_requirements:
min_digits: 2
examples:
- "apikey: hvb.JGbZZaCkOSgsZ56uhGlTK2zyC1j2mwhy0VLp4"
@ -98,9 +106,10 @@ rules:
pattern: |
(?x)
\b
(hvr\.[A-Za-z0-9]{24,130})
(?: [^A-Za-z0-9_-] | $ )
pattern_requirements:
min_digits: 2
examples:
- "apikey: hvr.JGbZZaCkOSgsZ56uhGlTK2zyC1j2mwhy0VLp4"
@ -119,9 +128,10 @@ rules:
(?i: unseal )
\b
.{1,10}
\b
([a-zA-Z0-9+/]{44})
(?: [^a-zA-Z0-9+/] | $ )
pattern_requirements:
min_digits: 2
examples:
- "Unseal Key 2: 0tZn+7QQCxphpHwTm7/dC3LpP5JGIbYl3PK8Sy81R+P2"

View file

@ -5,13 +5,15 @@ rules:
(?xi)
\b
heroku
(?:.|[\n\r]){0,32}?
(?:.|[\n\r]){0,32}?
\b
(
[0-9a-f]{8}-[0-9a-f]{4}-
[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.0
confidence: medium
examples:
@ -35,10 +37,11 @@ rules:
id: kingfisher.heroku.2
pattern: |
(?xi)
\b
(
HRKU-[A-Z0-9_]{60}
)
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 4.0
validation:

View file

@ -8,6 +8,8 @@ rules:
pat-[a-z0-9]{2,3}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
)
\b
pattern_requirements:
min_digits: 2
confidence: medium
min_entropy: 3.0
validation:

View file

@ -3,7 +3,6 @@ rules:
id: kingfisher.huggingface.1
pattern: |
(?xi)
\b
(?:
(
(?:api_org|hf)_
@ -11,6 +10,8 @@ rules:
)
)
\b
pattern_requirements:
min_digits: 2
references:
- https://huggingface.co/docs/hub/security-tokens
min_entropy: 3.3

View file

@ -3,15 +3,16 @@ rules:
id: kingfisher.ibm.1
pattern: |
(?xi)
\b
(?:ibm(?:cloud)?|bx)
(?:.|[\n\r]){0,32}?
(?:SECRET|PRIVATE|ACCESS|KEY|TOKEN)
(?:.|[\n\r]){0,32}?
\b
(
[0-9A-Z_-]{42,44}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium

View file

@ -8,6 +8,8 @@ rules:
ico-[a-z0-9]{32}
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:

View file

@ -7,9 +7,12 @@ rules:
(?:.|[\n\r]){0,16}?
(?:SECRET|PRIVATE|ACCESS|KEY|TOKEN)
(?:.|[\n\r]){0,16}?
\b
(
[0-9A-Z+/]{59}=
)
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium

View file

@ -7,8 +7,10 @@ rules:
(
ion_
[a-z0-9]{42}
)
\b
)
\b
pattern_requirements:
min_digits: 2
min_entropy: 3.5
confidence: medium
examples:

Some files were not shown because too many files have changed in this diff Show more