kingfisher/crates/kingfisher-rules/data/rules/zendesk.yml
2026-03-29 12:48:55 -07:00

105 lines
2.6 KiB
YAML

rules:
- name: Zendesk Subdomain
id: kingfisher.zendesk.1
pattern: |
(?xi)
\b
(
[a-z0-9]
(?:
[a-z0-9-]{0,61}
[a-z0-9]
)?
\.zendesk\.com
)
\b
min_entropy: 2.0
confidence: medium
visible: false
examples:
- acme-support.zendesk.com
- helpdesk-prod.zendesk.com
references:
- https://developer.zendesk.com/api-reference/introduction/doc-conventions/
- name: Zendesk Account Email
id: kingfisher.zendesk.2
pattern: |
(?xi)
\b
(?:zendesk|zd)
(?:.|[\n\r]){0,32}?
(?:email|user(?:name)?)
(?:.|[\n\r]){0,12}?
(
[A-Za-z0-9._%+\-]+
@
[A-Za-z0-9.\-]+\.[A-Za-z]{2,}
)
\b
min_entropy: 2.0
confidence: medium
visible: false
examples:
- ZENDESK_EMAIL=agent@example.com
- 'zendesk_user: "support.bot@example.org"'
references:
- https://developer.zendesk.com/api-reference/introduction/security-and-auth/
- name: Zendesk API Token
id: kingfisher.zendesk.3
pattern: |
(?xi)
\b
(?:zendesk|zd)
(?:.|[\n\r]){0,48}?
(?:
api[\s_.-]*token
|
token
|
api[\s_.-]*key
)
(?:.|[\n\r]){0,16}?
(
[A-Za-z0-9]{40}
)
\b
pattern_requirements:
min_digits: 2
min_uppercase: 1
min_lowercase: 1
ignore_if_contains:
- example
- placeholder
- yourtoken
min_entropy: 3.8
confidence: medium
examples:
- ZENDESK_API_TOKEN=a3B8f29E4d1C6a0578e23D9f41b6C8e2qR7tY4uI
- zendesk_token="E7d2A1f849c3B05d6e81F2a794c3D5b0pQ8wX1zK"
references:
- https://developer.zendesk.com/api-reference/introduction/security-and-auth/
- https://developer.zendesk.com/api-reference/ticketing/account-configuration/current_user/
depends_on_rule:
- rule_id: kingfisher.zendesk.1
variable: ZENDESK_HOST
- rule_id: kingfisher.zendesk.2
variable: ZENDESK_EMAIL
validation:
type: Http
content:
request:
method: GET
url: 'https://{{ ZENDESK_HOST }}/api/v2/users/me.json'
headers:
Accept: application/json
Authorization: 'Basic {{ ZENDESK_EMAIL | append: "/token:" | append: TOKEN | b64enc }}'
response_matcher:
- report_response: true
- type: StatusMatch
status: [200]
- type: JsonValid
- type: WordMatch
words:
- '"user"'