credsweeper 1.12.1__py3-none-any.whl → 1.13.0__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.
- credsweeper/__init__.py +1 -1
- credsweeper/__main__.py +23 -13
- credsweeper/app.py +7 -2
- credsweeper/common/keyword_pattern.py +6 -3
- credsweeper/common/morpheme_checklist.txt +13 -1
- credsweeper/config/config.py +1 -0
- credsweeper/credentials/line_data.py +16 -0
- credsweeper/deep_scanner/deep_scanner.py +13 -7
- credsweeper/deep_scanner/rtf_scanner.py +41 -0
- credsweeper/deep_scanner/strings_scanner.py +52 -0
- credsweeper/file_handler/byte_content_provider.py +10 -1
- credsweeper/file_handler/file_path_extractor.py +2 -0
- credsweeper/file_handler/text_content_provider.py +7 -1
- credsweeper/filters/__init__.py +1 -1
- credsweeper/filters/group/token_pattern.py +2 -2
- credsweeper/filters/group/weird_base36_token.py +2 -2
- credsweeper/filters/group/weird_base64_token.py +2 -2
- credsweeper/filters/value_camel_case_check.py +2 -2
- credsweeper/filters/value_file_path_check.py +5 -3
- credsweeper/filters/value_github_check.py +3 -2
- credsweeper/filters/value_morphemes_check.py +43 -0
- credsweeper/filters/value_string_type_check.py +1 -0
- credsweeper/ml_model/features/feature.py +1 -18
- credsweeper/ml_model/features/file_extension.py +1 -1
- credsweeper/ml_model/features/has_html_tag.py +10 -8
- credsweeper/ml_model/features/is_secret_numeric.py +4 -3
- credsweeper/ml_model/features/rule_name.py +1 -1
- credsweeper/ml_model/features/word_in.py +9 -32
- credsweeper/ml_model/features/word_in_path.py +2 -3
- credsweeper/ml_model/features/word_in_postamble.py +1 -4
- credsweeper/ml_model/features/word_in_preamble.py +1 -4
- credsweeper/ml_model/features/word_in_transition.py +1 -4
- credsweeper/ml_model/features/word_in_value.py +2 -3
- credsweeper/ml_model/features/word_in_variable.py +2 -3
- credsweeper/ml_model/ml_config.json +15 -8
- credsweeper/ml_model/ml_model.onnx +0 -0
- credsweeper/ml_model/ml_validator.py +1 -1
- credsweeper/rules/config.yaml +174 -142
- credsweeper/scanner/scanner.py +12 -7
- credsweeper/secret/config.json +18 -5
- credsweeper/utils/util.py +21 -18
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.0.dist-info}/METADATA +7 -7
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.0.dist-info}/RECORD +46 -44
- credsweeper/filters/value_couple_keyword_check.py +0 -28
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.0.dist-info}/WHEEL +0 -0
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.0.dist-info}/entry_points.txt +0 -0
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.0.dist-info}/licenses/LICENSE +0 -0
credsweeper/rules/config.yaml
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
confidence: weak
|
|
4
4
|
type: pattern
|
|
5
5
|
values:
|
|
6
|
-
- (?P<variable>(\w*(?i:비밀번호|비번|패스워드|키|암호화?|토큰|(?<!by)pass(?!
|
|
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
|
|
@@ -34,7 +34,7 @@
|
|
|
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?(?!
|
|
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
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
- ValueAllowlistCheck
|
|
74
74
|
- ValuePatternCheck(4)
|
|
75
75
|
- ValueEntropyBase64Check
|
|
76
|
-
-
|
|
76
|
+
- ValueMorphemesCheck
|
|
77
77
|
min_line_len: 16
|
|
78
78
|
required_substrings:
|
|
79
79
|
- token
|
|
@@ -90,7 +90,7 @@
|
|
|
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,
|
|
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
96
|
- ValuePatternCheck(4)
|
|
@@ -118,7 +118,7 @@
|
|
|
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,
|
|
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
124
|
- ValuePatternCheck(4)
|
|
@@ -134,7 +134,7 @@
|
|
|
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,
|
|
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
|
|
@@ -157,7 +157,7 @@
|
|
|
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,
|
|
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
163
|
- ValuePatternCheck(4)
|
|
@@ -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|#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\"'`,;]))
|
|
183
|
-
filter_type:
|
|
184
|
-
- ValueAllowlistCheck
|
|
185
|
-
- ValuePatternCheck
|
|
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
|
|
@@ -249,7 +231,7 @@
|
|
|
249
231
|
- LineSpecificKeyCheck
|
|
250
232
|
- ValuePatternCheck
|
|
251
233
|
- ValueBase64PartCheck
|
|
252
|
-
-
|
|
234
|
+
- ValueMorphemesCheck
|
|
253
235
|
required_substrings:
|
|
254
236
|
- A
|
|
255
237
|
min_line_len: 20
|
|
@@ -278,7 +260,7 @@
|
|
|
278
260
|
type: pattern
|
|
279
261
|
values:
|
|
280
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_-])
|
|
281
|
-
filter_type:
|
|
263
|
+
filter_type: TokenPattern
|
|
282
264
|
required_substrings:
|
|
283
265
|
- dt0
|
|
284
266
|
min_line_len: 90
|
|
@@ -308,7 +290,7 @@
|
|
|
308
290
|
type: pattern
|
|
309
291
|
values:
|
|
310
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_+-])
|
|
311
|
-
filter_type:
|
|
293
|
+
filter_type: TokenPattern
|
|
312
294
|
required_substrings:
|
|
313
295
|
- "|"
|
|
314
296
|
required_regex: "[0-9A-Za-z_/+-]{15}"
|
|
@@ -317,28 +299,13 @@
|
|
|
317
299
|
- code
|
|
318
300
|
- doc
|
|
319
301
|
|
|
320
|
-
- name: Github Old Token
|
|
321
|
-
severity: high
|
|
322
|
-
confidence: moderate
|
|
323
|
-
type: pattern
|
|
324
|
-
values:
|
|
325
|
-
- (?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})(["']?))
|
|
326
|
-
filter_type: GeneralPattern
|
|
327
|
-
use_ml: true
|
|
328
|
-
required_substrings:
|
|
329
|
-
- git
|
|
330
|
-
min_line_len: 47
|
|
331
|
-
target:
|
|
332
|
-
- code
|
|
333
|
-
- doc
|
|
334
|
-
|
|
335
302
|
- name: Google API Key
|
|
336
303
|
severity: high
|
|
337
304
|
confidence: moderate
|
|
338
305
|
type: pattern
|
|
339
306
|
values:
|
|
340
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})
|
|
341
|
-
filter_type:
|
|
308
|
+
filter_type: TokenPattern
|
|
342
309
|
required_substrings:
|
|
343
310
|
- AIza
|
|
344
311
|
min_line_len: 39
|
|
@@ -367,7 +334,7 @@
|
|
|
367
334
|
type: pattern
|
|
368
335
|
values:
|
|
369
336
|
- (?P<value>GOCSPX-[0-9A-Za-z_-]{28})(?![0-9A-Za-z_-])
|
|
370
|
-
filter_type:
|
|
337
|
+
filter_type: TokenPattern
|
|
371
338
|
required_substrings:
|
|
372
339
|
- GOCSPX-
|
|
373
340
|
min_line_len: 40
|
|
@@ -381,7 +348,7 @@
|
|
|
381
348
|
type: pattern
|
|
382
349
|
values:
|
|
383
350
|
- (?P<value>ya29\.[0-9A-Za-z_-]{22,8000})
|
|
384
|
-
filter_type:
|
|
351
|
+
filter_type: TokenPattern
|
|
385
352
|
required_substrings:
|
|
386
353
|
- ya29.
|
|
387
354
|
min_line_len: 27
|
|
@@ -395,7 +362,7 @@
|
|
|
395
362
|
type: pattern
|
|
396
363
|
values:
|
|
397
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})
|
|
398
|
-
filter_type:
|
|
365
|
+
filter_type: TokenPattern
|
|
399
366
|
required_substrings:
|
|
400
367
|
- 1//0
|
|
401
368
|
min_line_len: 84
|
|
@@ -409,7 +376,7 @@
|
|
|
409
376
|
type: pattern
|
|
410
377
|
values:
|
|
411
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}))
|
|
412
|
-
filter_type:
|
|
379
|
+
filter_type: TokenPattern
|
|
413
380
|
required_substrings:
|
|
414
381
|
- HRKU-
|
|
415
382
|
min_line_len: 41
|
|
@@ -423,7 +390,7 @@
|
|
|
423
390
|
type: pattern
|
|
424
391
|
values:
|
|
425
392
|
- (?P<value>IGQVJ[=0-9A-Za-z_-]{100,8000})(?![=0-9A-Za-z_-])
|
|
426
|
-
filter_type:
|
|
393
|
+
filter_type: TokenPattern
|
|
427
394
|
required_substrings:
|
|
428
395
|
- IGQVJ
|
|
429
396
|
min_line_len: 105
|
|
@@ -480,7 +447,7 @@
|
|
|
480
447
|
- (?P<variable>\b[dk])[^0-9A-Za-z_-]{1,8}(?P<value>[0-9A-Za-z_-]{22,8000})(?![=0-9A-Za-z_-])
|
|
481
448
|
filter_type:
|
|
482
449
|
- ValuePatternCheck
|
|
483
|
-
-
|
|
450
|
+
- ValueMorphemesCheck
|
|
484
451
|
required_substrings:
|
|
485
452
|
- kty
|
|
486
453
|
min_line_len: 8
|
|
@@ -494,7 +461,7 @@
|
|
|
494
461
|
type: pattern
|
|
495
462
|
values:
|
|
496
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_-])
|
|
497
|
-
filter_type:
|
|
464
|
+
filter_type: TokenPattern
|
|
498
465
|
required_substrings:
|
|
499
466
|
- -us
|
|
500
467
|
min_line_len: 35
|
|
@@ -507,10 +474,9 @@
|
|
|
507
474
|
confidence: moderate
|
|
508
475
|
type: pattern
|
|
509
476
|
values:
|
|
510
|
-
- (?:^|[^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-
|
|
511
|
-
filter_type:
|
|
512
|
-
|
|
513
|
-
- 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-f]{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}"
|
|
514
480
|
min_line_len: 36
|
|
515
481
|
target:
|
|
516
482
|
- code
|
|
@@ -593,7 +559,7 @@
|
|
|
593
559
|
type: pattern
|
|
594
560
|
values:
|
|
595
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})
|
|
596
|
-
filter_type:
|
|
562
|
+
filter_type: TokenPattern
|
|
597
563
|
required_substrings:
|
|
598
564
|
- SG.
|
|
599
565
|
min_line_len: 34
|
|
@@ -620,10 +586,11 @@
|
|
|
620
586
|
confidence: strong
|
|
621
587
|
type: pattern
|
|
622
588
|
values:
|
|
623
|
-
- (
|
|
624
|
-
filter_type:
|
|
589
|
+
- (?P<value>(xapp|xox[a-z])\-[0-9A-Za-z-]{10,250})(?![0-9A-Za-z_-])
|
|
590
|
+
filter_type: TokenPattern
|
|
625
591
|
required_substrings:
|
|
626
592
|
- xox
|
|
593
|
+
- xapp
|
|
627
594
|
min_line_len: 15
|
|
628
595
|
target:
|
|
629
596
|
- code
|
|
@@ -681,7 +648,7 @@
|
|
|
681
648
|
type: pattern
|
|
682
649
|
values:
|
|
683
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_-])
|
|
684
|
-
filter_type:
|
|
651
|
+
filter_type: TokenPattern
|
|
685
652
|
required_substrings:
|
|
686
653
|
- sq0
|
|
687
654
|
min_line_len: 29
|
|
@@ -727,83 +694,13 @@
|
|
|
727
694
|
- code
|
|
728
695
|
- doc
|
|
729
696
|
|
|
730
|
-
- name: CMD ConvertTo-SecureString
|
|
731
|
-
severity: high
|
|
732
|
-
confidence: moderate
|
|
733
|
-
type: pattern
|
|
734
|
-
values:
|
|
735
|
-
- (?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}))
|
|
736
|
-
filter_type: GeneralKeyword
|
|
737
|
-
use_ml: true
|
|
738
|
-
required_substrings:
|
|
739
|
-
- convertto-securestring
|
|
740
|
-
min_line_len: 27
|
|
741
|
-
target:
|
|
742
|
-
- code
|
|
743
|
-
|
|
744
|
-
- name: CMD Password
|
|
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: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}))
|
|
750
|
-
filter_type: GeneralKeyword
|
|
751
|
-
use_ml: true
|
|
752
|
-
required_substrings:
|
|
753
|
-
- pass
|
|
754
|
-
min_line_len: 12
|
|
755
|
-
target:
|
|
756
|
-
- code
|
|
757
|
-
|
|
758
|
-
- name: CMD Token
|
|
759
|
-
severity: high
|
|
760
|
-
confidence: moderate
|
|
761
|
-
type: pattern
|
|
762
|
-
values:
|
|
763
|
-
- (^|\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}))
|
|
764
|
-
filter_type: GeneralKeyword
|
|
765
|
-
use_ml: true
|
|
766
|
-
required_substrings:
|
|
767
|
-
- token
|
|
768
|
-
min_line_len: 12
|
|
769
|
-
target:
|
|
770
|
-
- code
|
|
771
|
-
|
|
772
|
-
- name: CMD Secret
|
|
773
|
-
severity: high
|
|
774
|
-
confidence: moderate
|
|
775
|
-
type: pattern
|
|
776
|
-
values:
|
|
777
|
-
- (^|\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}))
|
|
778
|
-
filter_type: GeneralKeyword
|
|
779
|
-
use_ml: true
|
|
780
|
-
required_substrings:
|
|
781
|
-
- secret
|
|
782
|
-
min_line_len: 12
|
|
783
|
-
target:
|
|
784
|
-
- code
|
|
785
|
-
|
|
786
|
-
- name: URL Credentials
|
|
787
|
-
severity: high
|
|
788
|
-
confidence: moderate
|
|
789
|
-
type: pattern
|
|
790
|
-
values:
|
|
791
|
-
- (?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>[\"'])?
|
|
792
|
-
filter_type: UrlCredentialsGroup
|
|
793
|
-
use_ml: true
|
|
794
|
-
required_substrings:
|
|
795
|
-
- ://
|
|
796
|
-
min_line_len: 10
|
|
797
|
-
target:
|
|
798
|
-
- code
|
|
799
|
-
|
|
800
697
|
- name: Telegram Bot API Token
|
|
801
698
|
severity: high
|
|
802
699
|
confidence: moderate
|
|
803
700
|
type: pattern
|
|
804
701
|
values:
|
|
805
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_-])
|
|
806
|
-
filter_type:
|
|
703
|
+
filter_type: TokenPattern
|
|
807
704
|
required_substrings:
|
|
808
705
|
- :AA
|
|
809
706
|
min_line_len: 45
|
|
@@ -817,7 +714,7 @@
|
|
|
817
714
|
type: pattern
|
|
818
715
|
values:
|
|
819
716
|
- (?P<value>pypi-[0-9A-Za-z_-]{150,255})
|
|
820
|
-
filter_type:
|
|
717
|
+
filter_type: TokenPattern
|
|
821
718
|
required_substrings:
|
|
822
719
|
- pypi-
|
|
823
720
|
min_line_len: 155
|
|
@@ -825,6 +722,21 @@
|
|
|
825
722
|
- code
|
|
826
723
|
- doc
|
|
827
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
|
+
|
|
828
740
|
- name: Github Classic Token
|
|
829
741
|
severity: high
|
|
830
742
|
confidence: strong
|
|
@@ -1071,12 +983,13 @@
|
|
|
1071
983
|
confidence: strong
|
|
1072
984
|
type: pattern
|
|
1073
985
|
values:
|
|
1074
|
-
- (?P<value>do[
|
|
986
|
+
- (?P<value>do[opr]_v1_[a-f0-9]{64})(?![0-9A-Za-z_-])
|
|
1075
987
|
filter_type: TokenPattern
|
|
1076
988
|
min_line_len: 71
|
|
1077
989
|
required_substrings:
|
|
1078
990
|
- doo_v1_
|
|
1079
991
|
- dop_v1_
|
|
992
|
+
- dor_v1_
|
|
1080
993
|
target:
|
|
1081
994
|
- code
|
|
1082
995
|
- doc
|
|
@@ -1260,7 +1173,7 @@
|
|
|
1260
1173
|
- (?P<value>[0-9A-Za-z_-]{14}\.atlasv1\.[0-9A-Za-z_-]{67})(?![0-9A-Za-z_-])
|
|
1261
1174
|
filter_type:
|
|
1262
1175
|
- ValuePatternCheck
|
|
1263
|
-
-
|
|
1176
|
+
- ValueMorphemesCheck
|
|
1264
1177
|
min_line_len: 90
|
|
1265
1178
|
required_substrings:
|
|
1266
1179
|
- .atlasv1.
|
|
@@ -1276,7 +1189,7 @@
|
|
|
1276
1189
|
- (?:^|[^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_+-])
|
|
1277
1190
|
min_line_len: 42
|
|
1278
1191
|
filter_type:
|
|
1279
|
-
-
|
|
1192
|
+
- ValueMorphemesCheck
|
|
1280
1193
|
- ValuePatternCheck
|
|
1281
1194
|
- ValueEntropyBase32Check
|
|
1282
1195
|
- ValueBase32DataCheck
|
|
@@ -1301,7 +1214,7 @@
|
|
|
1301
1214
|
values:
|
|
1302
1215
|
- (?:^|[^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_+-])
|
|
1303
1216
|
filter_type:
|
|
1304
|
-
-
|
|
1217
|
+
- ValueMorphemesCheck
|
|
1305
1218
|
- ValuePatternCheck
|
|
1306
1219
|
- ValueEntropyBase32Check
|
|
1307
1220
|
- ValueBase32DataCheck
|
|
@@ -1322,7 +1235,7 @@
|
|
|
1322
1235
|
min_line_len: 51
|
|
1323
1236
|
filter_type:
|
|
1324
1237
|
- ValuePatternCheck
|
|
1325
|
-
-
|
|
1238
|
+
- ValueMorphemesCheck
|
|
1326
1239
|
required_substrings:
|
|
1327
1240
|
- T3BlbkFJ
|
|
1328
1241
|
- 9wZW5BS
|
|
@@ -1340,7 +1253,7 @@
|
|
|
1340
1253
|
min_line_len: 36
|
|
1341
1254
|
filter_type:
|
|
1342
1255
|
- ValuePatternCheck
|
|
1343
|
-
-
|
|
1256
|
+
- ValueMorphemesCheck
|
|
1344
1257
|
required_substrings:
|
|
1345
1258
|
- dckr_pat_
|
|
1346
1259
|
- dckr_oat_
|
|
@@ -1357,7 +1270,7 @@
|
|
|
1357
1270
|
min_line_len: 85
|
|
1358
1271
|
filter_type:
|
|
1359
1272
|
- ValuePatternCheck
|
|
1360
|
-
-
|
|
1273
|
+
- ValueMorphemesCheck
|
|
1361
1274
|
required_substrings:
|
|
1362
1275
|
- SWMTKN-1-
|
|
1363
1276
|
target:
|
|
@@ -1373,7 +1286,7 @@
|
|
|
1373
1286
|
min_line_len: 52
|
|
1374
1287
|
filter_type:
|
|
1375
1288
|
- ValuePatternCheck
|
|
1376
|
-
-
|
|
1289
|
+
- ValueMorphemesCheck
|
|
1377
1290
|
required_substrings:
|
|
1378
1291
|
- SWMKEY-1-
|
|
1379
1292
|
target:
|
|
@@ -1389,7 +1302,7 @@
|
|
|
1389
1302
|
min_line_len: 56
|
|
1390
1303
|
filter_type:
|
|
1391
1304
|
- ValuePatternCheck
|
|
1392
|
-
-
|
|
1305
|
+
- ValueMorphemesCheck
|
|
1393
1306
|
required_substrings:
|
|
1394
1307
|
- WGdyb3FY
|
|
1395
1308
|
- hncm9xW
|
|
@@ -1500,7 +1413,7 @@
|
|
|
1500
1413
|
values:
|
|
1501
1414
|
- (?P<variable>discord(?:app)?\.com/api/webhooks)(?P<value>/[0-9]{16,22}/[0-9A-Za-z_-]{40,100})
|
|
1502
1415
|
filter_type:
|
|
1503
|
-
-
|
|
1416
|
+
- ValueMorphemesCheck
|
|
1504
1417
|
required_substrings:
|
|
1505
1418
|
- discordapp.com/api/webhooks
|
|
1506
1419
|
- discord.com/api/webhooks
|
|
@@ -1541,6 +1454,22 @@
|
|
|
1541
1454
|
- code
|
|
1542
1455
|
- doc
|
|
1543
1456
|
|
|
1457
|
+
- name: Postman Credentials
|
|
1458
|
+
severity: medium
|
|
1459
|
+
confidence: moderate
|
|
1460
|
+
type: pattern
|
|
1461
|
+
values:
|
|
1462
|
+
- (?P<value>(PMAK-[0-9a-f]{24}-[0-9a-f]{34}|PMAT-[0-9A-Z]{26}))
|
|
1463
|
+
min_line_len: 29
|
|
1464
|
+
filter_type:
|
|
1465
|
+
- ValuePatternCheck
|
|
1466
|
+
required_substrings:
|
|
1467
|
+
- PMAK-
|
|
1468
|
+
- PMAT-
|
|
1469
|
+
target:
|
|
1470
|
+
- code
|
|
1471
|
+
- doc
|
|
1472
|
+
|
|
1544
1473
|
- name: Basic Authorization
|
|
1545
1474
|
severity: medium
|
|
1546
1475
|
confidence: strong
|
|
@@ -1571,6 +1500,109 @@
|
|
|
1571
1500
|
- code
|
|
1572
1501
|
- doc
|
|
1573
1502
|
|
|
1503
|
+
- name: SQL Password
|
|
1504
|
+
severity: medium
|
|
1505
|
+
confidence: weak
|
|
1506
|
+
type: pattern
|
|
1507
|
+
values:
|
|
1508
|
+
- (\\[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\"'`,;]))
|
|
1509
|
+
filter_type:
|
|
1510
|
+
- ValueAllowlistCheck
|
|
1511
|
+
- ValuePatternCheck
|
|
1512
|
+
use_ml: true
|
|
1513
|
+
min_line_len: 8
|
|
1514
|
+
required_substrings:
|
|
1515
|
+
- password
|
|
1516
|
+
- identified
|
|
1517
|
+
target:
|
|
1518
|
+
- doc
|
|
1519
|
+
- code
|
|
1520
|
+
|
|
1521
|
+
- name: CURL User Password
|
|
1522
|
+
severity: high
|
|
1523
|
+
confidence: moderate
|
|
1524
|
+
type: pattern
|
|
1525
|
+
values:
|
|
1526
|
+
- (?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}))
|
|
1527
|
+
filter_type: GeneralKeyword
|
|
1528
|
+
use_ml: true
|
|
1529
|
+
required_substrings:
|
|
1530
|
+
- curl
|
|
1531
|
+
min_line_len: 16
|
|
1532
|
+
target:
|
|
1533
|
+
- code
|
|
1534
|
+
|
|
1535
|
+
- name: CMD ConvertTo-SecureString
|
|
1536
|
+
severity: high
|
|
1537
|
+
confidence: moderate
|
|
1538
|
+
type: pattern
|
|
1539
|
+
values:
|
|
1540
|
+
- (?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}))
|
|
1541
|
+
filter_type: GeneralKeyword
|
|
1542
|
+
use_ml: true
|
|
1543
|
+
required_substrings:
|
|
1544
|
+
- convertto-securestring
|
|
1545
|
+
min_line_len: 27
|
|
1546
|
+
target:
|
|
1547
|
+
- code
|
|
1548
|
+
|
|
1549
|
+
- name: CMD Password
|
|
1550
|
+
severity: high
|
|
1551
|
+
confidence: moderate
|
|
1552
|
+
type: pattern
|
|
1553
|
+
values:
|
|
1554
|
+
- (^|\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}))
|
|
1555
|
+
filter_type: GeneralKeyword
|
|
1556
|
+
use_ml: true
|
|
1557
|
+
required_substrings:
|
|
1558
|
+
- pass
|
|
1559
|
+
min_line_len: 12
|
|
1560
|
+
target:
|
|
1561
|
+
- code
|
|
1562
|
+
|
|
1563
|
+
- name: CMD Token
|
|
1564
|
+
severity: high
|
|
1565
|
+
confidence: moderate
|
|
1566
|
+
type: pattern
|
|
1567
|
+
values:
|
|
1568
|
+
- (^|\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}))
|
|
1569
|
+
filter_type: GeneralKeyword
|
|
1570
|
+
use_ml: true
|
|
1571
|
+
required_substrings:
|
|
1572
|
+
- token
|
|
1573
|
+
- oauth2-bearer
|
|
1574
|
+
min_line_len: 12
|
|
1575
|
+
target:
|
|
1576
|
+
- code
|
|
1577
|
+
|
|
1578
|
+
- name: CMD Secret
|
|
1579
|
+
severity: high
|
|
1580
|
+
confidence: moderate
|
|
1581
|
+
type: pattern
|
|
1582
|
+
values:
|
|
1583
|
+
- (^|\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}))
|
|
1584
|
+
filter_type: GeneralKeyword
|
|
1585
|
+
use_ml: true
|
|
1586
|
+
required_substrings:
|
|
1587
|
+
- secret
|
|
1588
|
+
min_line_len: 12
|
|
1589
|
+
target:
|
|
1590
|
+
- code
|
|
1591
|
+
|
|
1592
|
+
- name: URL Credentials
|
|
1593
|
+
severity: high
|
|
1594
|
+
confidence: moderate
|
|
1595
|
+
type: pattern
|
|
1596
|
+
values:
|
|
1597
|
+
- (?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>[\"'])?
|
|
1598
|
+
filter_type: UrlCredentialsGroup
|
|
1599
|
+
use_ml: true
|
|
1600
|
+
required_substrings:
|
|
1601
|
+
- ://
|
|
1602
|
+
min_line_len: 10
|
|
1603
|
+
target:
|
|
1604
|
+
- code
|
|
1605
|
+
|
|
1574
1606
|
- name: API
|
|
1575
1607
|
severity: low
|
|
1576
1608
|
confidence: moderate
|
|
@@ -1646,7 +1678,7 @@
|
|
|
1646
1678
|
confidence: moderate
|
|
1647
1679
|
type: keyword
|
|
1648
1680
|
values:
|
|
1649
|
-
- (?<!by)pass(?!
|
|
1681
|
+
- (?<!by)pass(?!e[dns]|ing|ion|age|\s+[a-z]{3,80})|pw(d|\b)
|
|
1650
1682
|
filter_type: PasswordKeyword
|
|
1651
1683
|
use_ml: true
|
|
1652
1684
|
min_line_len: 10
|
credsweeper/scanner/scanner.py
CHANGED
|
@@ -19,6 +19,8 @@ from credsweeper.utils.util import Util
|
|
|
19
19
|
|
|
20
20
|
logger = logging.getLogger(__name__)
|
|
21
21
|
|
|
22
|
+
RULES_PATH = APP_PATH / "rules" / "config.yaml"
|
|
23
|
+
|
|
22
24
|
|
|
23
25
|
class Scanner:
|
|
24
26
|
"""Advanced Credential Scanner base class.
|
|
@@ -66,11 +68,11 @@ class Scanner:
|
|
|
66
68
|
return True
|
|
67
69
|
return False
|
|
68
70
|
|
|
69
|
-
def _set_rules_scanners(self,
|
|
71
|
+
def _set_rules_scanners(self, rules_path: Union[None, str, Path]) -> None:
|
|
70
72
|
"""Auxiliary method to fill rules, determine min_pattern_len and set scanners"""
|
|
71
|
-
if
|
|
72
|
-
|
|
73
|
-
rule_templates = Util.yaml_load(
|
|
73
|
+
if rules_path is None:
|
|
74
|
+
rules_path = RULES_PATH
|
|
75
|
+
rule_templates = Util.yaml_load(rules_path)
|
|
74
76
|
if rule_templates and isinstance(rule_templates, list):
|
|
75
77
|
rule_names = set()
|
|
76
78
|
for rule_template in rule_templates:
|
|
@@ -98,7 +100,7 @@ class Scanner:
|
|
|
98
100
|
logger.warning(f"Unknown rule type:{rule.rule_type}")
|
|
99
101
|
self.rules_scanners.append((rule, self.get_scanner(rule)))
|
|
100
102
|
else:
|
|
101
|
-
raise RuntimeError(f"Wrong rules '{rule_templates}' were read from '{
|
|
103
|
+
raise RuntimeError(f"Wrong rules '{rule_templates}' were read from '{rules_path}'")
|
|
102
104
|
|
|
103
105
|
def _is_available(self, rule: Rule) -> bool:
|
|
104
106
|
"""separate the method to reduce complexity"""
|
|
@@ -153,8 +155,11 @@ class Scanner:
|
|
|
153
155
|
target_line_stripped_len >= self.min_keyword_len and ( #
|
|
154
156
|
'=' in target_line_stripped
|
|
155
157
|
or ':' in target_line_stripped
|
|
156
|
-
or "
|
|
157
|
-
|
|
158
|
+
or ("define" in target_line_stripped
|
|
159
|
+
and ('(' in target_line_stripped and ',' in target_line_stripped
|
|
160
|
+
or "#define" in target_line_stripped
|
|
161
|
+
or "%define" in target_line_stripped)
|
|
162
|
+
)
|
|
158
163
|
or "%global" in target_line_stripped
|
|
159
164
|
or "set" in target_line_stripped_lower
|
|
160
165
|
or "%3d" in target_line_stripped_lower
|