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.

Files changed (153) hide show
  1. {credsweeper-1.11.1 → credsweeper-1.11.2}/PKG-INFO +1 -1
  2. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/__init__.py +1 -1
  3. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/keyword_pattern.py +17 -9
  4. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/__init__.py +0 -1
  5. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/group.py +3 -4
  6. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/url_credentials_group.py +2 -3
  7. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_allowlist_check.py +6 -7
  8. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/rules/config.yaml +2 -2
  9. credsweeper-1.11.1/credsweeper/filters/value_first_word_check.py +0 -38
  10. {credsweeper-1.11.1 → credsweeper-1.11.2}/.gitignore +0 -0
  11. {credsweeper-1.11.1 → credsweeper-1.11.2}/LICENSE +0 -0
  12. {credsweeper-1.11.1 → credsweeper-1.11.2}/README.md +0 -0
  13. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/__main__.py +0 -0
  14. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/app.py +0 -0
  15. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/__init__.py +0 -0
  16. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/constants.py +0 -0
  17. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/keyword_checklist.py +0 -0
  18. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/keyword_checklist.txt +0 -0
  19. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/common/morpheme_checklist.txt +0 -0
  20. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/config/__init__.py +0 -0
  21. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/config/config.py +0 -0
  22. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/__init__.py +0 -0
  23. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/augment_candidates.py +0 -0
  24. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate.py +0 -0
  25. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate_group_generator.py +0 -0
  26. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/candidate_key.py +0 -0
  27. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/credential_manager.py +0 -0
  28. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/credentials/line_data.py +0 -0
  29. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/__init__.py +0 -0
  30. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/abstract_scanner.py +0 -0
  31. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/byte_scanner.py +0 -0
  32. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/bzip2_scanner.py +0 -0
  33. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/deep_scanner.py +0 -0
  34. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/docx_scanner.py +0 -0
  35. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/eml_scanner.py +0 -0
  36. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/encoder_scanner.py +0 -0
  37. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/gzip_scanner.py +0 -0
  38. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/html_scanner.py +0 -0
  39. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/jks_scanner.py +0 -0
  40. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/lang_scanner.py +0 -0
  41. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/mxfile_scanner.py +0 -0
  42. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/pdf_scanner.py +0 -0
  43. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/pkcs12_scanner.py +0 -0
  44. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/pptx_scanner.py +0 -0
  45. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/tar_scanner.py +0 -0
  46. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/tmx_scanner.py +0 -0
  47. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/xlsx_scanner.py +0 -0
  48. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/xml_scanner.py +0 -0
  49. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/deep_scanner/zip_scanner.py +0 -0
  50. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/__init__.py +0 -0
  51. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/abstract_provider.py +0 -0
  52. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/analysis_target.py +0 -0
  53. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/byte_content_provider.py +0 -0
  54. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/content_provider.py +0 -0
  55. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/data_content_provider.py +0 -0
  56. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/descriptor.py +0 -0
  57. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/diff_content_provider.py +0 -0
  58. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/file_path_extractor.py +0 -0
  59. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/files_provider.py +0 -0
  60. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/patches_provider.py +0 -0
  61. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/string_content_provider.py +0 -0
  62. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/struct_content_provider.py +0 -0
  63. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/file_handler/text_content_provider.py +0 -0
  64. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/filter.py +0 -0
  65. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/__init__.py +0 -0
  66. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/general_keyword.py +0 -0
  67. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/general_pattern.py +0 -0
  68. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/password_keyword.py +0 -0
  69. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/token_pattern.py +0 -0
  70. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/weird_base36_token.py +0 -0
  71. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/group/weird_base64_token.py +0 -0
  72. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/line_git_binary_check.py +0 -0
  73. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/line_specific_key_check.py +0 -0
  74. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/line_uue_part_check.py +0 -0
  75. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_array_dictionary_check.py +0 -0
  76. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_atlassian_token_check.py +0 -0
  77. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_azure_token_check.py +0 -0
  78. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base32_data_check.py +0 -0
  79. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_data_check.py +0 -0
  80. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_encoded_pem_check.py +0 -0
  81. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_key_check.py +0 -0
  82. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_base64_part_check.py +0 -0
  83. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_blocklist_check.py +0 -0
  84. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_camel_case_check.py +0 -0
  85. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_couple_keyword_check.py +0 -0
  86. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_dictionary_keyword_check.py +0 -0
  87. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_dictionary_value_length_check.py +0 -0
  88. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_discord_bot_check.py +0 -0
  89. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_entropy_base32_check.py +0 -0
  90. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_entropy_base36_check.py +0 -0
  91. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_entropy_base64_check.py +0 -0
  92. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_file_path_check.py +0 -0
  93. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_github_check.py +0 -0
  94. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_grafana_check.py +0 -0
  95. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_grafana_service_check.py +0 -0
  96. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_hex_number_check.py +0 -0
  97. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_jfrog_token_check.py +0 -0
  98. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_json_web_token_check.py +0 -0
  99. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_last_word_check.py +0 -0
  100. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_method_check.py +0 -0
  101. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_not_allowed_pattern_check.py +0 -0
  102. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_not_part_encoded_check.py +0 -0
  103. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_number_check.py +0 -0
  104. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_pattern_check.py +0 -0
  105. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_similarity_check.py +0 -0
  106. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_split_keyword_check.py +0 -0
  107. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_string_type_check.py +0 -0
  108. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base32_check.py +0 -0
  109. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base36_check.py +0 -0
  110. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base64_check.py +0 -0
  111. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_base_check.py +0 -0
  112. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/filters/value_token_check.py +0 -0
  113. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/logger/__init__.py +0 -0
  114. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/logger/logger.py +0 -0
  115. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/__init__.py +0 -0
  116. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/__init__.py +0 -0
  117. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/entropy_evaluation.py +0 -0
  118. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/feature.py +0 -0
  119. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/file_extension.py +0 -0
  120. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/has_html_tag.py +0 -0
  121. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/is_secret_numeric.py +0 -0
  122. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/length_of_attribute.py +0 -0
  123. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/morpheme_dense.py +0 -0
  124. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/rule_name.py +0 -0
  125. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/search_in_attribute.py +0 -0
  126. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in.py +0 -0
  127. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_path.py +0 -0
  128. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_postamble.py +0 -0
  129. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_preamble.py +0 -0
  130. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_transition.py +0 -0
  131. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_value.py +0 -0
  132. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/features/word_in_variable.py +0 -0
  133. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/ml_config.json +0 -0
  134. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/ml_model.onnx +0 -0
  135. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/ml_model/ml_validator.py +0 -0
  136. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/py.typed +0 -0
  137. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/rules/__init__.py +0 -0
  138. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/rules/rule.py +0 -0
  139. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/__init__.py +0 -0
  140. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/__init__.py +0 -0
  141. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/multi_pattern.py +0 -0
  142. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/pem_key_pattern.py +0 -0
  143. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/scan_type.py +0 -0
  144. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scan_type/single_pattern.py +0 -0
  145. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/scanner/scanner.py +0 -0
  146. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/secret/config.json +0 -0
  147. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/secret/log.yaml +0 -0
  148. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/__init__.py +0 -0
  149. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/entropy_validator.py +0 -0
  150. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/hop_stat.py +0 -0
  151. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/pem_key_detector.py +0 -0
  152. {credsweeper-1.11.1 → credsweeper-1.11.2}/credsweeper/utils/util.py +0 -0
  153. {credsweeper-1.11.1 → credsweeper-1.11.2}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: credsweeper
3
- Version: 1.11.1
3
+ Version: 1.11.2
4
4
  Summary: Credential Sweeper
5
5
  Project-URL: Homepage, https://github.com/Samsung/CredSweeper
6
6
  Project-URL: Bug Tracker, https://github.com/Samsung/CredSweeper/issues
@@ -18,4 +18,4 @@ __all__ = [
18
18
  '__version__'
19
19
  ]
20
20
 
21
- __version__ = "1.11.1"
21
+ __version__ = "1.11.2"
@@ -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)?=|:|=(>|&gt;|\\u0026gt;)|!==|!=|===|==|=|%3d)" \
16
+ r"(?P<separator>:(\s[a-z]{3,9}[?]?\s)?=|:(?!:)|=(>|&gt;|(\\\\*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_.]|-(>|(&|\\\\*u0026)gt;))*" \
20
+ r"(new(\s|\\{1,8}[tnr]|byte|char|string|\[\]){1,8})?" \
21
+ r"([0-9a-z_.]|::|-(>|&gt;))*" \
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")){3,8000}" \
43
- r"|(\{[^}]{3,8000}\})" \
44
- r"|(<[^>]{3,8000}>)" \
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, ValueFirstWordCheck,
8
- ValueLastWordCheck, ValueMethodCheck, ValueNotAllowedPatternCheck, ValuePatternCheck,
9
- ValueSimilarityCheck, ValueStringTypeCheck, ValueTokenCheck, ValueHexNumberCheck)
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(),
@@ -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
- ValueFirstWordCheck, ValueLastWordCheck, ValueMethodCheck, ValueNotAllowedPatternCheck,
6
- ValuePatternCheck, ValueStringTypeCheck, ValueTokenCheck)
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
- if self.ALLOWED_PATTERN.match(line_data.value):
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
- if self.ALLOWED_UNQUOTED_PATTERN.match(line_data.value):
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