kingfisher/data/rules/sonarqube.yml

58 lines
No EOL
1.6 KiB
YAML

rules:
- name: SonarQube API Key
id: kingfisher.sonarqube.1
pattern: |
(?xi)
\b
(
(?:sq[pua])
_[a-z0-9]{40}
)
min_entropy: 3.5
examples:
- sonar.login=sqp_4b78f8494075e310d62dfdcaeb14be2c78fca2fc
- sonar.login=squ_4b78f8494075e310d62dfdcaeb14be2c78fca2fc
validation:
type: Http
content:
request:
headers:
Authorization: "Basic {{ TOKEN | append: ':' | b64enc }}"
method: GET
response_matcher:
- report_response: true
- status:
- 200
type: StatusMatch
url: '{{ SONARHOST }}/api/user_tokens/search'
depends_on_rule:
- rule_id: kingfisher.sonarqube.2
variable: SONARHOST
- name: SonarQube Host
id: kingfisher.sonarqube.2
pattern: |
(?xi)
sonar.{0,8}host
(?:.|[\n\r]){0,64}?
\b
(
https?://.*?:\d{2,6}
)
\b
min_entropy: 3.5
visible: false
examples:
- sonar.host=https://sonar.internal.company.com:9000
- name: SonarQube Token
id: kingfisher.sonarqube.3
pattern: '(?i)sonar.{0,5}login.{0,5}\s*\b([a-f0-9]{40})\b'
min_entropy: 3.3
confidence: medium
examples:
- 'sonar.host.url=https://sonarcloud.io -Dsonar.login=5524bf449ca45fcace54698371466398321f3a82'
- "sonar.login', '826de5590c75919a8317fdface58206eebe7ebbc"
- '$sonarLogin = "4924be8f51f3e738c97db2c4ace51db7e938f28b"'
references:
- https://docs.sonarqube.org/latest/user-guide/user-token/