credsweeper 1.11.5__py3-none-any.whl → 1.13.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of credsweeper might be problematic. Click here for more details.

Files changed (145) hide show
  1. credsweeper/__init__.py +21 -15
  2. credsweeper/__main__.py +158 -42
  3. credsweeper/app.py +18 -13
  4. credsweeper/common/keyword_pattern.py +19 -18
  5. credsweeper/common/morpheme_checklist.txt +28 -6
  6. credsweeper/config/__init__.py +0 -1
  7. credsweeper/config/config.py +4 -3
  8. credsweeper/credentials/__init__.py +0 -5
  9. credsweeper/credentials/augment_candidates.py +1 -1
  10. credsweeper/credentials/candidate.py +1 -1
  11. credsweeper/credentials/credential_manager.py +1 -1
  12. credsweeper/credentials/line_data.py +43 -8
  13. credsweeper/deep_scanner/__init__.py +0 -1
  14. credsweeper/deep_scanner/abstract_scanner.py +4 -3
  15. credsweeper/deep_scanner/byte_scanner.py +1 -1
  16. credsweeper/deep_scanner/bzip2_scanner.py +2 -2
  17. credsweeper/deep_scanner/csv_scanner.py +71 -0
  18. credsweeper/deep_scanner/deb_scanner.py +1 -1
  19. credsweeper/deep_scanner/deep_scanner.py +22 -12
  20. credsweeper/deep_scanner/docx_scanner.py +1 -1
  21. credsweeper/deep_scanner/eml_scanner.py +1 -1
  22. credsweeper/deep_scanner/encoder_scanner.py +1 -1
  23. credsweeper/deep_scanner/gzip_scanner.py +2 -2
  24. credsweeper/deep_scanner/html_scanner.py +1 -1
  25. credsweeper/deep_scanner/jclass_scanner.py +1 -1
  26. credsweeper/deep_scanner/jks_scanner.py +12 -3
  27. credsweeper/deep_scanner/lang_scanner.py +1 -1
  28. credsweeper/deep_scanner/lzma_scanner.py +2 -2
  29. credsweeper/deep_scanner/mxfile_scanner.py +1 -1
  30. credsweeper/deep_scanner/pdf_scanner.py +1 -1
  31. credsweeper/deep_scanner/pkcs_scanner.py +6 -2
  32. credsweeper/deep_scanner/pptx_scanner.py +1 -1
  33. credsweeper/deep_scanner/rpm_scanner.py +1 -1
  34. credsweeper/deep_scanner/rtf_scanner.py +41 -0
  35. credsweeper/deep_scanner/strings_scanner.py +52 -0
  36. credsweeper/deep_scanner/tar_scanner.py +2 -2
  37. credsweeper/deep_scanner/tmx_scanner.py +2 -2
  38. credsweeper/deep_scanner/xlsx_scanner.py +2 -2
  39. credsweeper/deep_scanner/xml_scanner.py +1 -1
  40. credsweeper/deep_scanner/zip_scanner.py +2 -2
  41. credsweeper/file_handler/__init__.py +0 -15
  42. credsweeper/file_handler/abstract_provider.py +3 -4
  43. credsweeper/file_handler/byte_content_provider.py +11 -2
  44. credsweeper/file_handler/content_provider.py +1 -1
  45. credsweeper/file_handler/data_content_provider.py +1 -1
  46. credsweeper/file_handler/diff_content_provider.py +133 -3
  47. credsweeper/file_handler/file_path_extractor.py +4 -2
  48. credsweeper/file_handler/files_provider.py +4 -4
  49. credsweeper/file_handler/patches_provider.py +7 -8
  50. credsweeper/file_handler/text_content_provider.py +8 -2
  51. credsweeper/filters/__init__.py +3 -4
  52. credsweeper/filters/filter.py +5 -3
  53. credsweeper/filters/group/__init__.py +0 -2
  54. credsweeper/filters/group/general_keyword.py +2 -2
  55. credsweeper/filters/group/general_pattern.py +2 -2
  56. credsweeper/filters/group/group.py +38 -36
  57. credsweeper/filters/group/password_keyword.py +9 -8
  58. credsweeper/filters/group/token_pattern.py +5 -5
  59. credsweeper/filters/group/url_credentials_group.py +8 -8
  60. credsweeper/filters/group/weird_base36_token.py +6 -6
  61. credsweeper/filters/group/weird_base64_token.py +5 -5
  62. credsweeper/filters/line_git_binary_check.py +5 -4
  63. credsweeper/filters/line_specific_key_check.py +6 -5
  64. credsweeper/filters/line_uue_part_check.py +5 -4
  65. credsweeper/filters/value_allowlist_check.py +6 -5
  66. credsweeper/filters/value_array_dictionary_check.py +8 -6
  67. credsweeper/filters/value_atlassian_token_check.py +6 -5
  68. credsweeper/filters/value_azure_token_check.py +6 -5
  69. credsweeper/filters/value_base32_data_check.py +8 -5
  70. credsweeper/filters/value_base64_data_check.py +6 -5
  71. credsweeper/filters/value_base64_encoded_pem_check.py +6 -5
  72. credsweeper/filters/value_base64_key_check.py +6 -5
  73. credsweeper/filters/value_base64_part_check.py +6 -5
  74. credsweeper/filters/value_basic_auth_check.py +37 -0
  75. credsweeper/filters/value_blocklist_check.py +6 -4
  76. credsweeper/filters/value_camel_case_check.py +8 -7
  77. credsweeper/filters/value_dictionary_keyword_check.py +6 -4
  78. credsweeper/filters/value_discord_bot_check.py +6 -5
  79. credsweeper/filters/value_entropy_base_check.py +6 -5
  80. credsweeper/filters/value_file_path_check.py +13 -8
  81. credsweeper/filters/value_github_check.py +8 -6
  82. credsweeper/filters/value_grafana_check.py +6 -5
  83. credsweeper/filters/value_grafana_service_check.py +5 -4
  84. credsweeper/filters/value_hex_number_check.py +5 -4
  85. credsweeper/filters/value_jfrog_token_check.py +6 -5
  86. credsweeper/filters/value_json_web_key_check.py +6 -5
  87. credsweeper/filters/value_json_web_token_check.py +6 -5
  88. credsweeper/filters/value_last_word_check.py +6 -4
  89. credsweeper/filters/{value_dictionary_value_length_check.py → value_length_check.py} +12 -6
  90. credsweeper/filters/value_method_check.py +5 -4
  91. credsweeper/filters/value_morphemes_check.py +43 -0
  92. credsweeper/filters/value_not_allowed_pattern_check.py +6 -5
  93. credsweeper/filters/value_not_part_encoded_check.py +4 -4
  94. credsweeper/filters/value_number_check.py +5 -4
  95. credsweeper/filters/value_pattern_check.py +61 -41
  96. credsweeper/filters/value_similarity_check.py +6 -4
  97. credsweeper/filters/value_split_keyword_check.py +5 -4
  98. credsweeper/filters/value_string_type_check.py +10 -7
  99. credsweeper/filters/value_token_base_check.py +5 -4
  100. credsweeper/filters/value_token_check.py +6 -5
  101. credsweeper/logger/__init__.py +0 -1
  102. credsweeper/logger/logger.py +1 -1
  103. credsweeper/ml_model/__init__.py +0 -1
  104. credsweeper/ml_model/features/__init__.py +1 -0
  105. credsweeper/ml_model/features/entropy_evaluation.py +1 -1
  106. credsweeper/ml_model/features/feature.py +2 -19
  107. credsweeper/ml_model/features/file_extension.py +2 -2
  108. credsweeper/ml_model/features/has_html_tag.py +12 -10
  109. credsweeper/ml_model/features/is_secret_numeric.py +5 -4
  110. credsweeper/ml_model/features/length_of_attribute.py +1 -1
  111. credsweeper/ml_model/features/morpheme_dense.py +15 -8
  112. credsweeper/ml_model/features/rule_name.py +2 -2
  113. credsweeper/ml_model/features/rule_severity.py +21 -0
  114. credsweeper/ml_model/features/search_in_attribute.py +1 -1
  115. credsweeper/ml_model/features/word_in.py +10 -33
  116. credsweeper/ml_model/features/word_in_path.py +6 -4
  117. credsweeper/ml_model/features/word_in_postamble.py +2 -5
  118. credsweeper/ml_model/features/word_in_preamble.py +2 -5
  119. credsweeper/ml_model/features/word_in_transition.py +2 -5
  120. credsweeper/ml_model/features/word_in_value.py +3 -4
  121. credsweeper/ml_model/features/word_in_variable.py +3 -4
  122. credsweeper/ml_model/ml_config.json +140 -27
  123. credsweeper/ml_model/ml_model.onnx +0 -0
  124. credsweeper/ml_model/ml_validator.py +4 -3
  125. credsweeper/rules/__init__.py +0 -1
  126. credsweeper/rules/config.yaml +329 -239
  127. credsweeper/rules/rule.py +4 -3
  128. credsweeper/scanner/__init__.py +0 -1
  129. credsweeper/scanner/scan_type/__init__.py +0 -5
  130. credsweeper/scanner/scan_type/multi_pattern.py +4 -4
  131. credsweeper/scanner/scan_type/pem_key_pattern.py +4 -4
  132. credsweeper/scanner/scan_type/scan_type.py +4 -4
  133. credsweeper/scanner/scan_type/single_pattern.py +4 -4
  134. credsweeper/scanner/scanner.py +24 -15
  135. credsweeper/secret/config.json +19 -6
  136. credsweeper/utils/__init__.py +0 -1
  137. credsweeper/utils/pem_key_detector.py +3 -3
  138. credsweeper/utils/util.py +24 -150
  139. {credsweeper-1.11.5.dist-info → credsweeper-1.13.3.dist-info}/METADATA +7 -7
  140. credsweeper-1.13.3.dist-info/RECORD +164 -0
  141. credsweeper/filters/value_couple_keyword_check.py +0 -26
  142. credsweeper-1.11.5.dist-info/RECORD +0 -159
  143. {credsweeper-1.11.5.dist-info → credsweeper-1.13.3.dist-info}/WHEEL +0 -0
  144. {credsweeper-1.11.5.dist-info → credsweeper-1.13.3.dist-info}/entry_points.txt +0 -0
  145. {credsweeper-1.11.5.dist-info → credsweeper-1.13.3.dist-info}/licenses/LICENSE +0 -0
@@ -3,14 +3,14 @@
3
3
  confidence: weak
4
4
  type: pattern
5
5
  values:
6
- - (?P<variable>(\w*(?i:비밀번호|비번|패스워드|키|암호화?|토큰|(?<!by)pass(?!ed|ing|ion|es|age)|\bpwd?\b|token|secret|key|cred)\w*)\s*(설정은|[=:!]{1,3}))?\s*([._0-9A-Za-z\[\]]*get(env)?\s*\(\s*(?(variable)[^,]+)|[\"'\\]*(\\*(['\"]|&(quot|apos);)){0,4}(\w*(?i:(?<!by)pass(?!ed|ing|ion|es|age|\s+[a-z]{3,80})|\bpwd?\b|token|secret|key|cred)\w*)(\\*(['\"]|&(quot|apos);)){0,4})\s*,\s*(default\s*=\s*)?([brufl@]{1,2}(?=\\*['\"&]))?(?P<lq>(\\*(['\"]|&(quot|apos);)){1,4})(?P<value>(.(?!(?P=lq))){4,80}.?)
6
+ - (?P<variable>(\w*(?i:비밀번호|비번|패스워드|키|암호화?|토큰|(?<!by)pass(?!e[dns]|ing|ion|age)|\bpwd?\b|token|secret|key|cred)\w*)\s*(설정은|[=:!]{1,3}))?\s*([._0-9A-Za-z\[\]]*get(env)?\s*\(\s*(?(variable)[^,]+|[\"'\\]*(\\*([\"']|&(quot|apos|#3[49]);)){0,4}(\w*(?i:(?<!by)pass(?!e[dns]|ing|ion|age|\s+[a-z]{3,80})|\bpwd?\b|token|secret|key|cred)\w*))(\\*([\"']|&(quot|apos|#3[49]);)){0,4})\s*,\s*(default\s*=\s*)?([brufl@]{1,2}(?=\\*[\"'&]))?(?P<lq>(\\*([\"']|&(quot|apos|#3[49]);)){1,4})(?P<value>(.(?!(?P=lq))){4,80}.?)
7
7
  filter_type:
8
8
  - ValueAllowlistCheck
9
9
  - LineGitBinaryCheck
10
10
  - LineUUEPartCheck
11
11
  - ValueFilePathCheck
12
12
  - ValuePatternCheck(5)
13
- - ValueDictionaryValueLengthCheck(4,80)
13
+ - ValueLengthCheck(4,80)
14
14
  min_line_len: 8
15
15
  required_substrings:
16
16
  - pass
@@ -34,14 +34,14 @@
34
34
  confidence: weak
35
35
  type: pattern
36
36
  values:
37
- - (?P<wrap>[`'\"(])?\s*(?P<variable>(\w*(?i:(?<!by)passw?o?r?d?s?(?!ed|ing|ion|es|age)|pwd?\b|\bp/w\b|token|secret|key|credential)\w*|비밀번호|비번|패스워드|키|암호화?|토큰))[`'\"]*(\s+(?i:is|are|was|were)(\s*[:-])?\s+|\s*(설정은|[=:!]{1,3})\s*)(?P<quote>[`'\"]{1,6})?(?P<value>(?(quote)(?(wrap)[^`'\")]{4,80}|[^`'\"]{4,80})|(?(wrap)[^`'\")]{4,80}|\S{4,80})))
37
+ - (?P<wrap>[\"'`(])?\s*(?P<variable>(\w*(?i:(?<!by)passw?o?r?d?s?(?!e[dns]|ing|ion|age)|pwd?\b|\bp/w\b|token|secret|key|credential)\w*|비밀번호|비번|패스워드|키|암호화?|토큰))[\"'`]*(\s+(?i:is|are|was|were)(\s*[:-])?\s+|\s*(설정은|[=:!]{1,3})\s*)(?P<quote>[\"'`]{1,6})?(?P<value>(?(quote)(?(wrap)[^\"'`)]{4,80}|[^\"'`]{4,80})|(?(wrap)[^\"'`)]{4,80}|\S{4,80})))
38
38
  filter_type:
39
39
  - ValueAllowlistCheck
40
40
  - LineGitBinaryCheck
41
41
  - LineUUEPartCheck
42
42
  - ValueFilePathCheck
43
43
  - ValuePatternCheck(5)
44
- - ValueDictionaryValueLengthCheck(4,80)
44
+ - ValueLengthCheck(4,80)
45
45
  min_line_len: 8
46
46
  required_substrings:
47
47
  - pass
@@ -68,12 +68,12 @@
68
68
  confidence: moderate
69
69
  type: pattern
70
70
  values:
71
- - (?P<variable>[`'\"]?(?i:token|secret|key|키|암호화?|토큰)[`'\"]?)((\s)*[=:](\s)*)(?P<quote>[`'\"(])?(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){8,80}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))(?(quote)[)`'\"])
71
+ - (?P<variable>[\"'`]?(?i:token|secret|key|키|암호화?|토큰)[\"'`]?)((\s)*[=:](\s)*)(?P<quote>[\"'`(])?(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){8,80}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))(?(quote)[)\"'`])
72
72
  filter_type:
73
73
  - ValueAllowlistCheck
74
- - ValuePatternCheck
74
+ - ValuePatternCheck(4)
75
75
  - ValueEntropyBase64Check
76
- - ValueCoupleKeywordCheck
76
+ - ValueMorphemesCheck
77
77
  min_line_len: 16
78
78
  required_substrings:
79
79
  - token
@@ -90,10 +90,10 @@
90
90
  confidence: moderate
91
91
  type: pattern
92
92
  values:
93
- - (?P<variable>[`'\"]?(?i:(?<!id[ :/])pa[as]swo?r?ds?|pwd?|p/w|비밀번호|비번|패스워드|암호)[`'\"]?)((\s)*[=:](\s)*)(?P<quote>[`'\"(])?(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){8,31}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))(?(quote)[)`'\"])
93
+ - (?P<variable>[\"'`]?(?i:(?<!id[ :/])pa[as]swo?r?ds?|pwd?|p/w|비밀번호|비번|패스워드|암호)[\"'`]?)((\s)*[=:](\s)*)(?P<quote>[\"'`(])?(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){8,64}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))(?(quote)[)\"'`])
94
94
  filter_type:
95
95
  - ValueAllowlistCheck
96
- - ValuePatternCheck
96
+ - ValuePatternCheck(4)
97
97
  - ValueDictionaryKeywordCheck
98
98
  - LineGitBinaryCheck
99
99
  - LineUUEPartCheck
@@ -118,10 +118,10 @@
118
118
  confidence: moderate
119
119
  type: pattern
120
120
  values:
121
- - (^|\s|(?P<variable>(?i:\bip[\s/]{1,80}id[\s/]{1,80}pw[\s/:]{0,80}))|(?P<url>://))(?P<ip>(?<![0-9.])[0-2]?[0-9]{1,2}\.[0-2]?[0-9]{1,2}\.[0-2]?[0-9]{1,2}\.[0-2]?[0-9]{1,2}(?![0-9.]))((\s*[(])?|(?(variable)[\s,/]{1,80}|(?(url)[,]|[,/])))\s*\w[\w.-]{3,80}[\s,/]{1,80}(?P<value>(?(url)(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9_+=~!@#$%^&*;?-])){7,31}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x)|(?-i:(?P<e>[A-Z])|(?P<f>[a-z])|(?P<g>[0-9/_+=~!@#$%^&*;?-])){7,31}(?(e)(?(f)(?(g)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x)))(?:\s|[^/]|$)
121
+ - (^|\s|(?P<variable>(?i:\bip[\s/]{1,80}id[\s/]{1,80}pw[\s/:]{0,80}))|(?P<url>://))(?P<ip>(?<![0-9.])[0-2]?[0-9]{1,2}\.[0-2]?[0-9]{1,2}\.[0-2]?[0-9]{1,2}\.[0-2]?[0-9]{1,2}(?![0-9.]))((\s*[(])?|(?(variable)[\s,/]{1,80}|(?(url)[,]|[,/])))\s*\w[\w.-]{3,80}[\s,/]{1,80}(?P<value>(?(url)(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9_+=~!@#$%^&*;?-])){7,64}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x)|(?-i:(?P<e>[A-Z])|(?P<f>[a-z])|(?P<g>[0-9/_+=~!@#$%^&*;?-])){7,64}(?(e)(?(f)(?(g)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x)))(?:\s|[^/]|$)
122
122
  filter_type:
123
123
  - ValueAllowlistCheck
124
- - ValuePatternCheck
124
+ - ValuePatternCheck(4)
125
125
  - ValueDictionaryKeywordCheck
126
126
  min_line_len: 10
127
127
  required_substrings:
@@ -134,11 +134,11 @@
134
134
  confidence: moderate
135
135
  type: pattern
136
136
  values:
137
- - (?P<ddash>--)?(?P<variable>\w*(?i:pa[as]swords?|passwd?|pwd|\bp/w|\bpw|비밀번호|비번|패스워드|암호))\s*?(?(ddash)[ =]|[:=/>-]{1,2})\s*(?P<quote>[`'\"]{1,8})?(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){4,31}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))(?(quote)(?P=quote)|(\s|$))
137
+ - (?P<ddash>--)?(?P<variable>\w*(?i:pa[as]swords?|passwd?|pwd|\bp/w|\bpw|비밀번호|비번|패스워드|암호))\s*?(?(ddash)[ =]|[:=/>-]{1,2})\s*(?P<quote>[\"'`]{1,8})?(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){4,64}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))(?(quote)(?P=quote)|(\s|$))
138
138
  - (?P<ddash>--)?(?P<variable>(?i:user\s*)?(?i:id|login|account|root|admin|user|name|wifi|role|host|default|계정|아이디))\s*?(?(ddash)[ =]|[ :=])\s*?(?P<value>\S+)
139
139
  filter_type:
140
140
  - ValueAllowlistCheck
141
- - ValuePatternCheck
141
+ - ValuePatternCheck(4)
142
142
  min_line_len: 10
143
143
  required_substrings:
144
144
  - pass
@@ -157,10 +157,10 @@
157
157
  confidence: moderate
158
158
  type: pattern
159
159
  values:
160
- - (?P<variable>[\w.-]{0,80}(?i:(?P<id>\bid\b)|id\b|user|name|계정|아이디)[\w.-]{0,80}(?(id)[ :(/]{1,80}|[:(/]{1,80})(?i:pa[as]swo?r?ds?|pwd?|비밀번호|비번|패스워드|암호))\)?(\s*->\s*|[ =:)(/]{1,80}|\s+is\s+|\s+are\s+|\s*는\s*|\s*은\s*|\s*설정은\s*)\(?(?P<id_value>[\w.-]{2,31})[ :\(/\"',]{1,80}(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){4,31}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))
160
+ - (?P<variable>[\w.-]{0,80}(?i:(?P<id>\bid\b)|id\b|user|name|계정|아이디)[\w.-]{0,80}(?(id)[ :(/]{1,80}|[:(/]{1,80})(?i:pa[as]swo?r?ds?|pwd?|비밀번호|비번|패스워드|암호))\)?(\s*->\s*|[ =:)(/]{1,80}|\s+is\s+|\s+are\s+|\s*는\s*|\s*은\s*|\s*설정은\s*)\(?(?P<id_value>[\w.-]{2,64})[ :\(/\"',]{1,80}(?P<value>(?-i:(?P<a>[A-Z])|(?P<b>[a-z])|(?P<c>[0-9/_+=~!@#$%^&*;:?-])){4,64}(?(a)(?(b)(?(c)(\S|$)|(?!x)x)|(?!x)x)|(?!x)x))
161
161
  filter_type:
162
162
  - ValueAllowlistCheck
163
- - ValuePatternCheck
163
+ - ValuePatternCheck(4)
164
164
  - ValueDictionaryKeywordCheck
165
165
  min_line_len: 10
166
166
  required_substrings:
@@ -174,24 +174,6 @@
174
174
  target:
175
175
  - doc
176
176
 
177
- - name: SQL Password
178
- severity: medium
179
- confidence: weak
180
- type: pattern
181
- values:
182
- - (\\[nrt]|\b)(?i:(?P<variable>(CREATE|ALTER|SET\s{1,8}PASSWORD|INSERT(\s{1,8}IGNORE)?|UPDATE\s{1,8}[^\s;]{1,80})\s{1,8}(LOGIN|USER|ROLE|FOR|INTO|SET)\s{1,8}([^\s;]{1,80}\s{1,8}|VALUES\s*\(){1,8}(IDENTIFIED((\s{1,8}WITH\s{1,8}\S{1,80})?\s{1,8}(BY|AS))|(=|WITH)?\s*PASSWORD\b(\s*=)?)))\s*(?P<wrap>[(]\s*)?(?P<value_leftquote>((?P<esq>\\{1,8})?([`'\"]|&(quot|apos);)){1,4})?(?P<value>(?(value_leftquote)((?!(?P=value_leftquote))(?(esq)((?!(?P=esq)([`'\"]|&(quot|apos);)).)|((?!(?P=value_leftquote)).)))|(?!&(quot|apos);)(\\+([ tnr]|[^\s`'\"])|[^\s`'\",;\\])){3,80})(?(value_leftquote)(?P<value_rightquote>(?<!\\)(?P=value_leftquote))|(?(wrap)[)]|[\s`'\",;]))
183
- filter_type:
184
- - ValueAllowlistCheck
185
- - ValuePatternCheck(4)
186
- min_line_len: 8
187
- required_substrings:
188
- - password
189
- - identified
190
- target:
191
- - doc
192
- - code
193
- use_ml: true
194
-
195
177
  - name: UUID
196
178
  severity: info
197
179
  confidence: strong
@@ -203,12 +185,26 @@
203
185
  - "-"
204
186
  required_regex: "[0-9A-Za-z_/+-]{15}"
205
187
  filter_type:
206
- - ValuePatternCheck
188
+ - ValuePatternCheck(4)
207
189
  use_ml: false
208
190
  target:
209
191
  - code
210
192
  - doc
211
193
 
194
+ - name: Akamai Credentials
195
+ severity: high
196
+ confidence: strong
197
+ type: pattern
198
+ values:
199
+ - (?P<value>akab-[0-9a-z]{16}-[0-9a-z]{16})(?!\.[0-9a-z-]{1,80}\.akamaiapis\.net)
200
+ filter_type: GeneralPattern
201
+ required_substrings:
202
+ - akab-
203
+ min_line_len: 38
204
+ target:
205
+ - code
206
+ - doc
207
+
212
208
  - name: AWS Client ID
213
209
  severity: high
214
210
  confidence: moderate
@@ -235,7 +231,7 @@
235
231
  - LineSpecificKeyCheck
236
232
  - ValuePatternCheck
237
233
  - ValueBase64PartCheck
238
- - ValueCoupleKeywordCheck(3)
234
+ - ValueMorphemesCheck
239
235
  required_substrings:
240
236
  - A
241
237
  min_line_len: 20
@@ -264,7 +260,7 @@
264
260
  type: pattern
265
261
  values:
266
262
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>dt0[A-Za-z]{1}[0-9]{2}\.[0-9A-Z]{24}\.[0-9A-Z]{64})(?![0-9A-Za-z_-])
267
- filter_type: GeneralPattern
263
+ filter_type: TokenPattern
268
264
  required_substrings:
269
265
  - dt0
270
266
  min_line_len: 90
@@ -294,7 +290,7 @@
294
290
  type: pattern
295
291
  values:
296
292
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[0-9]{12,18}\|[0-9A-Za-z_-]{24,28})(?![0-9A-Za-z_+-])
297
- filter_type: GeneralPattern
293
+ filter_type: TokenPattern
298
294
  required_substrings:
299
295
  - "|"
300
296
  required_regex: "[0-9A-Za-z_/+-]{15}"
@@ -303,28 +299,13 @@
303
299
  - code
304
300
  - doc
305
301
 
306
- - name: Github Old Token
307
- severity: high
308
- confidence: moderate
309
- type: pattern
310
- values:
311
- - (?i)((git)[0-9A-Za-z_-]{0,80}(token|key|api)[0-9A-Za-z_-]{0,80}(\s)*(=|:|:=)(\s)*(["']?)(?P<value>[0-9a-z]{40})(["']?))
312
- filter_type: GeneralPattern
313
- use_ml: true
314
- required_substrings:
315
- - git
316
- min_line_len: 47
317
- target:
318
- - code
319
- - doc
320
-
321
302
  - name: Google API Key
322
303
  severity: high
323
304
  confidence: moderate
324
305
  type: pattern
325
306
  values:
326
307
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>AIza[0-9A-Za-z_-]{35})
327
- filter_type: GeneralPattern
308
+ filter_type: TokenPattern
328
309
  required_substrings:
329
310
  - AIza
330
311
  min_line_len: 39
@@ -353,7 +334,7 @@
353
334
  type: pattern
354
335
  values:
355
336
  - (?P<value>GOCSPX-[0-9A-Za-z_-]{28})(?![0-9A-Za-z_-])
356
- filter_type: GeneralPattern
337
+ filter_type: TokenPattern
357
338
  required_substrings:
358
339
  - GOCSPX-
359
340
  min_line_len: 40
@@ -367,7 +348,7 @@
367
348
  type: pattern
368
349
  values:
369
350
  - (?P<value>ya29\.[0-9A-Za-z_-]{22,8000})
370
- filter_type: GeneralPattern
351
+ filter_type: TokenPattern
371
352
  required_substrings:
372
353
  - ya29.
373
354
  min_line_len: 27
@@ -375,13 +356,27 @@
375
356
  - code
376
357
  - doc
377
358
 
359
+ - name: Google OAuth Refresh Token
360
+ severity: medium
361
+ confidence: weak
362
+ type: pattern
363
+ values:
364
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>1//0[0-9A-Za-z_-]{80,8000})
365
+ filter_type: TokenPattern
366
+ required_substrings:
367
+ - 1//0
368
+ min_line_len: 84
369
+ target:
370
+ - code
371
+ - doc
372
+
378
373
  - name: Heroku Credentials
379
374
  severity: high
380
375
  confidence: strong
381
376
  type: pattern
382
377
  values:
383
378
  - (?P<value>HRKU-([0-9A-Za-z_-]{60}|[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}))
384
- filter_type: GeneralPattern
379
+ filter_type: TokenPattern
385
380
  required_substrings:
386
381
  - HRKU-
387
382
  min_line_len: 41
@@ -395,7 +390,7 @@
395
390
  type: pattern
396
391
  values:
397
392
  - (?P<value>IGQVJ[=0-9A-Za-z_-]{100,8000})(?![=0-9A-Za-z_-])
398
- filter_type: GeneralPattern
393
+ filter_type: TokenPattern
399
394
  required_substrings:
400
395
  - IGQVJ
401
396
  min_line_len: 105
@@ -452,7 +447,7 @@
452
447
  - (?P<variable>\b[dk])[^0-9A-Za-z_-]{1,8}(?P<value>[0-9A-Za-z_-]{22,8000})(?![=0-9A-Za-z_-])
453
448
  filter_type:
454
449
  - ValuePatternCheck
455
- - ValueCoupleKeywordCheck(3)
450
+ - ValueMorphemesCheck
456
451
  required_substrings:
457
452
  - kty
458
453
  min_line_len: 8
@@ -466,7 +461,7 @@
466
461
  type: pattern
467
462
  values:
468
463
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[0-9A-Za-z_-]{32}-us[0-9]{1,2})(?![0-9A-Za-z_-])
469
- filter_type: GeneralPattern
464
+ filter_type: TokenPattern
470
465
  required_substrings:
471
466
  - -us
472
467
  min_line_len: 35
@@ -479,10 +474,9 @@
479
474
  confidence: moderate
480
475
  type: pattern
481
476
  values:
482
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>key-[0-9A-Za-z_-]{32})(?![0-9A-Za-z_-])
483
- filter_type: GeneralPattern
484
- required_substrings:
485
- - key-
477
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>key-[0-9a-z]{32}|[0-9a-f]{32}-[0-9a-f]{8}-[0-9a-f]{8})(?![0-9A-Za-z_-])
478
+ filter_type: TokenPattern
479
+ required_regex: "[0-9A-Za-z_/+-]{15}"
486
480
  min_line_len: 36
487
481
  target:
488
482
  - code
@@ -565,7 +559,7 @@
565
559
  type: pattern
566
560
  values:
567
561
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>SG\.[0-9A-Za-z_-]{16,32}\.[0-9A-Za-z_-]{16,64})
568
- filter_type: GeneralPattern
562
+ filter_type: TokenPattern
569
563
  required_substrings:
570
564
  - SG.
571
565
  min_line_len: 34
@@ -592,10 +586,11 @@
592
586
  confidence: strong
593
587
  type: pattern
594
588
  values:
595
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>xox[a-z]\-[0-9A-Za-z-]{10,250})(?![0-9A-Za-z_-])
596
- filter_type: GeneralPattern
589
+ - (?P<value>(xapp|xox[a-z])\-[0-9A-Za-z-]{10,250})(?![0-9A-Za-z_-])
590
+ filter_type: TokenPattern
597
591
  required_substrings:
598
592
  - xox
593
+ - xapp
599
594
  min_line_len: 15
600
595
  target:
601
596
  - code
@@ -653,7 +648,7 @@
653
648
  type: pattern
654
649
  values:
655
650
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>sq0[a-z]{3}-[0-9A-Za-z_-]{22}([0-9A-Za-z_-]{21})?)(?![0-9A-Za-z_-])
656
- filter_type: GeneralPattern
651
+ filter_type: TokenPattern
657
652
  required_substrings:
658
653
  - sq0
659
654
  min_line_len: 29
@@ -699,83 +694,13 @@
699
694
  - code
700
695
  - doc
701
696
 
702
- - name: CMD ConvertTo-SecureString
703
- severity: high
704
- confidence: moderate
705
- type: pattern
706
- values:
707
- - (?P<variable>ConvertTo-SecureString(\s\s*-(String|AsPlainText|Force))*)\s\s*(?P<value_leftquote>(\\?[\"']){1,3})?(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,800})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
708
- filter_type: GeneralKeyword
709
- use_ml: true
710
- required_substrings:
711
- - convertto-securestring
712
- min_line_len: 27
713
- target:
714
- - code
715
-
716
- - name: CMD Password
717
- severity: high
718
- confidence: moderate
719
- type: pattern
720
- values:
721
- - (^|\W|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<variable>-[A-Za-z_-]*(?i:pass(in|out|word|phrase)))\s\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(pass:)?(?!file:|env:|fd:)(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,80})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
722
- filter_type: GeneralKeyword
723
- use_ml: true
724
- required_substrings:
725
- - pass
726
- min_line_len: 12
727
- target:
728
- - code
729
-
730
- - name: CMD Token
731
- severity: high
732
- confidence: moderate
733
- type: pattern
734
- values:
735
- - (^|\W|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<variable>-[A-Za-z_-]*(?i:token))\s\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,4000})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
736
- filter_type: GeneralKeyword
737
- use_ml: true
738
- required_substrings:
739
- - token
740
- min_line_len: 12
741
- target:
742
- - code
743
-
744
- - name: CMD Secret
745
- severity: high
746
- confidence: moderate
747
- type: pattern
748
- values:
749
- - (^|\W|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<variable>-[A-Za-z_-]*(?i:secret)[A-Za-z_-]*)\s\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(pass:)?(?!file:|env:|fd:)(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,4000})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
750
- filter_type: GeneralKeyword
751
- use_ml: true
752
- required_substrings:
753
- - secret
754
- min_line_len: 12
755
- target:
756
- - code
757
-
758
- - name: URL Credentials
759
- severity: high
760
- confidence: moderate
761
- type: pattern
762
- values:
763
- - (?P<value_leftquote>[\"'])?(?P<variable>[+0-9A-Za-z-]{2,80}://)([^\s\'"<>\[\]^~`{|}:/]{0,80}:){1,3}(?P<value>[^\s\'"<>\[\]^~`{|}@:/]{3,80})@[^\s\'"<>\[\]^~`{|}@:/]{1,800}\\{0,8}(?P<value_rightquote>[\"'])?
764
- filter_type: UrlCredentialsGroup
765
- use_ml: true
766
- required_substrings:
767
- - ://
768
- min_line_len: 10
769
- target:
770
- - code
771
-
772
697
  - name: Telegram Bot API Token
773
698
  severity: high
774
699
  confidence: moderate
775
700
  type: pattern
776
701
  values:
777
702
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[0-9]{8,10}:[0-9A-Za-z_-]{35})(?![0-9A-Za-z_-])
778
- filter_type: GeneralPattern
703
+ filter_type: TokenPattern
779
704
  required_substrings:
780
705
  - :AA
781
706
  min_line_len: 45
@@ -789,7 +714,7 @@
789
714
  type: pattern
790
715
  values:
791
716
  - (?P<value>pypi-[0-9A-Za-z_-]{150,255})
792
- filter_type: GeneralPattern
717
+ filter_type: TokenPattern
793
718
  required_substrings:
794
719
  - pypi-
795
720
  min_line_len: 155
@@ -797,6 +722,21 @@
797
722
  - code
798
723
  - doc
799
724
 
725
+ - name: NPM Token
726
+ severity: high
727
+ confidence: strong
728
+ type: pattern
729
+ values:
730
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>npm_[0-9A-Za-z_-]{36,255})
731
+ filter_type:
732
+ - ValueGitHubCheck
733
+ required_substrings:
734
+ - npm_
735
+ min_line_len: 40
736
+ target:
737
+ - code
738
+ - doc
739
+
800
740
  - name: Github Classic Token
801
741
  severity: high
802
742
  confidence: strong
@@ -966,32 +906,6 @@
966
906
  - code
967
907
  - doc
968
908
 
969
- - name: Bitbucket Client ID
970
- severity: info
971
- confidence: weak
972
- type: pattern
973
- values:
974
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[0-9A-Za-z]{18}([0-9A-Za-z]{14})?)(?![=0-9A-Za-z_+-])
975
- filter_type: WeirdBase64Token
976
- min_line_len: 18
977
- required_regex: "[0-9A-Za-z_/+-]{15}"
978
- target:
979
- - code
980
- - doc
981
-
982
- - name: Bitbucket Client Secret
983
- severity: info
984
- confidence: weak
985
- type: pattern
986
- values:
987
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>([0-9A-Za-z_-]{32}){1,2})(?![=0-9A-Za-z_+-])
988
- filter_type: WeirdBase64Token
989
- min_line_len: 32
990
- required_regex: "[0-9A-Za-z_/+-]{15}"
991
- target:
992
- - code
993
- - doc
994
-
995
909
  - name: Jira / Confluence PAT token
996
910
  severity: high
997
911
  confidence: strong
@@ -1010,19 +924,6 @@
1010
924
  - code
1011
925
  - doc
1012
926
 
1013
- - name: Atlassian Old PAT token
1014
- severity: info
1015
- confidence: weak
1016
- type: pattern
1017
- values:
1018
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[0-9A-Za-z]{24})(?![=.0-9A-Za-z_/+-])
1019
- filter_type: WeirdBase64Token
1020
- min_line_len: 24
1021
- required_regex: "[0-9A-Za-z_/+-]{15}"
1022
- target:
1023
- - code
1024
- - doc
1025
-
1026
927
  - name: Atlassian PAT token
1027
928
  severity: high
1028
929
  confidence: strong
@@ -1043,12 +944,13 @@
1043
944
  confidence: strong
1044
945
  type: pattern
1045
946
  values:
1046
- - (?P<value>do[op]_v1_[a-f0-9]{64})(?![0-9A-Za-z_-])
947
+ - (?P<value>do[opr]_v1_[a-f0-9]{64})(?![0-9A-Za-z_-])
1047
948
  filter_type: TokenPattern
1048
949
  min_line_len: 71
1049
950
  required_substrings:
1050
951
  - doo_v1_
1051
952
  - dop_v1_
953
+ - dor_v1_
1052
954
  target:
1053
955
  - code
1054
956
  - doc
@@ -1058,7 +960,7 @@
1058
960
  confidence: moderate
1059
961
  type: pattern
1060
962
  values:
1061
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>sl.[0-9A-Za-z_-]{135})(?![0-9A-Za-z_-])
963
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>sl\.(u\.)?[0-9A-Za-z_-]{135})(?![0-9A-Za-z_-])
1062
964
  filter_type: TokenPattern
1063
965
  min_line_len: 138
1064
966
  required_substrings:
@@ -1180,32 +1082,6 @@
1180
1082
  - code
1181
1083
  - doc
1182
1084
 
1183
- - name: Gitlab Incoming Email Token
1184
- severity: info
1185
- confidence: weak
1186
- type: pattern
1187
- values:
1188
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[a-z0-9]{24,25})(?![=0-9A-Za-z_/+-])
1189
- filter_type: WeirdBase36Token
1190
- min_line_len: 24
1191
- required_regex: "[0-9A-Za-z_/+-]{15}"
1192
- target:
1193
- - code
1194
- - doc
1195
-
1196
- - name: Gitlab Feed Token
1197
- severity: info
1198
- confidence: weak
1199
- type: pattern
1200
- values:
1201
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[0-9A-Za-z_-]{20})(?![=0-9A-Za-z_/+-])
1202
- filter_type: WeirdBase64Token
1203
- min_line_len: 20
1204
- required_regex: "[0-9A-Za-z_/+-]{15}"
1205
- target:
1206
- - code
1207
- - doc
1208
-
1209
1085
  - name: Hashicorp Vault Token
1210
1086
  severity: high
1211
1087
  confidence: strong
@@ -1232,7 +1108,7 @@
1232
1108
  - (?P<value>[0-9A-Za-z_-]{14}\.atlasv1\.[0-9A-Za-z_-]{67})(?![0-9A-Za-z_-])
1233
1109
  filter_type:
1234
1110
  - ValuePatternCheck
1235
- - ValueEntropyBase64Check
1111
+ - ValueMorphemesCheck
1236
1112
  min_line_len: 90
1237
1113
  required_substrings:
1238
1114
  - .atlasv1.
@@ -1240,18 +1116,45 @@
1240
1116
  - code
1241
1117
  - doc
1242
1118
 
1243
- - name: Jira 2FA
1119
+ - name: NKEY Seed
1120
+ severity: high
1121
+ confidence: weak
1122
+ type: pattern
1123
+ values:
1124
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>S[ACNOPUX][A-Z2-7]{40,200})(?![=0-9A-Za-z_+-])
1125
+ min_line_len: 42
1126
+ filter_type:
1127
+ - ValueMorphemesCheck
1128
+ - ValuePatternCheck
1129
+ - ValueEntropyBase32Check
1130
+ - ValueBase32DataCheck
1131
+ - ValueTokenBase32Check
1132
+ required_substrings:
1133
+ - SA
1134
+ - SC
1135
+ - SN
1136
+ - SO
1137
+ - SP
1138
+ - SU
1139
+ - SX
1140
+ required_regex: "[0-9A-Za-z_/+-]{15}"
1141
+ target:
1142
+ - code
1143
+ - doc
1144
+
1145
+ - name: OTP / 2FA Secret
1244
1146
  severity: info
1245
1147
  confidence: weak
1246
1148
  type: pattern
1247
1149
  values:
1248
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>[A-Z2-7]{16})(?![=0-9A-Za-z_+-])
1150
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>([A-Z2-7]{16}){1,2})(?![=0-9A-Za-z_+-])
1249
1151
  filter_type:
1250
- - ValueCoupleKeywordCheck
1152
+ - ValueMorphemesCheck
1251
1153
  - ValuePatternCheck
1252
1154
  - ValueEntropyBase32Check
1253
1155
  - ValueBase32DataCheck
1254
1156
  - ValueTokenBase32Check
1157
+ - ValueBase64PartCheck
1255
1158
  min_line_len: 16
1256
1159
  required_regex: "[0-9A-Za-z_/+-]{15}"
1257
1160
  target:
@@ -1263,11 +1166,11 @@
1263
1166
  confidence: strong
1264
1167
  type: pattern
1265
1168
  values:
1266
- - (?P<value>sk-[0-9A-Za-z_-]{16,32}(T3BlbkFJ|9wZW5BS|PcGVuQU)[0-9A-Za-z_-]{16,32})
1169
+ - (?P<value>sk-[0-9A-Za-z_-]{16,160}(T3BlbkFJ|9wZW5BS|PcGVuQU)[0-9A-Za-z_-]{16,160})
1267
1170
  min_line_len: 51
1268
1171
  filter_type:
1269
1172
  - ValuePatternCheck
1270
- - ValueEntropyBase64Check
1173
+ - ValueMorphemesCheck
1271
1174
  required_substrings:
1272
1175
  - T3BlbkFJ
1273
1176
  - 9wZW5BS
@@ -1276,6 +1179,23 @@
1276
1179
  - code
1277
1180
  - doc
1278
1181
 
1182
+ - name: Docker Access Token
1183
+ severity: high
1184
+ confidence: strong
1185
+ type: pattern
1186
+ values:
1187
+ - (?P<value>dckr_[op]at_[0-9A-Za-z_-]{27,32})
1188
+ min_line_len: 36
1189
+ filter_type:
1190
+ - ValuePatternCheck
1191
+ - ValueMorphemesCheck
1192
+ required_substrings:
1193
+ - dckr_pat_
1194
+ - dckr_oat_
1195
+ target:
1196
+ - code
1197
+ - doc
1198
+
1279
1199
  - name: Docker Swarm Token
1280
1200
  severity: high
1281
1201
  confidence: strong
@@ -1284,13 +1204,30 @@
1284
1204
  - (?P<value>SWMTKN-1-[0-9a-z]{50}-[0-9a-z]{25})
1285
1205
  min_line_len: 85
1286
1206
  filter_type:
1287
- - ValueCoupleKeywordCheck
1207
+ - ValuePatternCheck
1208
+ - ValueMorphemesCheck
1288
1209
  required_substrings:
1289
1210
  - SWMTKN-1-
1290
1211
  target:
1291
1212
  - code
1292
1213
  - doc
1293
1214
 
1215
+ - name: Docker Swarm Key
1216
+ severity: high
1217
+ confidence: strong
1218
+ type: pattern
1219
+ values:
1220
+ - (?P<value>SWMKEY-1-[0-9A-Za-z]{43})
1221
+ min_line_len: 52
1222
+ filter_type:
1223
+ - ValuePatternCheck
1224
+ - ValueMorphemesCheck
1225
+ required_substrings:
1226
+ - SWMKEY-1-
1227
+ target:
1228
+ - code
1229
+ - doc
1230
+
1294
1231
  - name: Groq API Key
1295
1232
  severity: high
1296
1233
  confidence: strong
@@ -1298,11 +1235,29 @@
1298
1235
  values:
1299
1236
  - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>gsk_[0-9A-Za-z_-]{52})(?![0-9A-Za-z_-])
1300
1237
  min_line_len: 56
1238
+ filter_type:
1239
+ - ValuePatternCheck
1240
+ - ValueMorphemesCheck
1241
+ required_substrings:
1242
+ - WGdyb3FY
1243
+ - hncm9xW
1244
+ - YZ3JvcV
1245
+ target:
1246
+ - code
1247
+ - doc
1248
+
1249
+ - name: X AI API Key
1250
+ severity: high
1251
+ confidence: moderate
1252
+ type: pattern
1253
+ values:
1254
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>xai-[0-9A-Za-z_-]{80})(?![0-9A-Za-z_-])
1255
+ min_line_len: 84
1301
1256
  filter_type:
1302
1257
  - ValuePatternCheck
1303
1258
  - ValueEntropyBase64Check
1304
1259
  required_substrings:
1305
- - gsk_
1260
+ - xai-
1306
1261
  target:
1307
1262
  - code
1308
1263
  - doc
@@ -1331,8 +1286,7 @@
1331
1286
  - (?P<value>tvly-[0-9A-Za-z_-]{32,40})(?![0-9A-Za-z_-])
1332
1287
  min_line_len: 37
1333
1288
  filter_type:
1334
- - ValuePatternCheck(5)
1335
- - ValueEntropyBase64Check
1289
+ - ValuePatternCheck
1336
1290
  required_substrings:
1337
1291
  - tvly-
1338
1292
  target:
@@ -1347,7 +1301,7 @@
1347
1301
  - (?P<value>sntrys_eyJ[0-9A-Za-z_-]{80,8000}=*([0-9A-Za-z_-]{32,256})?)(?![0-9A-Za-z_-])
1348
1302
  min_line_len: 37
1349
1303
  filter_type:
1350
- - ValuePatternCheck(5)
1304
+ - ValuePatternCheck
1351
1305
  required_substrings:
1352
1306
  - sntrys_eyJ
1353
1307
  target:
@@ -1362,7 +1316,7 @@
1362
1316
  - (?P<value>sntryu_[0-9a-f]{64})(?![0-9A-Za-z_-])
1363
1317
  min_line_len: 37
1364
1318
  filter_type:
1365
- - ValuePatternCheck(5)
1319
+ - ValuePatternCheck
1366
1320
  required_substrings:
1367
1321
  - sntryu_
1368
1322
  target:
@@ -1394,7 +1348,7 @@
1394
1348
  values:
1395
1349
  - (?P<variable>discord(?:app)?\.com/api/webhooks)(?P<value>/[0-9]{16,22}/[0-9A-Za-z_-]{40,100})
1396
1350
  filter_type:
1397
- - ValueCoupleKeywordCheck(3)
1351
+ - ValueMorphemesCheck
1398
1352
  required_substrings:
1399
1353
  - discordapp.com/api/webhooks
1400
1354
  - discord.com/api/webhooks
@@ -1422,7 +1376,7 @@
1422
1376
  confidence: weak
1423
1377
  type: pattern
1424
1378
  values:
1425
- - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>00D[0-9A-Za-z]{9,15}(![.0-9A-Za-z_-]{24,200})?)(?![0-9A-Za-z_-])
1379
+ - (?:^|[^0-9A-Za-z_+-]|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<value>(3MVG[0-9A-Za-z_.]{24,200}|00D[0-9A-Za-z]{9,15}(![0-9A-Za-z_.]{24,200})?))(?![0-9A-Za-z_.])
1426
1380
  min_line_len: 12
1427
1381
  filter_type:
1428
1382
  - ValuePatternCheck(9)
@@ -1430,49 +1384,185 @@
1430
1384
  - ValueBase64PartCheck
1431
1385
  required_substrings:
1432
1386
  - 00D
1387
+ - 3MVG
1433
1388
  target:
1434
1389
  - code
1435
1390
  - doc
1436
1391
 
1437
- - name: API
1392
+ - name: Postman Credentials
1438
1393
  severity: medium
1439
1394
  confidence: moderate
1440
- type: keyword
1395
+ type: pattern
1441
1396
  values:
1442
- - api(?!tal)
1397
+ - (?P<value>(PMAK-[0-9a-f]{24}-[0-9a-f]{34}|PMAT-[0-9A-Z]{26}))
1398
+ min_line_len: 29
1399
+ filter_type:
1400
+ - ValuePatternCheck
1401
+ required_substrings:
1402
+ - PMAK-
1403
+ - PMAT-
1404
+ target:
1405
+ - code
1406
+ - doc
1407
+
1408
+ - name: Basic Authorization
1409
+ severity: medium
1410
+ confidence: strong
1411
+ type: pattern
1412
+ values:
1413
+ - (?P<variable>(?i:basic))(?P<separator>\s+)(?P<value>[=0-9A-Za-z_/+-]{8,8000})(?![0-9A-Za-z_/+-])
1414
+ min_line_len: 18
1415
+ filter_type:
1416
+ - ValueBasicAuthCheck
1417
+ required_substrings:
1418
+ - basic
1419
+ target:
1420
+ - code
1421
+ - doc
1422
+
1423
+ - name: Bearer Authorization
1424
+ severity: medium
1425
+ confidence: moderate
1426
+ type: pattern
1427
+ values:
1428
+ - (?P<variable>(?i:bearer|ntlm))(?P<separator>\s+)(?P<value>[.0-9A-Za-z_/+-]{32,8000}=*)(?![0-9A-Za-z_/+-])
1429
+ min_line_len: 37
1443
1430
  filter_type: GeneralKeyword
1444
- use_ml: true
1445
- min_line_len: 11
1446
1431
  required_substrings:
1447
- - api
1432
+ - bearer
1433
+ - ntlm
1448
1434
  target:
1449
1435
  - code
1436
+ - doc
1450
1437
 
1451
- - name: Auth
1438
+ - name: SQL Password
1452
1439
  severity: medium
1440
+ confidence: weak
1441
+ type: pattern
1442
+ values:
1443
+ - (\\[nrt]|\b)(?i:(?P<variable>(CREATE|ALTER|SET\s{1,8}PASSWORD|INSERT(\s{1,8}IGNORE)?|UPDATE\s{1,8}[^\s;]{1,80})\s{1,8}(LOGIN|USER|ROLE|FOR|INTO|SET)\s{1,8}([^\s;]{1,80}\s{1,8}|VALUES\s*\(){1,8}(IDENTIFIED((\s{1,8}WITH\s{1,8}\S{1,80})?\s{1,8}(BY|AS))|(=|WITH)?\s*PASSWORD\b(\s*=)?)))\s*(?P<wrap>[(]\s*)?(?P<value_leftquote>((?P<esq>\\{1,8})?([\"'`]|&(quot|apos|#3[49]);)){1,4})?(?P<value>(?(value_leftquote)((?!(?P=value_leftquote))(?(esq)((?!(?P=esq)([\"'`]|&(quot|apos|#3[49]);)).)|((?!(?P=value_leftquote)).)))|(?!&(quot|apos|#3[49]);)(\\+([ tnr]|[^\s\"'`])|[^\s\"'`,;\\])){3,80})(?(value_leftquote)(?P<value_rightquote>(?<!\\)(?P=value_leftquote))|(?(wrap)[)]|[\s\"'`,;]))
1444
+ filter_type:
1445
+ - ValueAllowlistCheck
1446
+ - ValuePatternCheck
1447
+ use_ml: true
1448
+ min_line_len: 8
1449
+ required_substrings:
1450
+ - password
1451
+ - identified
1452
+ target:
1453
+ - doc
1454
+ - code
1455
+
1456
+ - name: CURL User Password
1457
+ severity: high
1453
1458
  confidence: moderate
1454
- type: keyword
1459
+ type: pattern
1455
1460
  values:
1456
- - auth(?!ors?(?!i[tz]))
1461
+ - (?P<variable>curl)\s.*(-[uU]|--(proxy-)?user)\s\s*(?P<value_leftquote>(\\*[\"']){1,3})?(?(value_leftquote)[^\"'\\:]|[^\s\"'\\:]){0,64}:(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,64})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
1462
+ filter_type: GeneralKeyword
1463
+ use_ml: true
1464
+ required_substrings:
1465
+ - curl
1466
+ min_line_len: 16
1467
+ target:
1468
+ - code
1469
+
1470
+ - name: CMD ConvertTo-SecureString
1471
+ severity: high
1472
+ confidence: moderate
1473
+ type: pattern
1474
+ values:
1475
+ - (?P<variable>ConvertTo-SecureString(\s\s*-(String|AsPlainText|Force))*)\s\s*(?P<value_leftquote>(\\?[\"']){1,3})?(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,800})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
1457
1476
  filter_type: GeneralKeyword
1458
1477
  use_ml: true
1478
+ required_substrings:
1479
+ - convertto-securestring
1480
+ min_line_len: 27
1481
+ target:
1482
+ - code
1483
+
1484
+ - name: CMD Password
1485
+ severity: high
1486
+ confidence: moderate
1487
+ type: pattern
1488
+ values:
1489
+ - (^|\W|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<variable>-[A-Za-z_-]*(?i:pass(in|out|word|phrase)))(\s|\\?[\"'],)\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(pass:)?(?!file:|env:|fd:)(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,80})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
1490
+ filter_type: GeneralKeyword
1491
+ use_ml: true
1492
+ required_substrings:
1493
+ - pass
1459
1494
  min_line_len: 12
1495
+ target:
1496
+ - code
1497
+
1498
+ - name: CMD Token
1499
+ severity: high
1500
+ confidence: moderate
1501
+ type: pattern
1502
+ values:
1503
+ - (^|\W|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<variable>-[A-Za-z_-]*(?i:token|oauth2-bearer))(\s|\\?[\"'],)\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,4000})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
1504
+ filter_type: GeneralKeyword
1505
+ use_ml: true
1460
1506
  required_substrings:
1461
- - auth
1507
+ - token
1508
+ - oauth2-bearer
1509
+ min_line_len: 12
1462
1510
  target:
1463
1511
  - code
1464
1512
 
1465
- - name: Certificate
1513
+ - name: CMD Secret
1514
+ severity: high
1515
+ confidence: moderate
1516
+ type: pattern
1517
+ values:
1518
+ - (^|\W|\\[0abfnrtv]|(?:%|\\x)[0-9A-Fa-f]{2}|\\[0-7]{3}|\\[Uu][0-9A-Fa-f]{4}|\x1B\[[0-9;]{0,80}m)(?P<variable>-[A-Za-z_-]*(?i:secret)[A-Za-z_-]*)(\s|\\?[\"'],)\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(pass:)?(?!file:|env:|fd:)(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,4000})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
1519
+ filter_type: GeneralKeyword
1520
+ use_ml: true
1521
+ required_substrings:
1522
+ - secret
1523
+ min_line_len: 12
1524
+ target:
1525
+ - code
1526
+
1527
+ - name: URL Credentials
1528
+ severity: high
1529
+ confidence: moderate
1530
+ type: pattern
1531
+ values:
1532
+ - (?P<value_leftquote>[\"'])?(?P<variable>[+0-9A-Za-z-]{2,80}://)([^\s\'"<>\[\]^~`{|}:/]{0,80}:){1,3}(?P<value>[^\s\'"<>\[\]^~`{|}@:/]{3,80})@[^\s\'"<>\[\]^~`{|}@:/]{1,800}\\{0,8}(?P<value_rightquote>[\"'])?
1533
+ filter_type: UrlCredentialsGroup
1534
+ use_ml: true
1535
+ required_substrings:
1536
+ - ://
1537
+ min_line_len: 10
1538
+ target:
1539
+ - code
1540
+
1541
+ - name: API
1542
+ severity: low
1543
+ confidence: moderate
1544
+ type: keyword
1545
+ values:
1546
+ - api(?!tal)
1547
+ filter_type: GeneralKeyword
1548
+ use_ml: true
1549
+ min_line_len: 11
1550
+ required_substrings:
1551
+ - api
1552
+ target:
1553
+ - code
1554
+
1555
+ - name: Auth
1466
1556
  severity: medium
1467
1557
  confidence: moderate
1468
1558
  type: keyword
1469
1559
  values:
1470
- - cert
1560
+ - auth(?!ors?(?!i[tz]))
1471
1561
  filter_type: GeneralKeyword
1472
1562
  use_ml: true
1473
1563
  min_line_len: 12
1474
1564
  required_substrings:
1475
- - cert
1565
+ - auth
1476
1566
  target:
1477
1567
  - code
1478
1568
 
@@ -1491,7 +1581,7 @@
1491
1581
  - code
1492
1582
 
1493
1583
  - name: Key
1494
- severity: medium
1584
+ severity: high
1495
1585
  confidence: moderate
1496
1586
  type: keyword
1497
1587
  values:
@@ -1505,7 +1595,7 @@
1505
1595
  - code
1506
1596
 
1507
1597
  - name: Nonce
1508
- severity: medium
1598
+ severity: low
1509
1599
  confidence: moderate
1510
1600
  type: keyword
1511
1601
  values:
@@ -1519,11 +1609,11 @@
1519
1609
  - code
1520
1610
 
1521
1611
  - name: Password
1522
- severity: medium
1612
+ severity: high
1523
1613
  confidence: moderate
1524
1614
  type: keyword
1525
1615
  values:
1526
- - (?<!by)pass(?!ed|ing|ion|es|age|\s+[a-z]{3,80})|pw(d|\b)
1616
+ - (?<!by)pass(?!e[dns]|ing|ion|age|\s+[a-z]{3,80})|pw(d|\b)
1527
1617
  filter_type: PasswordKeyword
1528
1618
  use_ml: true
1529
1619
  min_line_len: 10
@@ -1534,7 +1624,7 @@
1534
1624
  - code
1535
1625
 
1536
1626
  - name: Salt
1537
- severity: medium
1627
+ severity: low
1538
1628
  confidence: moderate
1539
1629
  type: keyword
1540
1630
  values:
@@ -1562,7 +1652,7 @@
1562
1652
  - code
1563
1653
 
1564
1654
  - name: Token
1565
- severity: medium
1655
+ severity: high
1566
1656
  confidence: moderate
1567
1657
  type: keyword
1568
1658
  values: