keyhog-core 0.5.4

keyhog-core — shared data model and detector specifications for the KeyHog secret scanner
Documentation
# Docs: https://documentation.five9.com/
# Format: Five9 uses username/password with API key or OAuth client credentials
# Verify: no public verification endpoint
# Prefix: none (requires context anchoring)

[detector]
id = "five9-api-credentials"
name = "Five9 API Credentials"
service = "five9"
severity = "critical"
keywords = ["five9", "FIVE9", "Five9", "five9_api"]

[[detector.patterns]]
regex = "(?i)(?:five9|FIVE9)[_\\-\\s]?(?:api[_\\-\\s]?key|apikey)[=:\\s\"'']+([a-zA-Z0-9_-]{20,60})"
description = "Five9 API Key with context anchor"
group = 1

[[detector.patterns]]
regex = "(?i)(?:five9|FIVE9)[_\\-\\s]?(?:client[_\\-\\s]?id|clientid)[=:\\s\"'']+([a-zA-Z0-9_-]{20,50})"
description = "Five9 Client ID with context anchor"
group = 1

[[detector.patterns]]
regex = "(?i)(?:five9|FIVE9)[_\\-\\s]?(?:client[_\\-\\s]?secret|clientsecret)[=:\\s\"'']+([a-zA-Z0-9_-]{20,60})"
description = "Five9 Client Secret with context anchor"
group = 1

[[detector.companions]]
name = "five9_credential_pair"
regex = "(?i)(?:five9|FIVE9)[_\\-\\s]?(?:api[_\\-\\s]?key|client[_\\-\\s]?(?:id|secret))[=:\\s\"'']+[a-zA-Z0-9_-]{20,60}"
within_lines = 5