diff --git a/docs/codacy-rules.yaml b/docs/codacy-rules.yaml index 9af4ca1..e6e62c8 100644 --- a/docs/codacy-rules.yaml +++ b/docs/codacy-rules.yaml @@ -645,8 +645,15 @@ rules: severity: ERROR languages: - generic - patterns: + pattern-either: + # any key containing _token / -token with a single-word value - pattern-regex: '(?i)^\s*[\w-]*[_-]token[_-]?[\w-]*\s*:\s*["'']?[^\s"'']+["'']?\s*$' + # Same keys with a {{ ... }} template value containing spaces + - pattern-regex: '(?i)^\s*[\w-]*[_-]token[_-]?[\w-]*\s*:\s*["'']?\{\{[^}\n]*\}\}["'']?\s*$' + # Key named token / *_token / *-token with a literal value (skips booleans, numbers, null, templates, env refs, anchors, block scalars) + - pattern-regex: '(?i)^\s*(?:[\w-]*[_-])?token\s*:\s*(?!(?:true|false|yes|no|null|~|-?\d+(?:\.\d+)?)\s*(?:#.*)?$)(?!["'']?\s*(?:\{\{|\$\{|\$[A-Z_]|<%|%\{))(?:"[^"\n]{8,}"|''[^''\n]{8,}''|[^\s"''#|>&*!{\[][^\s#]{7,})\s*(?:#.*)?$' + # Well-known token formats under any key (GitHub, GitLab, Slack, npm) + - pattern-regex: '\b(?:gh[pousr]_[A-Za-z0-9]{36}|github_pat_[A-Za-z0-9_]{22,}|glpat-[A-Za-z0-9_-]{20,}|xox[abprs]-[A-Za-z0-9-]{10,}|npm_[A-Za-z0-9]{36})\b' message: Hardcoded tokens are a security risk. They can be easily found by attackers and used to gain unauthorized access to the system. metadata: owasp: diff --git a/docs/multiple-tests/codacy-rules/patterns.xml b/docs/multiple-tests/codacy-rules/patterns.xml index 61bca42..ece50de 100644 --- a/docs/multiple-tests/codacy-rules/patterns.xml +++ b/docs/multiple-tests/codacy-rules/patterns.xml @@ -16,4 +16,5 @@ + diff --git a/docs/multiple-tests/codacy-rules/results.xml b/docs/multiple-tests/codacy-rules/results.xml index 924a099..aa921d8 100644 --- a/docs/multiple-tests/codacy-rules/results.xml +++ b/docs/multiple-tests/codacy-rules/results.xml @@ -34,7 +34,7 @@ - + @@ -56,4 +56,21 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/multiple-tests/codacy-rules/src/codacy.yaml.security.hard-coded-tokens.yaml b/docs/multiple-tests/codacy-rules/src/codacy.yaml.security.hard-coded-tokens.yaml new file mode 100644 index 0000000..64cba19 --- /dev/null +++ b/docs/multiple-tests/codacy-rules/src/codacy.yaml.security.hard-coded-tokens.yaml @@ -0,0 +1,19 @@ +# Should be flagged +gh_token: >- +gh_token: "{{gh_token}}" +gh_token: "{{ gh_token }}" +gh_token: '{{ secrets.GH }}' +gh_token: "correct horse battery staple" +max_tokens: 4096 +access_token_ttl: 3600 +use_refresh_token: true +auth-token: "s3cr3tValue99" +Token: 'abcdef123456' +token: ghp_EXAMPLEexampleEXAMPLEexample00001234 +slack_token: xoxb-1234567890-abcdef + +# Should not be flagged +name: "{{ gh_token }}" +token: true +token: abc +api_key: some-value diff --git a/docs/multiple-tests/codacy-rules/src/codacy_apenai_non_guardrails.py b/docs/multiple-tests/codacy-rules/src/codacy_openai_non_guardrails.py similarity index 100% rename from docs/multiple-tests/codacy-rules/src/codacy_apenai_non_guardrails.py rename to docs/multiple-tests/codacy-rules/src/codacy_openai_non_guardrails.py