credsweeper 1.11.5__py3-none-any.whl → 1.12.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 +21 -15
- credsweeper/__main__.py +141 -35
- credsweeper/app.py +11 -11
- credsweeper/common/keyword_pattern.py +13 -15
- credsweeper/common/morpheme_checklist.txt +2 -0
- credsweeper/config/__init__.py +0 -1
- credsweeper/config/config.py +3 -3
- credsweeper/credentials/__init__.py +0 -5
- credsweeper/credentials/augment_candidates.py +1 -1
- credsweeper/credentials/candidate.py +1 -1
- credsweeper/credentials/credential_manager.py +1 -1
- credsweeper/credentials/line_data.py +22 -2
- credsweeper/deep_scanner/__init__.py +0 -1
- credsweeper/deep_scanner/abstract_scanner.py +3 -3
- credsweeper/deep_scanner/byte_scanner.py +1 -1
- credsweeper/deep_scanner/bzip2_scanner.py +2 -2
- credsweeper/deep_scanner/deb_scanner.py +1 -1
- credsweeper/deep_scanner/deep_scanner.py +3 -3
- credsweeper/deep_scanner/docx_scanner.py +1 -1
- credsweeper/deep_scanner/eml_scanner.py +1 -1
- credsweeper/deep_scanner/encoder_scanner.py +1 -1
- credsweeper/deep_scanner/gzip_scanner.py +2 -2
- credsweeper/deep_scanner/html_scanner.py +1 -1
- credsweeper/deep_scanner/jclass_scanner.py +1 -1
- credsweeper/deep_scanner/jks_scanner.py +1 -1
- credsweeper/deep_scanner/lang_scanner.py +1 -1
- credsweeper/deep_scanner/lzma_scanner.py +2 -2
- credsweeper/deep_scanner/mxfile_scanner.py +1 -1
- credsweeper/deep_scanner/pdf_scanner.py +1 -1
- credsweeper/deep_scanner/pkcs_scanner.py +2 -2
- credsweeper/deep_scanner/pptx_scanner.py +1 -1
- credsweeper/deep_scanner/rpm_scanner.py +1 -1
- credsweeper/deep_scanner/tar_scanner.py +2 -2
- credsweeper/deep_scanner/tmx_scanner.py +2 -2
- credsweeper/deep_scanner/xlsx_scanner.py +2 -2
- credsweeper/deep_scanner/xml_scanner.py +1 -1
- credsweeper/deep_scanner/zip_scanner.py +2 -2
- credsweeper/file_handler/__init__.py +0 -15
- credsweeper/file_handler/abstract_provider.py +3 -4
- credsweeper/file_handler/byte_content_provider.py +1 -1
- credsweeper/file_handler/content_provider.py +1 -1
- credsweeper/file_handler/data_content_provider.py +1 -1
- credsweeper/file_handler/diff_content_provider.py +133 -3
- credsweeper/file_handler/file_path_extractor.py +2 -2
- credsweeper/file_handler/files_provider.py +4 -4
- credsweeper/file_handler/patches_provider.py +7 -8
- credsweeper/file_handler/text_content_provider.py +1 -1
- credsweeper/filters/__init__.py +2 -3
- credsweeper/filters/filter.py +5 -3
- credsweeper/filters/group/__init__.py +0 -2
- credsweeper/filters/group/general_keyword.py +2 -2
- credsweeper/filters/group/general_pattern.py +2 -2
- credsweeper/filters/group/group.py +38 -36
- credsweeper/filters/group/password_keyword.py +9 -8
- credsweeper/filters/group/token_pattern.py +3 -3
- credsweeper/filters/group/url_credentials_group.py +8 -8
- credsweeper/filters/group/weird_base36_token.py +3 -3
- credsweeper/filters/group/weird_base64_token.py +3 -3
- credsweeper/filters/line_git_binary_check.py +5 -4
- credsweeper/filters/line_specific_key_check.py +6 -5
- credsweeper/filters/line_uue_part_check.py +5 -4
- credsweeper/filters/value_allowlist_check.py +6 -5
- credsweeper/filters/value_array_dictionary_check.py +8 -6
- credsweeper/filters/value_atlassian_token_check.py +6 -5
- credsweeper/filters/value_azure_token_check.py +6 -5
- credsweeper/filters/value_base32_data_check.py +8 -5
- credsweeper/filters/value_base64_data_check.py +6 -5
- credsweeper/filters/value_base64_encoded_pem_check.py +6 -5
- credsweeper/filters/value_base64_key_check.py +6 -5
- credsweeper/filters/value_base64_part_check.py +6 -5
- credsweeper/filters/value_basic_auth_check.py +37 -0
- credsweeper/filters/value_blocklist_check.py +6 -4
- credsweeper/filters/value_camel_case_check.py +6 -5
- credsweeper/filters/value_couple_keyword_check.py +6 -4
- credsweeper/filters/value_dictionary_keyword_check.py +6 -4
- credsweeper/filters/value_discord_bot_check.py +6 -5
- credsweeper/filters/value_entropy_base_check.py +6 -5
- credsweeper/filters/value_file_path_check.py +8 -5
- credsweeper/filters/value_github_check.py +5 -4
- credsweeper/filters/value_grafana_check.py +6 -5
- credsweeper/filters/value_grafana_service_check.py +5 -4
- credsweeper/filters/value_hex_number_check.py +5 -4
- credsweeper/filters/value_jfrog_token_check.py +6 -5
- credsweeper/filters/value_json_web_key_check.py +6 -5
- credsweeper/filters/value_json_web_token_check.py +6 -5
- credsweeper/filters/value_last_word_check.py +6 -4
- credsweeper/filters/{value_dictionary_value_length_check.py → value_length_check.py} +12 -6
- credsweeper/filters/value_method_check.py +5 -4
- credsweeper/filters/value_not_allowed_pattern_check.py +6 -5
- credsweeper/filters/value_not_part_encoded_check.py +4 -4
- credsweeper/filters/value_number_check.py +5 -4
- credsweeper/filters/value_pattern_check.py +61 -41
- credsweeper/filters/value_similarity_check.py +6 -4
- credsweeper/filters/value_split_keyword_check.py +5 -4
- credsweeper/filters/value_string_type_check.py +9 -7
- credsweeper/filters/value_token_base_check.py +5 -4
- credsweeper/filters/value_token_check.py +6 -5
- credsweeper/logger/__init__.py +0 -1
- credsweeper/logger/logger.py +1 -1
- credsweeper/ml_model/__init__.py +0 -1
- credsweeper/ml_model/features/__init__.py +1 -0
- credsweeper/ml_model/features/entropy_evaluation.py +1 -1
- credsweeper/ml_model/features/feature.py +1 -1
- credsweeper/ml_model/features/file_extension.py +1 -1
- credsweeper/ml_model/features/has_html_tag.py +2 -2
- credsweeper/ml_model/features/is_secret_numeric.py +1 -1
- credsweeper/ml_model/features/length_of_attribute.py +1 -1
- credsweeper/ml_model/features/morpheme_dense.py +15 -8
- credsweeper/ml_model/features/rule_name.py +1 -1
- credsweeper/ml_model/features/rule_severity.py +21 -0
- credsweeper/ml_model/features/search_in_attribute.py +1 -1
- credsweeper/ml_model/features/word_in.py +1 -1
- credsweeper/ml_model/features/word_in_path.py +5 -2
- credsweeper/ml_model/features/word_in_postamble.py +1 -1
- credsweeper/ml_model/features/word_in_preamble.py +1 -1
- credsweeper/ml_model/features/word_in_transition.py +1 -1
- credsweeper/ml_model/features/word_in_value.py +1 -1
- credsweeper/ml_model/features/word_in_variable.py +1 -1
- credsweeper/ml_model/ml_config.json +130 -24
- credsweeper/ml_model/ml_model.onnx +0 -0
- credsweeper/ml_model/ml_validator.py +3 -2
- credsweeper/rules/__init__.py +0 -1
- credsweeper/rules/config.yaml +116 -42
- credsweeper/rules/rule.py +4 -3
- credsweeper/scanner/__init__.py +0 -1
- credsweeper/scanner/scan_type/__init__.py +0 -5
- credsweeper/scanner/scan_type/multi_pattern.py +4 -4
- credsweeper/scanner/scan_type/pem_key_pattern.py +4 -4
- credsweeper/scanner/scan_type/scan_type.py +4 -4
- credsweeper/scanner/scan_type/single_pattern.py +4 -4
- credsweeper/scanner/scanner.py +12 -8
- credsweeper/secret/config.json +2 -2
- credsweeper/utils/__init__.py +0 -1
- credsweeper/utils/pem_key_detector.py +3 -3
- credsweeper/utils/util.py +3 -132
- {credsweeper-1.11.5.dist-info → credsweeper-1.12.0.dist-info}/METADATA +1 -1
- credsweeper-1.12.0.dist-info/RECORD +161 -0
- credsweeper-1.11.5.dist-info/RECORD +0 -159
- {credsweeper-1.11.5.dist-info → credsweeper-1.12.0.dist-info}/WHEEL +0 -0
- {credsweeper-1.11.5.dist-info → credsweeper-1.12.0.dist-info}/entry_points.txt +0 -0
- {credsweeper-1.11.5.dist-info → credsweeper-1.12.0.dist-info}/licenses/LICENSE +0 -0
credsweeper/rules/config.yaml
CHANGED
|
@@ -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)[^,]
|
|
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|#3[49]);)){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|#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
|
-
-
|
|
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>[
|
|
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})))
|
|
38
38
|
filter_type:
|
|
39
39
|
- ValueAllowlistCheck
|
|
40
40
|
- LineGitBinaryCheck
|
|
41
41
|
- LineUUEPartCheck
|
|
42
42
|
- ValueFilePathCheck
|
|
43
43
|
- ValuePatternCheck(5)
|
|
44
|
-
-
|
|
44
|
+
- ValueLengthCheck(4,80)
|
|
45
45
|
min_line_len: 8
|
|
46
46
|
required_substrings:
|
|
47
47
|
- pass
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
confidence: moderate
|
|
69
69
|
type: pattern
|
|
70
70
|
values:
|
|
71
|
-
- (?P<variable>[
|
|
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
76
|
- ValueCoupleKeywordCheck
|
|
77
77
|
min_line_len: 16
|
|
@@ -90,10 +90,10 @@
|
|
|
90
90
|
confidence: moderate
|
|
91
91
|
type: pattern
|
|
92
92
|
values:
|
|
93
|
-
- (?P<variable>[
|
|
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)[)\"'`])
|
|
94
94
|
filter_type:
|
|
95
95
|
- ValueAllowlistCheck
|
|
96
|
-
- ValuePatternCheck
|
|
96
|
+
- ValuePatternCheck(4)
|
|
97
97
|
- ValueDictionaryKeywordCheck
|
|
98
98
|
- LineGitBinaryCheck
|
|
99
99
|
- LineUUEPartCheck
|
|
@@ -121,7 +121,7 @@
|
|
|
121
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|[^/]|$)
|
|
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>[
|
|
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|$))
|
|
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
|
|
@@ -160,7 +160,7 @@
|
|
|
160
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))
|
|
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:
|
|
@@ -179,10 +179,10 @@
|
|
|
179
179
|
confidence: weak
|
|
180
180
|
type: pattern
|
|
181
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})?([
|
|
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
183
|
filter_type:
|
|
184
184
|
- ValueAllowlistCheck
|
|
185
|
-
- ValuePatternCheck
|
|
185
|
+
- ValuePatternCheck
|
|
186
186
|
min_line_len: 8
|
|
187
187
|
required_substrings:
|
|
188
188
|
- password
|
|
@@ -203,12 +203,26 @@
|
|
|
203
203
|
- "-"
|
|
204
204
|
required_regex: "[0-9A-Za-z_/+-]{15}"
|
|
205
205
|
filter_type:
|
|
206
|
-
- ValuePatternCheck
|
|
206
|
+
- ValuePatternCheck(4)
|
|
207
207
|
use_ml: false
|
|
208
208
|
target:
|
|
209
209
|
- code
|
|
210
210
|
- doc
|
|
211
211
|
|
|
212
|
+
- name: Akamai Credentials
|
|
213
|
+
severity: high
|
|
214
|
+
confidence: strong
|
|
215
|
+
type: pattern
|
|
216
|
+
values:
|
|
217
|
+
- (?P<value>akab-[0-9a-z]{16}-[0-9a-z]{16})(?!\.[0-9a-z-]{1,80}\.akamaiapis\.net)
|
|
218
|
+
filter_type: GeneralPattern
|
|
219
|
+
required_substrings:
|
|
220
|
+
- akab-
|
|
221
|
+
min_line_len: 38
|
|
222
|
+
target:
|
|
223
|
+
- code
|
|
224
|
+
- doc
|
|
225
|
+
|
|
212
226
|
- name: AWS Client ID
|
|
213
227
|
severity: high
|
|
214
228
|
confidence: moderate
|
|
@@ -718,7 +732,7 @@
|
|
|
718
732
|
confidence: moderate
|
|
719
733
|
type: pattern
|
|
720
734
|
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}))
|
|
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: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
736
|
filter_type: GeneralKeyword
|
|
723
737
|
use_ml: true
|
|
724
738
|
required_substrings:
|
|
@@ -732,7 +746,7 @@
|
|
|
732
746
|
confidence: moderate
|
|
733
747
|
type: pattern
|
|
734
748
|
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}))
|
|
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:token))(\s|\\?[\"'],)\s*(?!-)(?P<value_leftquote>(\\?[\"']){1,3})?(?P<value>(?(value_leftquote)[^\"'\\]|[^\s\"'\\]){4,4000})(?(value_leftquote)(?P<value_rightquote>(\\?[\"']){1,3}))
|
|
736
750
|
filter_type: GeneralKeyword
|
|
737
751
|
use_ml: true
|
|
738
752
|
required_substrings:
|
|
@@ -746,7 +760,7 @@
|
|
|
746
760
|
confidence: moderate
|
|
747
761
|
type: pattern
|
|
748
762
|
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}))
|
|
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: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
764
|
filter_type: GeneralKeyword
|
|
751
765
|
use_ml: true
|
|
752
766
|
required_substrings:
|
|
@@ -1058,7 +1072,7 @@
|
|
|
1058
1072
|
confidence: moderate
|
|
1059
1073
|
type: pattern
|
|
1060
1074
|
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
|
|
1075
|
+
- (?:^|[^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
1076
|
filter_type: TokenPattern
|
|
1063
1077
|
min_line_len: 138
|
|
1064
1078
|
required_substrings:
|
|
@@ -1240,6 +1254,32 @@
|
|
|
1240
1254
|
- code
|
|
1241
1255
|
- doc
|
|
1242
1256
|
|
|
1257
|
+
- name: NKEY Seed
|
|
1258
|
+
severity: high
|
|
1259
|
+
confidence: weak
|
|
1260
|
+
type: pattern
|
|
1261
|
+
values:
|
|
1262
|
+
- (?:^|[^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_+-])
|
|
1263
|
+
min_line_len: 42
|
|
1264
|
+
filter_type:
|
|
1265
|
+
- ValueCoupleKeywordCheck
|
|
1266
|
+
- ValuePatternCheck
|
|
1267
|
+
- ValueEntropyBase32Check
|
|
1268
|
+
- ValueBase32DataCheck
|
|
1269
|
+
- ValueTokenBase32Check
|
|
1270
|
+
required_substrings:
|
|
1271
|
+
- SA
|
|
1272
|
+
- SC
|
|
1273
|
+
- SN
|
|
1274
|
+
- SO
|
|
1275
|
+
- SP
|
|
1276
|
+
- SU
|
|
1277
|
+
- SX
|
|
1278
|
+
required_regex: "[0-9A-Za-z_/+-]{15}"
|
|
1279
|
+
target:
|
|
1280
|
+
- code
|
|
1281
|
+
- doc
|
|
1282
|
+
|
|
1243
1283
|
- name: Jira 2FA
|
|
1244
1284
|
severity: info
|
|
1245
1285
|
confidence: weak
|
|
@@ -1276,6 +1316,23 @@
|
|
|
1276
1316
|
- code
|
|
1277
1317
|
- doc
|
|
1278
1318
|
|
|
1319
|
+
- name: Docker Access Token
|
|
1320
|
+
severity: high
|
|
1321
|
+
confidence: strong
|
|
1322
|
+
type: pattern
|
|
1323
|
+
values:
|
|
1324
|
+
- (?P<value>dckr_[op]at_[0-9A-Za-z_-]{27,32})
|
|
1325
|
+
min_line_len: 36
|
|
1326
|
+
filter_type:
|
|
1327
|
+
- ValuePatternCheck
|
|
1328
|
+
- ValueEntropyBase64Check
|
|
1329
|
+
required_substrings:
|
|
1330
|
+
- dckr_pat_
|
|
1331
|
+
- dckr_oat_
|
|
1332
|
+
target:
|
|
1333
|
+
- code
|
|
1334
|
+
- doc
|
|
1335
|
+
|
|
1279
1336
|
- name: Docker Swarm Token
|
|
1280
1337
|
severity: high
|
|
1281
1338
|
confidence: strong
|
|
@@ -1331,7 +1388,7 @@
|
|
|
1331
1388
|
- (?P<value>tvly-[0-9A-Za-z_-]{32,40})(?![0-9A-Za-z_-])
|
|
1332
1389
|
min_line_len: 37
|
|
1333
1390
|
filter_type:
|
|
1334
|
-
- ValuePatternCheck
|
|
1391
|
+
- ValuePatternCheck
|
|
1335
1392
|
- ValueEntropyBase64Check
|
|
1336
1393
|
required_substrings:
|
|
1337
1394
|
- tvly-
|
|
@@ -1347,7 +1404,7 @@
|
|
|
1347
1404
|
- (?P<value>sntrys_eyJ[0-9A-Za-z_-]{80,8000}=*([0-9A-Za-z_-]{32,256})?)(?![0-9A-Za-z_-])
|
|
1348
1405
|
min_line_len: 37
|
|
1349
1406
|
filter_type:
|
|
1350
|
-
- ValuePatternCheck
|
|
1407
|
+
- ValuePatternCheck
|
|
1351
1408
|
required_substrings:
|
|
1352
1409
|
- sntrys_eyJ
|
|
1353
1410
|
target:
|
|
@@ -1362,7 +1419,7 @@
|
|
|
1362
1419
|
- (?P<value>sntryu_[0-9a-f]{64})(?![0-9A-Za-z_-])
|
|
1363
1420
|
min_line_len: 37
|
|
1364
1421
|
filter_type:
|
|
1365
|
-
- ValuePatternCheck
|
|
1422
|
+
- ValuePatternCheck
|
|
1366
1423
|
required_substrings:
|
|
1367
1424
|
- sntryu_
|
|
1368
1425
|
target:
|
|
@@ -1422,7 +1479,7 @@
|
|
|
1422
1479
|
confidence: weak
|
|
1423
1480
|
type: pattern
|
|
1424
1481
|
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}(![
|
|
1482
|
+
- (?:^|[^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
1483
|
min_line_len: 12
|
|
1427
1484
|
filter_type:
|
|
1428
1485
|
- ValuePatternCheck(9)
|
|
@@ -1430,49 +1487,66 @@
|
|
|
1430
1487
|
- ValueBase64PartCheck
|
|
1431
1488
|
required_substrings:
|
|
1432
1489
|
- 00D
|
|
1490
|
+
- 3MVG
|
|
1433
1491
|
target:
|
|
1434
1492
|
- code
|
|
1435
1493
|
- doc
|
|
1436
1494
|
|
|
1437
|
-
- name:
|
|
1495
|
+
- name: Basic Authorization
|
|
1496
|
+
severity: medium
|
|
1497
|
+
confidence: strong
|
|
1498
|
+
type: pattern
|
|
1499
|
+
values:
|
|
1500
|
+
- (?P<variable>(?i:basic))(?P<separator>\s+)(?P<value>[=0-9A-Za-z_/+-]{8,8000})(?![0-9A-Za-z_/+-])
|
|
1501
|
+
min_line_len: 18
|
|
1502
|
+
filter_type:
|
|
1503
|
+
- ValueBasicAuthCheck
|
|
1504
|
+
required_substrings:
|
|
1505
|
+
- basic
|
|
1506
|
+
target:
|
|
1507
|
+
- code
|
|
1508
|
+
- doc
|
|
1509
|
+
|
|
1510
|
+
- name: Bearer Authorization
|
|
1438
1511
|
severity: medium
|
|
1439
1512
|
confidence: moderate
|
|
1440
|
-
type:
|
|
1513
|
+
type: pattern
|
|
1441
1514
|
values:
|
|
1442
|
-
-
|
|
1515
|
+
- (?P<variable>(?i:bearer|ntlm))(?P<separator>\s+)(?P<value>[.0-9A-Za-z_/+-]{32,8000}=*)(?![0-9A-Za-z_/+-])
|
|
1516
|
+
min_line_len: 37
|
|
1443
1517
|
filter_type: GeneralKeyword
|
|
1444
|
-
use_ml: true
|
|
1445
|
-
min_line_len: 11
|
|
1446
1518
|
required_substrings:
|
|
1447
|
-
-
|
|
1519
|
+
- bearer
|
|
1520
|
+
- ntlm
|
|
1448
1521
|
target:
|
|
1449
1522
|
- code
|
|
1523
|
+
- doc
|
|
1450
1524
|
|
|
1451
|
-
- name:
|
|
1452
|
-
severity:
|
|
1525
|
+
- name: API
|
|
1526
|
+
severity: low
|
|
1453
1527
|
confidence: moderate
|
|
1454
1528
|
type: keyword
|
|
1455
1529
|
values:
|
|
1456
|
-
-
|
|
1530
|
+
- api(?!tal)
|
|
1457
1531
|
filter_type: GeneralKeyword
|
|
1458
1532
|
use_ml: true
|
|
1459
|
-
min_line_len:
|
|
1533
|
+
min_line_len: 11
|
|
1460
1534
|
required_substrings:
|
|
1461
|
-
-
|
|
1535
|
+
- api
|
|
1462
1536
|
target:
|
|
1463
1537
|
- code
|
|
1464
1538
|
|
|
1465
|
-
- name:
|
|
1539
|
+
- name: Auth
|
|
1466
1540
|
severity: medium
|
|
1467
1541
|
confidence: moderate
|
|
1468
1542
|
type: keyword
|
|
1469
1543
|
values:
|
|
1470
|
-
-
|
|
1544
|
+
- auth(?!ors?(?!i[tz]))
|
|
1471
1545
|
filter_type: GeneralKeyword
|
|
1472
1546
|
use_ml: true
|
|
1473
1547
|
min_line_len: 12
|
|
1474
1548
|
required_substrings:
|
|
1475
|
-
-
|
|
1549
|
+
- auth
|
|
1476
1550
|
target:
|
|
1477
1551
|
- code
|
|
1478
1552
|
|
|
@@ -1491,7 +1565,7 @@
|
|
|
1491
1565
|
- code
|
|
1492
1566
|
|
|
1493
1567
|
- name: Key
|
|
1494
|
-
severity:
|
|
1568
|
+
severity: high
|
|
1495
1569
|
confidence: moderate
|
|
1496
1570
|
type: keyword
|
|
1497
1571
|
values:
|
|
@@ -1505,7 +1579,7 @@
|
|
|
1505
1579
|
- code
|
|
1506
1580
|
|
|
1507
1581
|
- name: Nonce
|
|
1508
|
-
severity:
|
|
1582
|
+
severity: low
|
|
1509
1583
|
confidence: moderate
|
|
1510
1584
|
type: keyword
|
|
1511
1585
|
values:
|
|
@@ -1519,7 +1593,7 @@
|
|
|
1519
1593
|
- code
|
|
1520
1594
|
|
|
1521
1595
|
- name: Password
|
|
1522
|
-
severity:
|
|
1596
|
+
severity: high
|
|
1523
1597
|
confidence: moderate
|
|
1524
1598
|
type: keyword
|
|
1525
1599
|
values:
|
|
@@ -1534,7 +1608,7 @@
|
|
|
1534
1608
|
- code
|
|
1535
1609
|
|
|
1536
1610
|
- name: Salt
|
|
1537
|
-
severity:
|
|
1611
|
+
severity: low
|
|
1538
1612
|
confidence: moderate
|
|
1539
1613
|
type: keyword
|
|
1540
1614
|
values:
|
|
@@ -1562,7 +1636,7 @@
|
|
|
1562
1636
|
- code
|
|
1563
1637
|
|
|
1564
1638
|
- name: Token
|
|
1565
|
-
severity:
|
|
1639
|
+
severity: high
|
|
1566
1640
|
confidence: moderate
|
|
1567
1641
|
type: keyword
|
|
1568
1642
|
values:
|
credsweeper/rules/rule.py
CHANGED
|
@@ -7,9 +7,10 @@ from typing import Dict, List, Optional, Union, Set
|
|
|
7
7
|
from credsweeper import filters
|
|
8
8
|
from credsweeper.common.constants import RuleType, Severity, MAX_LINE_LENGTH, Confidence
|
|
9
9
|
from credsweeper.common.keyword_pattern import KeywordPattern
|
|
10
|
-
from credsweeper.config import Config
|
|
11
|
-
from credsweeper.filters import
|
|
12
|
-
from credsweeper.filters.
|
|
10
|
+
from credsweeper.config.config import Config
|
|
11
|
+
from credsweeper.filters import group
|
|
12
|
+
from credsweeper.filters.filter import Filter
|
|
13
|
+
from credsweeper.filters.group.group import Group
|
|
13
14
|
|
|
14
15
|
logger = logging.getLogger(__name__)
|
|
15
16
|
|
credsweeper/scanner/__init__.py
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from credsweeper.scanner.scanner import Scanner
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
from credsweeper.scanner.scan_type.scan_type import ScanType # isort:skip
|
|
2
|
-
|
|
3
|
-
from credsweeper.scanner.scan_type.multi_pattern import MultiPattern
|
|
4
|
-
from credsweeper.scanner.scan_type.pem_key_pattern import PemKeyPattern
|
|
5
|
-
from credsweeper.scanner.scan_type.single_pattern import SinglePattern
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from typing import List
|
|
2
2
|
|
|
3
3
|
from credsweeper.common.constants import RuleType
|
|
4
|
-
from credsweeper.config import Config
|
|
5
|
-
from credsweeper.credentials import Candidate
|
|
4
|
+
from credsweeper.config.config import Config
|
|
5
|
+
from credsweeper.credentials.candidate import Candidate
|
|
6
6
|
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
7
|
-
from credsweeper.rules import Rule
|
|
8
|
-
from credsweeper.scanner.scan_type import ScanType
|
|
7
|
+
from credsweeper.rules.rule import Rule
|
|
8
|
+
from credsweeper.scanner.scan_type.scan_type import ScanType
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class MultiPattern(ScanType):
|
|
@@ -2,11 +2,11 @@ import logging
|
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
4
|
from credsweeper.common.constants import RuleType
|
|
5
|
-
from credsweeper.config import Config
|
|
6
|
-
from credsweeper.credentials import Candidate
|
|
5
|
+
from credsweeper.config.config import Config
|
|
6
|
+
from credsweeper.credentials.candidate import Candidate
|
|
7
7
|
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
8
|
-
from credsweeper.rules import Rule
|
|
9
|
-
from credsweeper.scanner.scan_type import ScanType
|
|
8
|
+
from credsweeper.rules.rule import Rule
|
|
9
|
+
from credsweeper.scanner.scan_type.scan_type import ScanType
|
|
10
10
|
from credsweeper.utils.pem_key_detector import PemKeyDetector
|
|
11
11
|
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
@@ -4,11 +4,11 @@ from abc import ABC, abstractmethod
|
|
|
4
4
|
from typing import List
|
|
5
5
|
|
|
6
6
|
from credsweeper.common.constants import RuleType, MIN_DATA_LEN
|
|
7
|
-
from credsweeper.config import Config
|
|
8
|
-
from credsweeper.credentials import Candidate, LineData
|
|
7
|
+
from credsweeper.config.config import Config
|
|
8
|
+
from credsweeper.credentials.candidate import Candidate, LineData
|
|
9
9
|
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
10
|
-
from credsweeper.filters import Filter
|
|
11
|
-
from credsweeper.rules import Rule
|
|
10
|
+
from credsweeper.filters.filter import Filter
|
|
11
|
+
from credsweeper.rules.rule import Rule
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from typing import List
|
|
2
2
|
|
|
3
|
-
from credsweeper.config import Config
|
|
4
|
-
from credsweeper.credentials import Candidate
|
|
3
|
+
from credsweeper.config.config import Config
|
|
4
|
+
from credsweeper.credentials.candidate import Candidate
|
|
5
5
|
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
6
|
-
from credsweeper.rules import Rule
|
|
7
|
-
from credsweeper.scanner.scan_type import ScanType
|
|
6
|
+
from credsweeper.rules.rule import Rule
|
|
7
|
+
from credsweeper.scanner.scan_type.scan_type import ScanType
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class SinglePattern(ScanType):
|
credsweeper/scanner/scanner.py
CHANGED
|
@@ -6,13 +6,16 @@ from typing import List, Type, Tuple, Union, Dict, Generator, Set
|
|
|
6
6
|
from credsweeper.app import APP_PATH
|
|
7
7
|
from credsweeper.common.constants import RuleType, MIN_VARIABLE_LENGTH, MIN_SEPARATOR_LENGTH, MIN_VALUE_LENGTH, \
|
|
8
8
|
MAX_LINE_LENGTH, PEM_BEGIN_PATTERN
|
|
9
|
-
from credsweeper.config import Config
|
|
10
|
-
from credsweeper.credentials import Candidate
|
|
9
|
+
from credsweeper.config.config import Config
|
|
10
|
+
from credsweeper.credentials.candidate import Candidate
|
|
11
11
|
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
12
12
|
from credsweeper.file_handler.content_provider import ContentProvider
|
|
13
|
-
from credsweeper.rules import Rule
|
|
14
|
-
from credsweeper.scanner.scan_type import
|
|
15
|
-
from credsweeper.
|
|
13
|
+
from credsweeper.rules.rule import Rule
|
|
14
|
+
from credsweeper.scanner.scan_type.multi_pattern import MultiPattern
|
|
15
|
+
from credsweeper.scanner.scan_type.pem_key_pattern import PemKeyPattern
|
|
16
|
+
from credsweeper.scanner.scan_type.scan_type import ScanType
|
|
17
|
+
from credsweeper.scanner.scan_type.single_pattern import SinglePattern
|
|
18
|
+
from credsweeper.utils.util import Util
|
|
16
19
|
|
|
17
20
|
logger = logging.getLogger(__name__)
|
|
18
21
|
|
|
@@ -142,16 +145,19 @@ class Scanner:
|
|
|
142
145
|
# Trim string from outer spaces to make future `x in str` checks faster
|
|
143
146
|
target_line_stripped = target.line_strip
|
|
144
147
|
target_line_stripped_len = target.line_strip_len
|
|
148
|
+
# use lower case for required substring
|
|
149
|
+
target_line_stripped_lower = target.line_lower_strip
|
|
145
150
|
|
|
146
151
|
# "cache" - YAPF and pycharm formatters ...
|
|
147
152
|
matched_keyword = \
|
|
148
153
|
target_line_stripped_len >= self.min_keyword_len and ( #
|
|
149
154
|
'=' in target_line_stripped
|
|
150
155
|
or ':' in target_line_stripped
|
|
151
|
-
or "set" in target_line_stripped
|
|
152
156
|
or "#define" in target_line_stripped
|
|
153
157
|
or "%define" in target_line_stripped
|
|
154
158
|
or "%global" in target_line_stripped
|
|
159
|
+
or "set" in target_line_stripped_lower
|
|
160
|
+
or "%3d" in target_line_stripped_lower
|
|
155
161
|
) #
|
|
156
162
|
matched_pem_key = \
|
|
157
163
|
target_line_stripped_len >= self.min_pem_key_len \
|
|
@@ -165,8 +171,6 @@ class Scanner:
|
|
|
165
171
|
target.line_num)
|
|
166
172
|
continue
|
|
167
173
|
|
|
168
|
-
# use lower case for required substring
|
|
169
|
-
target_line_stripped_lower = target.line_lower_strip
|
|
170
174
|
# cached value to skip the same regex verifying
|
|
171
175
|
matched_regex: Dict[re.Pattern, bool] = {}
|
|
172
176
|
|
credsweeper/secret/config.json
CHANGED
|
@@ -164,8 +164,8 @@
|
|
|
164
164
|
"tizen"
|
|
165
165
|
],
|
|
166
166
|
"check_for_literals": true,
|
|
167
|
-
"
|
|
168
|
-
"
|
|
167
|
+
"max_password_value_length": 31,
|
|
168
|
+
"max_url_cred_value_length": 80,
|
|
169
169
|
"line_data_output": [
|
|
170
170
|
"line",
|
|
171
171
|
"line_num",
|
credsweeper/utils/__init__.py
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from credsweeper.utils.util import DiffRowData, Util, DiffDict
|
|
@@ -5,10 +5,10 @@ import string
|
|
|
5
5
|
from typing import List
|
|
6
6
|
|
|
7
7
|
from credsweeper.common.constants import PEM_BEGIN_PATTERN, PEM_END_PATTERN, Chars
|
|
8
|
-
from credsweeper.config import Config
|
|
9
|
-
from credsweeper.credentials import LineData
|
|
8
|
+
from credsweeper.config.config import Config
|
|
9
|
+
from credsweeper.credentials.line_data import LineData
|
|
10
10
|
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
11
|
-
from credsweeper.utils import Util
|
|
11
|
+
from credsweeper.utils.util import Util
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|