[detector]
id = "prisma-cloud-api-token"
name = "Prisma Cloud API Token"
service = "prisma-cloud"
severity = "critical"
keywords = ["prisma", "twistlock", "PRISMA", "TWISTLOCK"]
[[detector.patterns]]
regex = "(?:prisma|twistlock|PRISMA|TWISTLOCK)[_\\s]*(?:API[_\\s]*)?(?:TOKEN|KEY|SECRET)[=:\\s\"'']+(eyJ[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*)"
description = "Prisma Cloud JWT token with context anchor"
group = 1
[[detector.patterns]]
regex = "(?:prisma|twistlock|PRISMA|TWISTLOCK)[_\\s]*(?:CONSOLE[_\\s]*)?(?:URL|ADDRESS)[=:\\s\"'']+(https?://[^\\s\"'']+)"
description = "Prisma Cloud console URL with context anchor"
group = 1
[[detector.companions]]
name = "prisma_console"
regex = 'https?://[a-zA-Z0-9-]+\.(?:prismacloud\.io|paloaltonetworks\.com|twistlock\.com)'
within_lines = 5
[detector.verify]
method = "GET"
url = "{{companion.prisma_console}}/api/v1/policies/runtime/container"
allowed_domains = [
"prismacloud.io",
"paloaltonetworks.com",
"twistlock.com",
]
[detector.verify.auth]
type = "bearer"
field = "match"
[detector.verify.success]
status = 200