kingfisher/crates/kingfisher-rules/data/rules/dockerhub.yml

103 lines
2.8 KiB
YAML
Raw Normal View History

2025-06-24 17:17:16 -07:00
rules:
- name: Docker Hub Personal Access Token
id: kingfisher.dockerhub.1
pattern: |
2025-06-26 11:31:41 -07:00
(?xi)
2025-06-24 17:17:16 -07:00
\b
(
2025-06-26 11:31:41 -07:00
dckr_pat_[A-Z0-9_-]{27}
2025-06-24 17:17:16 -07:00
)
2025-06-26 11:31:41 -07:00
(?: $ | [^A-Z0-9_-] )
pattern_requirements:
min_digits: 2
2025-06-24 17:17:16 -07:00
min_entropy: 3.3
confidence: medium
examples:
- docker login -u gemesa -p dckr_pat_hc8VxYclixyTr2rDFsa2rqzkP3Y
- docker login -u gemesa -p dckr_pat_tkzBYxjNNC3R_Yg6jd_O-G8FbrJ
- docker login -u gemesa -p dckr_pat_1q8yKET1VDJTpfCwseUDzT8vFh-
references:
2026-01-31 21:54:08 -08:00
- https://docs.docker.com/reference/api/hub/latest/#tag/authentication-api/operation/AuthCreateAccessToken
depends_on_rule:
- rule_id: kingfisher.dockerhub.2
variable: DOCKER_USERNAME
2025-06-24 17:17:16 -07:00
validation:
type: Http
content:
request:
2026-01-31 21:54:08 -08:00
method: POST
url: https://hub.docker.com/v2/auth/token
2025-06-24 17:17:16 -07:00
headers:
2026-01-31 21:54:08 -08:00
Content-Type: application/json
2025-06-24 17:17:16 -07:00
Accept: application/json
2026-01-31 21:54:08 -08:00
body: '{"identifier":"{{ DOCKER_USERNAME | json_escape }}","secret":"{{ TOKEN | json_escape }}"}'
2025-06-24 17:17:16 -07:00
response_matcher:
- report_response: true
2026-01-31 21:54:08 -08:00
- type: StatusMatch
status: [200]
- type: WordMatch
words:
- '"access_token"'
- name: Docker Hub Username
id: kingfisher.dockerhub.2
pattern: |
(?xi)
\b
docker
(?:.|[\n\r]){0,32}?
(?:
-u\s+
| --username[=\s]+
| user(?:name)?[=:\s]+["']?
)
(
[a-z0-9][a-z0-9_-]{2,29}
)
\b
min_entropy: 1.0
confidence: medium
visible: false
examples:
- docker login -u gemesa -p dckr_pat_xxx
- docker login --username=myuser
- DOCKER_USERNAME=myuser
- 'docker_user: "myuser"'
- name: Docker Hub Organization Access Token
id: kingfisher.dockerhub.3
pattern: |
(?xi)
\b
(
dckr_oat_[A-Z0-9_-]{32}
)
(?: $ | [^A-Z0-9_-] )
pattern_requirements:
min_digits: 2
min_entropy: 3.3
confidence: medium
examples:
- docker login -u docker-test -p dckr_oat_7bA9zRt5-JqX3vP0l_MnY8sK2wE-dF6h
references:
- https://docs.docker.com/enterprise/security/access-tokens/
depends_on_rule:
- rule_id: kingfisher.dockerhub.2
variable: DOCKER_USERNAME
validation:
type: Http
content:
request:
method: POST
url: https://hub.docker.com/v2/auth/token
headers:
Content-Type: application/json
Accept: application/json
body: '{"identifier":"{{ DOCKER_USERNAME | json_escape }}","secret":"{{ TOKEN | json_escape }}"}'
response_matcher:
- report_response: true
- type: StatusMatch
status: [200]
- type: WordMatch
words:
- '"access_token"'