credsweeper 1.11.1__tar.gz → 1.11.2__tar.gz
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-1.11.1 → credsweeper-1.11.2}/PKG-INFO +1 -1
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/__init__.py +1 -1
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/keyword_pattern.py +17 -9
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/__init__.py +0 -1
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/group.py +3 -4
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/url_credentials_group.py +2 -3
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_allowlist_check.py +6 -7
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/rules/config.yaml +2 -2
- credsweeper-1.11.1/credsweeper/filters/value_first_word_check.py +0 -38
- {credsweeper-1.11.1 → credsweeper-1.11.2}/.gitignore +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/LICENSE +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/README.md +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/__main__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/app.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/constants.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/keyword_checklist.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/keyword_checklist.txt +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/morpheme_checklist.txt +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/config/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/config/config.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/augment_candidates.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate_group_generator.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate_key.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/credential_manager.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/line_data.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/abstract_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/byte_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/bzip2_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/deep_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/docx_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/eml_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/encoder_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/gzip_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/html_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/jks_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/lang_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/mxfile_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/pdf_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/pkcs12_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/pptx_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/tar_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/tmx_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/xlsx_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/xml_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/zip_scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/abstract_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/analysis_target.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/byte_content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/data_content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/descriptor.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/diff_content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/file_path_extractor.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/files_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/patches_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/string_content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/struct_content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/text_content_provider.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/filter.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/general_keyword.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/general_pattern.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/password_keyword.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/token_pattern.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/weird_base36_token.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/weird_base64_token.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/line_git_binary_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/line_specific_key_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/line_uue_part_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_array_dictionary_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_atlassian_token_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_azure_token_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base32_data_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_data_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_encoded_pem_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_key_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_part_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_blocklist_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_camel_case_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_couple_keyword_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_dictionary_keyword_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_dictionary_value_length_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_discord_bot_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_entropy_base32_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_entropy_base36_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_entropy_base64_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_file_path_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_github_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_grafana_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_grafana_service_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_hex_number_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_jfrog_token_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_json_web_token_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_last_word_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_method_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_not_allowed_pattern_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_not_part_encoded_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_number_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_pattern_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_similarity_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_split_keyword_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_string_type_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base32_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base36_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base64_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_check.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/logger/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/logger/logger.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/entropy_evaluation.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/feature.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/file_extension.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/has_html_tag.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/is_secret_numeric.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/length_of_attribute.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/morpheme_dense.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/rule_name.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/search_in_attribute.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_path.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_postamble.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_preamble.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_transition.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_value.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_variable.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/ml_config.json +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/ml_model.onnx +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/ml_validator.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/py.typed +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/rules/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/rules/rule.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/multi_pattern.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/pem_key_pattern.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/scan_type.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/single_pattern.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scanner.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/secret/config.json +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/secret/log.yaml +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/__init__.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/entropy_validator.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/hop_stat.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/pem_key_detector.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/util.py +0 -0
- {credsweeper-1.11.1 → credsweeper-1.11.2}/pyproject.toml +0 -0
|
@@ -8,20 +8,20 @@ class KeywordPattern:
|
|
|
8
8
|
r"(?P<keyword>"
|
|
9
9
|
# there will be inserted a keyword
|
|
10
10
|
key_right = r")" \
|
|
11
|
-
r"[^%:='\"`<>{
|
|
11
|
+
r"[^%:='\"`<>{?!&;\n]*" \
|
|
12
12
|
r")" \
|
|
13
13
|
r"(&(quot|apos);|%[0-9a-f]{2}|[`'\"])*" \
|
|
14
14
|
r")" # <variable>
|
|
15
15
|
separator = r"(\s|\\{1,8}[tnr])*\]?(\s|\\{1,8}[tnr])*" \
|
|
16
|
-
r"(?P<separator>:(\s[a-z]{3,9}[?]?\s)
|
|
16
|
+
r"(?P<separator>:(\s[a-z]{3,9}[?]?\s)?=|:(?!:)|=(>|>|(\\\\*u00|%)26gt;)|!==|!=|===|==|=|%3d)" \
|
|
17
17
|
r"(\s|\\{1,8}[tnr])*"
|
|
18
18
|
# might be curly, square or parenthesis with words before
|
|
19
19
|
wrap = r"(?P<wrap>(" \
|
|
20
|
-
r"(new(\s|\\{1,8}[tnr]){1,8})?" \
|
|
21
|
-
r"([0-9a-z_.]
|
|
20
|
+
r"(new(\s|\\{1,8}[tnr]|byte|char|string|\[\]){1,8})?" \
|
|
21
|
+
r"([0-9a-z_.]|::|-(>|>))*" \
|
|
22
22
|
r"[\[\(\{]" \
|
|
23
23
|
r"(\s|\\{1,8}[tnr])*" \
|
|
24
|
-
r"([0-9a-z_]{1,32}
|
|
24
|
+
r"([0-9a-z_]{1,32}[:=]\s*)?" \
|
|
25
25
|
r"){1,8})?"
|
|
26
26
|
string_prefix = r"(((b|r|br|rb|u|f|rf|fr|l|@)(?=(\\*[`'\"])))?"
|
|
27
27
|
left_quote = r"(?P<value_leftquote>((?P<esq>\\{1,8})?([`'\"]|&(quot|apos);)){1,4}))?"
|
|
@@ -39,14 +39,22 @@ class KeywordPattern:
|
|
|
39
39
|
r"(?P<url_esc>%[0-9a-f]{2})" \
|
|
40
40
|
r"|" \
|
|
41
41
|
r"(?(url_esc)[^\s`'\",;\\&]|[^\s`'\",;\\])" \
|
|
42
|
-
r")
|
|
43
|
-
r"
|
|
44
|
-
r"|
|
|
42
|
+
r")"\
|
|
43
|
+
r"){4,8000}" \
|
|
44
|
+
r"|" \
|
|
45
|
+
r"(<[^>]{4,8000}>)" \
|
|
46
|
+
r"|" \
|
|
47
|
+
r"(\$?\({1,3}[^)]{4,8000}\){1,3})" \
|
|
48
|
+
r"|" \
|
|
49
|
+
r"(\$?\{{1,3}[^}]{4,8000}\}{1,3})" \
|
|
50
|
+
r"|" \
|
|
51
|
+
r"(?(wrap)(?(value_leftquote)(?!\\(?P=value_leftquote))|[^\]\)\}]){16,8000})"\
|
|
45
52
|
r")" # <value>
|
|
46
53
|
right_quote = r"(?(value_leftquote)" \
|
|
47
54
|
r"(?P<value_rightquote>(?<!\\)(?P=value_leftquote)|\\$|(?<=[0-9a-z+_/-])$)" \
|
|
48
55
|
r"|" \
|
|
49
|
-
r"(?(wrap)
|
|
56
|
+
r"(?(wrap)(\]|\)|\}|,|;|\\|$))" \
|
|
57
|
+
r")"
|
|
50
58
|
|
|
51
59
|
@classmethod
|
|
52
60
|
def get_keyword_pattern(cls, keyword: str) -> re.Pattern:
|
|
@@ -22,7 +22,6 @@ from credsweeper.filters.value_entropy_base32_check import ValueEntropyBase32Che
|
|
|
22
22
|
from credsweeper.filters.value_entropy_base36_check import ValueEntropyBase36Check
|
|
23
23
|
from credsweeper.filters.value_entropy_base64_check import ValueEntropyBase64Check
|
|
24
24
|
from credsweeper.filters.value_file_path_check import ValueFilePathCheck
|
|
25
|
-
from credsweeper.filters.value_first_word_check import ValueFirstWordCheck
|
|
26
25
|
from credsweeper.filters.value_github_check import ValueGitHubCheck
|
|
27
26
|
from credsweeper.filters.value_grafana_check import ValueGrafanaCheck
|
|
28
27
|
from credsweeper.filters.value_grafana_service_check import ValueGrafanaServiceCheck
|
|
@@ -4,9 +4,9 @@ from typing import List
|
|
|
4
4
|
from credsweeper.common.constants import GroupType
|
|
5
5
|
from credsweeper.config import Config
|
|
6
6
|
from credsweeper.filters import (Filter, LineSpecificKeyCheck, ValueAllowlistCheck, ValueArrayDictionaryCheck,
|
|
7
|
-
ValueBlocklistCheck, ValueCamelCaseCheck, ValueFilePathCheck,
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
ValueBlocklistCheck, ValueCamelCaseCheck, ValueFilePathCheck, ValueLastWordCheck,
|
|
8
|
+
ValueMethodCheck, ValueNotAllowedPatternCheck, ValuePatternCheck, ValueSimilarityCheck,
|
|
9
|
+
ValueStringTypeCheck, ValueTokenCheck, ValueHexNumberCheck)
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class Group(ABC):
|
|
@@ -39,7 +39,6 @@ class Group(ABC):
|
|
|
39
39
|
ValueBlocklistCheck(),
|
|
40
40
|
ValueCamelCaseCheck(),
|
|
41
41
|
ValueFilePathCheck(),
|
|
42
|
-
ValueFirstWordCheck(),
|
|
43
42
|
ValueHexNumberCheck(),
|
|
44
43
|
ValueLastWordCheck(),
|
|
45
44
|
ValueMethodCheck(),
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/url_credentials_group.py
RENAMED
|
@@ -2,8 +2,8 @@ from credsweeper.common.constants import GroupType
|
|
|
2
2
|
from credsweeper.config import Config
|
|
3
3
|
from credsweeper.filters import (ValueAllowlistCheck, ValueArrayDictionaryCheck, ValueBlocklistCheck,
|
|
4
4
|
ValueCamelCaseCheck, ValueDictionaryValueLengthCheck, ValueFilePathCheck,
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
ValueLastWordCheck, ValueMethodCheck, ValueNotAllowedPatternCheck, ValuePatternCheck,
|
|
6
|
+
ValueStringTypeCheck, ValueTokenCheck)
|
|
7
7
|
from credsweeper.filters.group import Group
|
|
8
8
|
|
|
9
9
|
|
|
@@ -23,7 +23,6 @@ class UrlCredentialsGroup(Group):
|
|
|
23
23
|
ValueBlocklistCheck(),
|
|
24
24
|
ValueCamelCaseCheck(),
|
|
25
25
|
ValueFilePathCheck(),
|
|
26
|
-
ValueFirstWordCheck(),
|
|
27
26
|
ValueLastWordCheck(),
|
|
28
27
|
ValueMethodCheck(),
|
|
29
28
|
ValueStringTypeCheck(config),
|
|
@@ -25,6 +25,7 @@ class ValueAllowlistCheck(Filter):
|
|
|
25
25
|
|
|
26
26
|
ALLOWED_QUOTED = [
|
|
27
27
|
r"\$[a-z_]+[0-9a-z_]*([$\s]|$)", #
|
|
28
|
+
r"\$\([^)]+\)", #
|
|
28
29
|
r".*\*\*\*", #
|
|
29
30
|
]
|
|
30
31
|
|
|
@@ -33,6 +34,7 @@ class ValueAllowlistCheck(Filter):
|
|
|
33
34
|
ALLOWED_UNQUOTED = [
|
|
34
35
|
r"[~a-z0-9_]+((\.|->)[a-z0-9_]+)+\(.*$", #
|
|
35
36
|
r"\$[a-z_]+[0-9a-z_]*\b", #
|
|
37
|
+
r"\$\([.0-9a-z_-]+", #
|
|
36
38
|
r".*\*\*\*\*\*", #
|
|
37
39
|
]
|
|
38
40
|
|
|
@@ -52,14 +54,11 @@ class ValueAllowlistCheck(Filter):
|
|
|
52
54
|
True, if need to filter candidate and False if left
|
|
53
55
|
|
|
54
56
|
"""
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return True
|
|
58
|
-
elif line_data.is_well_quoted_value:
|
|
59
|
-
if self.ALLOWED_QUOTED_PATTERN.match(line_data.value):
|
|
57
|
+
if line_data.is_well_quoted_value:
|
|
58
|
+
if self.ALLOWED_PATTERN.match(line_data.value) or self.ALLOWED_QUOTED_PATTERN.match(line_data.value):
|
|
60
59
|
return True
|
|
61
60
|
else:
|
|
62
|
-
|
|
61
|
+
value = line_data.wrap + line_data.value if line_data.wrap else line_data.value
|
|
62
|
+
if self.ALLOWED_PATTERN.match(value) or self.ALLOWED_UNQUOTED_PATTERN.match(value):
|
|
63
63
|
return True
|
|
64
|
-
|
|
65
64
|
return False
|
|
@@ -448,7 +448,7 @@
|
|
|
448
448
|
confidence: moderate
|
|
449
449
|
type: keyword
|
|
450
450
|
values:
|
|
451
|
-
- (?<!by)pass(?!ed|ing|es|\s+[a-z]{3,80})|pw(d|\b)
|
|
451
|
+
- (?<!by)pass(?!ed|ing|es|age|\s+[a-z]{3,80})|pw(d|\b)
|
|
452
452
|
filter_type: PasswordKeyword
|
|
453
453
|
use_ml: true
|
|
454
454
|
min_line_len: 10
|
|
@@ -890,7 +890,7 @@
|
|
|
890
890
|
confidence: moderate
|
|
891
891
|
type: keyword
|
|
892
892
|
values:
|
|
893
|
-
- nonce
|
|
893
|
+
- (?<!\\)nonce
|
|
894
894
|
filter_type: GeneralKeyword
|
|
895
895
|
use_ml: true
|
|
896
896
|
min_line_len: 13
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
|
|
3
|
-
from credsweeper.config import Config
|
|
4
|
-
from credsweeper.credentials import LineData
|
|
5
|
-
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
6
|
-
from credsweeper.filters import Filter
|
|
7
|
-
from credsweeper.utils import Util
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ValueFirstWordCheck(Filter):
|
|
11
|
-
"""Check that secret doesn't starts with special character."""
|
|
12
|
-
|
|
13
|
-
NOT_ALLOWED = [
|
|
14
|
-
r"\=", r"\{", r"\)", r"\<", r"\>", r"\#", r"\:", r"\\\\", r"\\/\\/", r"\_", r"\/\*", r"\%[deflspuvxz]"
|
|
15
|
-
]
|
|
16
|
-
NOT_ALLOWED_PATTERN = re.compile( #
|
|
17
|
-
f"^{Util.get_regex_combine_or(NOT_ALLOWED)}", #
|
|
18
|
-
flags=re.IGNORECASE)
|
|
19
|
-
|
|
20
|
-
def __init__(self, config: Config = None) -> None:
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
def run(self, line_data: LineData, target: AnalysisTarget) -> bool:
|
|
24
|
-
"""Run filter checks on received credential candidate data 'line_data'.
|
|
25
|
-
|
|
26
|
-
Args:
|
|
27
|
-
line_data: credential candidate data
|
|
28
|
-
target: multiline target from which line data was obtained
|
|
29
|
-
|
|
30
|
-
Return:
|
|
31
|
-
True, if need to filter candidate and False if left
|
|
32
|
-
|
|
33
|
-
"""
|
|
34
|
-
if line_data.is_well_quoted_value:
|
|
35
|
-
return False
|
|
36
|
-
if self.NOT_ALLOWED_PATTERN.match(line_data.value):
|
|
37
|
-
return True
|
|
38
|
-
return False
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate_group_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/string_content_provider.py
RENAMED
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/struct_content_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_array_dictionary_check.py
RENAMED
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_atlassian_token_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_encoded_pem_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_dictionary_keyword_check.py
RENAMED
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_dictionary_value_length_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_grafana_service_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_not_allowed_pattern_check.py
RENAMED
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_not_part_encoded_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/entropy_evaluation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/is_secret_numeric.py
RENAMED
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/length_of_attribute.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/search_in_attribute.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_postamble.py
RENAMED
|
File without changes
|
|
File without changes
|
{credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_transition.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|