credsweeper 1.11.4__py3-none-any.whl → 1.11.6__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (138) hide show
  1. credsweeper/__init__.py +21 -15
  2. credsweeper/__main__.py +141 -35
  3. credsweeper/app.py +11 -11
  4. credsweeper/config/__init__.py +0 -1
  5. credsweeper/config/config.py +1 -1
  6. credsweeper/credentials/__init__.py +0 -5
  7. credsweeper/credentials/augment_candidates.py +1 -1
  8. credsweeper/credentials/candidate.py +1 -1
  9. credsweeper/credentials/credential_manager.py +1 -1
  10. credsweeper/credentials/line_data.py +2 -2
  11. credsweeper/deep_scanner/__init__.py +0 -1
  12. credsweeper/deep_scanner/abstract_scanner.py +272 -17
  13. credsweeper/deep_scanner/byte_scanner.py +1 -1
  14. credsweeper/deep_scanner/bzip2_scanner.py +2 -2
  15. credsweeper/deep_scanner/deb_scanner.py +34 -27
  16. credsweeper/deep_scanner/deep_scanner.py +37 -250
  17. credsweeper/deep_scanner/docx_scanner.py +1 -1
  18. credsweeper/deep_scanner/eml_scanner.py +1 -1
  19. credsweeper/deep_scanner/encoder_scanner.py +1 -1
  20. credsweeper/deep_scanner/gzip_scanner.py +2 -2
  21. credsweeper/deep_scanner/html_scanner.py +1 -1
  22. credsweeper/deep_scanner/jclass_scanner.py +74 -0
  23. credsweeper/deep_scanner/jks_scanner.py +1 -1
  24. credsweeper/deep_scanner/lang_scanner.py +1 -1
  25. credsweeper/deep_scanner/lzma_scanner.py +2 -2
  26. credsweeper/deep_scanner/mxfile_scanner.py +1 -1
  27. credsweeper/deep_scanner/patch_scanner.py +48 -0
  28. credsweeper/deep_scanner/pdf_scanner.py +1 -1
  29. credsweeper/deep_scanner/pkcs_scanner.py +41 -0
  30. credsweeper/deep_scanner/pptx_scanner.py +1 -1
  31. credsweeper/deep_scanner/rpm_scanner.py +49 -0
  32. credsweeper/deep_scanner/sqlite3_scanner.py +79 -0
  33. credsweeper/deep_scanner/tar_scanner.py +2 -2
  34. credsweeper/deep_scanner/tmx_scanner.py +2 -2
  35. credsweeper/deep_scanner/xlsx_scanner.py +2 -2
  36. credsweeper/deep_scanner/xml_scanner.py +1 -1
  37. credsweeper/deep_scanner/zip_scanner.py +2 -2
  38. credsweeper/file_handler/__init__.py +0 -15
  39. credsweeper/file_handler/abstract_provider.py +3 -4
  40. credsweeper/file_handler/byte_content_provider.py +1 -1
  41. credsweeper/file_handler/content_provider.py +1 -1
  42. credsweeper/file_handler/data_content_provider.py +2 -3
  43. credsweeper/file_handler/diff_content_provider.py +133 -3
  44. credsweeper/file_handler/file_path_extractor.py +2 -2
  45. credsweeper/file_handler/files_provider.py +4 -4
  46. credsweeper/file_handler/patches_provider.py +10 -8
  47. credsweeper/file_handler/text_content_provider.py +1 -1
  48. credsweeper/filters/__init__.py +2 -2
  49. credsweeper/filters/filter.py +2 -2
  50. credsweeper/filters/group/__init__.py +0 -2
  51. credsweeper/filters/group/general_keyword.py +2 -2
  52. credsweeper/filters/group/general_pattern.py +2 -2
  53. credsweeper/filters/group/group.py +16 -5
  54. credsweeper/filters/group/password_keyword.py +2 -2
  55. credsweeper/filters/group/token_pattern.py +2 -2
  56. credsweeper/filters/group/url_credentials_group.py +2 -2
  57. credsweeper/filters/group/weird_base36_token.py +2 -2
  58. credsweeper/filters/group/weird_base64_token.py +2 -2
  59. credsweeper/filters/line_git_binary_check.py +3 -3
  60. credsweeper/filters/line_specific_key_check.py +4 -4
  61. credsweeper/filters/line_uue_part_check.py +3 -3
  62. credsweeper/filters/value_allowlist_check.py +4 -4
  63. credsweeper/filters/value_array_dictionary_check.py +3 -3
  64. credsweeper/filters/value_atlassian_token_check.py +4 -4
  65. credsweeper/filters/value_azure_token_check.py +4 -4
  66. credsweeper/filters/value_base32_data_check.py +4 -4
  67. credsweeper/filters/value_base64_data_check.py +4 -4
  68. credsweeper/filters/value_base64_encoded_pem_check.py +4 -4
  69. credsweeper/filters/value_base64_key_check.py +13 -18
  70. credsweeper/filters/value_base64_part_check.py +4 -4
  71. credsweeper/filters/value_basic_auth_check.py +36 -0
  72. credsweeper/filters/value_blocklist_check.py +3 -3
  73. credsweeper/filters/value_camel_case_check.py +4 -4
  74. credsweeper/filters/value_couple_keyword_check.py +3 -3
  75. credsweeper/filters/value_dictionary_keyword_check.py +3 -3
  76. credsweeper/filters/value_dictionary_value_length_check.py +3 -3
  77. credsweeper/filters/value_discord_bot_check.py +4 -4
  78. credsweeper/filters/value_entropy_base_check.py +4 -4
  79. credsweeper/filters/value_file_path_check.py +5 -4
  80. credsweeper/filters/value_github_check.py +3 -3
  81. credsweeper/filters/value_grafana_check.py +4 -4
  82. credsweeper/filters/value_grafana_service_check.py +3 -3
  83. credsweeper/filters/value_hex_number_check.py +3 -3
  84. credsweeper/filters/value_jfrog_token_check.py +4 -4
  85. credsweeper/filters/value_json_web_key_check.py +37 -0
  86. credsweeper/filters/value_json_web_token_check.py +4 -4
  87. credsweeper/filters/value_last_word_check.py +3 -3
  88. credsweeper/filters/value_method_check.py +3 -3
  89. credsweeper/filters/value_not_allowed_pattern_check.py +4 -4
  90. credsweeper/filters/value_not_part_encoded_check.py +3 -3
  91. credsweeper/filters/value_number_check.py +3 -3
  92. credsweeper/filters/value_pattern_check.py +3 -3
  93. credsweeper/filters/value_similarity_check.py +3 -3
  94. credsweeper/filters/value_split_keyword_check.py +3 -3
  95. credsweeper/filters/value_string_type_check.py +3 -3
  96. credsweeper/filters/value_token_base_check.py +3 -3
  97. credsweeper/filters/value_token_check.py +3 -3
  98. credsweeper/logger/__init__.py +0 -1
  99. credsweeper/logger/logger.py +1 -1
  100. credsweeper/ml_model/__init__.py +0 -1
  101. credsweeper/ml_model/features/entropy_evaluation.py +1 -1
  102. credsweeper/ml_model/features/feature.py +1 -1
  103. credsweeper/ml_model/features/file_extension.py +1 -1
  104. credsweeper/ml_model/features/has_html_tag.py +2 -2
  105. credsweeper/ml_model/features/is_secret_numeric.py +1 -1
  106. credsweeper/ml_model/features/length_of_attribute.py +1 -1
  107. credsweeper/ml_model/features/morpheme_dense.py +1 -1
  108. credsweeper/ml_model/features/rule_name.py +1 -1
  109. credsweeper/ml_model/features/search_in_attribute.py +1 -1
  110. credsweeper/ml_model/features/word_in.py +1 -1
  111. credsweeper/ml_model/features/word_in_path.py +1 -1
  112. credsweeper/ml_model/features/word_in_postamble.py +1 -1
  113. credsweeper/ml_model/features/word_in_preamble.py +1 -1
  114. credsweeper/ml_model/features/word_in_transition.py +1 -1
  115. credsweeper/ml_model/features/word_in_value.py +1 -1
  116. credsweeper/ml_model/features/word_in_variable.py +1 -1
  117. credsweeper/ml_model/ml_validator.py +3 -2
  118. credsweeper/rules/__init__.py +0 -1
  119. credsweeper/rules/config.yaml +114 -25
  120. credsweeper/rules/rule.py +4 -3
  121. credsweeper/scanner/__init__.py +0 -1
  122. credsweeper/scanner/scan_type/__init__.py +0 -5
  123. credsweeper/scanner/scan_type/multi_pattern.py +5 -6
  124. credsweeper/scanner/scan_type/pem_key_pattern.py +4 -4
  125. credsweeper/scanner/scan_type/scan_type.py +4 -4
  126. credsweeper/scanner/scan_type/single_pattern.py +4 -4
  127. credsweeper/scanner/scanner.py +8 -5
  128. credsweeper/secret/config.json +6 -6
  129. credsweeper/utils/__init__.py +0 -1
  130. credsweeper/utils/pem_key_detector.py +5 -5
  131. credsweeper/utils/util.py +143 -206
  132. {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/METADATA +3 -6
  133. credsweeper-1.11.6.dist-info/RECORD +160 -0
  134. credsweeper/deep_scanner/pkcs12_scanner.py +0 -45
  135. credsweeper-1.11.4.dist-info/RECORD +0 -154
  136. {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/WHEEL +0 -0
  137. {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/entry_points.txt +0 -0
  138. {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/licenses/LICENSE +0 -0
@@ -1,10 +1,10 @@
1
1
  import re
2
2
 
3
3
  from credsweeper.common.constants import DEFAULT_PATTERN_LEN
4
- from credsweeper.config import Config
5
- from credsweeper.credentials import LineData
4
+ from credsweeper.config.config import Config
5
+ from credsweeper.credentials.line_data import LineData
6
6
  from credsweeper.file_handler.analysis_target import AnalysisTarget
7
- from credsweeper.filters import Filter
7
+ from credsweeper.filters.filter import Filter
8
8
 
9
9
 
10
10
  class ValuePatternCheck(Filter):
@@ -1,7 +1,7 @@
1
- from credsweeper.config import Config
2
- from credsweeper.credentials import LineData
1
+ from credsweeper.config.config import Config
2
+ from credsweeper.credentials.line_data import LineData
3
3
  from credsweeper.file_handler.analysis_target import AnalysisTarget
4
- from credsweeper.filters import Filter
4
+ from credsweeper.filters.filter import Filter
5
5
 
6
6
 
7
7
  class ValueSimilarityCheck(Filter):
@@ -1,10 +1,10 @@
1
1
  from typing import Union
2
2
 
3
3
  from credsweeper.common import static_keyword_checklist
4
- from credsweeper.config import Config
5
- from credsweeper.credentials import LineData
4
+ from credsweeper.config.config import Config
5
+ from credsweeper.credentials.line_data import LineData
6
6
  from credsweeper.file_handler.analysis_target import AnalysisTarget
7
- from credsweeper.filters import Filter
7
+ from credsweeper.filters.filter import Filter
8
8
 
9
9
 
10
10
  class ValueSplitKeywordCheck(Filter):
@@ -1,9 +1,9 @@
1
1
  import re
2
2
 
3
- from credsweeper.config import Config
4
- from credsweeper.credentials import LineData
3
+ from credsweeper.config.config import Config
4
+ from credsweeper.credentials.line_data import LineData
5
5
  from credsweeper.file_handler.analysis_target import AnalysisTarget
6
- from credsweeper.filters import Filter
6
+ from credsweeper.filters.filter import Filter
7
7
 
8
8
 
9
9
  class ValueStringTypeCheck(Filter):
@@ -2,10 +2,10 @@ import contextlib
2
2
  from abc import abstractmethod
3
3
  from typing import Tuple
4
4
 
5
- from credsweeper.config import Config
6
- from credsweeper.credentials import LineData
5
+ from credsweeper.config.config import Config
6
+ from credsweeper.credentials.line_data import LineData
7
7
  from credsweeper.file_handler.analysis_target import AnalysisTarget
8
- from credsweeper.filters import Filter
8
+ from credsweeper.filters.filter import Filter
9
9
  from credsweeper.utils.hop_stat import HopStat
10
10
 
11
11
 
@@ -1,9 +1,9 @@
1
1
  import re
2
2
 
3
- from credsweeper.config import Config
4
- from credsweeper.credentials import LineData
3
+ from credsweeper.config.config import Config
4
+ from credsweeper.credentials.line_data import LineData
5
5
  from credsweeper.file_handler.analysis_target import AnalysisTarget
6
- from credsweeper.filters import Filter
6
+ from credsweeper.filters.filter import Filter
7
7
 
8
8
 
9
9
  class ValueTokenCheck(Filter):
@@ -1 +0,0 @@
1
- from credsweeper.logger.logger import Logger
@@ -4,7 +4,7 @@ from pathlib import Path
4
4
  from typing import Optional
5
5
 
6
6
  from credsweeper.app import APP_PATH
7
- from credsweeper.utils import Util
7
+ from credsweeper.utils.util import Util
8
8
 
9
9
 
10
10
  class Logger:
@@ -1 +0,0 @@
1
- from credsweeper.ml_model.ml_validator import MlValidator
@@ -4,7 +4,7 @@ from typing import Dict, List, Set
4
4
  import numpy as np
5
5
 
6
6
  from credsweeper.common.constants import Chars, ML_HUNK
7
- from credsweeper.credentials import Candidate
7
+ from credsweeper.credentials.candidate import Candidate
8
8
  from credsweeper.file_handler.data_content_provider import MIN_DATA_LEN
9
9
  from credsweeper.ml_model.features.feature import Feature
10
10
 
@@ -3,7 +3,7 @@ from typing import List, Any
3
3
 
4
4
  import numpy as np
5
5
 
6
- from credsweeper.credentials import Candidate
6
+ from credsweeper.credentials.candidate import Candidate
7
7
 
8
8
 
9
9
  class Feature(ABC):
@@ -2,7 +2,7 @@ from typing import List, Any
2
2
 
3
3
  import numpy as np
4
4
 
5
- from credsweeper.credentials import Candidate
5
+ from credsweeper.credentials.candidate import Candidate
6
6
  from credsweeper.ml_model.features.word_in import WordIn
7
7
 
8
8
 
@@ -1,7 +1,7 @@
1
1
  from credsweeper.common.constants import CHUNK_SIZE
2
- from credsweeper.credentials import Candidate
2
+ from credsweeper.credentials.candidate import Candidate
3
3
  from credsweeper.ml_model.features.feature import Feature
4
- from credsweeper.utils import Util
4
+ from credsweeper.utils.util import Util
5
5
 
6
6
 
7
7
  class HasHtmlTag(Feature):
@@ -1,4 +1,4 @@
1
- from credsweeper.credentials import Candidate
1
+ from credsweeper.credentials.candidate import Candidate
2
2
  from credsweeper.ml_model.features.feature import Feature
3
3
 
4
4
 
@@ -1,7 +1,7 @@
1
1
  import numpy as np
2
2
 
3
3
  from credsweeper.common.constants import ML_HUNK
4
- from credsweeper.credentials import Candidate
4
+ from credsweeper.credentials.candidate import Candidate
5
5
  from credsweeper.ml_model.features.feature import Feature
6
6
 
7
7
 
@@ -1,5 +1,5 @@
1
1
  from credsweeper.common import static_keyword_checklist
2
- from credsweeper.credentials import Candidate
2
+ from credsweeper.credentials.candidate import Candidate
3
3
  from credsweeper.ml_model.features.feature import Feature
4
4
 
5
5
 
@@ -2,7 +2,7 @@ from typing import List, Any
2
2
 
3
3
  import numpy as np
4
4
 
5
- from credsweeper.credentials import Candidate
5
+ from credsweeper.credentials.candidate import Candidate
6
6
  from credsweeper.ml_model.features.word_in import WordIn
7
7
 
8
8
 
@@ -1,6 +1,6 @@
1
1
  import re
2
2
 
3
- from credsweeper.credentials import Candidate
3
+ from credsweeper.credentials.candidate import Candidate
4
4
  from credsweeper.ml_model.features.feature import Feature
5
5
 
6
6
 
@@ -3,7 +3,7 @@ from typing import List, Any, Tuple, Set
3
3
 
4
4
  import numpy as np
5
5
 
6
- from credsweeper.credentials import Candidate
6
+ from credsweeper.credentials.candidate import Candidate
7
7
  from credsweeper.ml_model.features.feature import Feature
8
8
 
9
9
 
@@ -3,7 +3,7 @@ from typing import List, Any
3
3
 
4
4
  import numpy as np
5
5
 
6
- from credsweeper.credentials import Candidate
6
+ from credsweeper.credentials.candidate import Candidate
7
7
  from credsweeper.ml_model.features.word_in import WordIn
8
8
 
9
9
 
@@ -1,7 +1,7 @@
1
1
  import numpy as np
2
2
 
3
3
  from credsweeper.common.constants import ML_HUNK
4
- from credsweeper.credentials import Candidate
4
+ from credsweeper.credentials.candidate import Candidate
5
5
  from credsweeper.ml_model.features.word_in import WordIn
6
6
 
7
7
 
@@ -1,7 +1,7 @@
1
1
  import numpy as np
2
2
 
3
3
  from credsweeper.common.constants import ML_HUNK
4
- from credsweeper.credentials import Candidate
4
+ from credsweeper.credentials.candidate import Candidate
5
5
  from credsweeper.ml_model.features.word_in import WordIn
6
6
 
7
7
 
@@ -1,6 +1,6 @@
1
1
  import numpy as np
2
2
 
3
- from credsweeper.credentials import Candidate
3
+ from credsweeper.credentials.candidate import Candidate
4
4
  from credsweeper.ml_model.features.word_in import WordIn
5
5
 
6
6
 
@@ -1,6 +1,6 @@
1
1
  import numpy as np
2
2
 
3
- from credsweeper.credentials import Candidate
3
+ from credsweeper.credentials.candidate import Candidate
4
4
  from credsweeper.ml_model.features.word_in import WordIn
5
5
 
6
6
 
@@ -1,6 +1,6 @@
1
1
  import numpy as np
2
2
 
3
- from credsweeper.credentials import Candidate
3
+ from credsweeper.credentials.candidate import Candidate
4
4
  from credsweeper.ml_model.features.word_in import WordIn
5
5
 
6
6
 
@@ -9,8 +9,9 @@ from onnxruntime import InferenceSession
9
9
 
10
10
  import credsweeper.ml_model.features as features
11
11
  from credsweeper.common.constants import ThresholdPreset, ML_HUNK
12
- from credsweeper.credentials import Candidate, CandidateKey
13
- from credsweeper.utils import Util
12
+ from credsweeper.credentials.candidate import Candidate
13
+ from credsweeper.credentials.candidate_key import CandidateKey
14
+ from credsweeper.utils.util import Util
14
15
 
15
16
  logger = logging.getLogger(__name__)
16
17
 
@@ -1 +0,0 @@
1
- from credsweeper.rules.rule import Rule
@@ -209,6 +209,20 @@
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
@@ -375,16 +389,16 @@
375
389
  - code
376
390
  - doc
377
391
 
378
- - name: Heroku API Key
392
+ - name: Heroku Credentials
379
393
  severity: high
380
- confidence: moderate
394
+ confidence: strong
381
395
  type: pattern
382
396
  values:
383
- - (?i)(?P<value>heroku(.{0,20})?[0-9a-f]{8}(-[0-9a-f]{4})+-[0-9a-f]{12})(?![0-9A-Za-z_-])
397
+ - (?P<value>HRKU-([0-9A-Za-z_-]{60}|[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}))
384
398
  filter_type: GeneralPattern
385
399
  required_substrings:
386
- - heroku
387
- min_line_len: 24
400
+ - HRKU-
401
+ min_line_len: 41
388
402
  target:
389
403
  - code
390
404
  - doc
@@ -413,7 +427,49 @@
413
427
  - ValueJsonWebTokenCheck
414
428
  required_substrings:
415
429
  - eyJ
416
- min_line_len: 18
430
+ min_line_len: 64
431
+ target:
432
+ - code
433
+ - doc
434
+
435
+ - name: JSON Web Key
436
+ severity: medium
437
+ confidence: strong
438
+ type: pattern
439
+ values:
440
+ - (?P<value>\b(e(yJ|yAi|woi|wog|w0K)|W(yJ|3si|wp7|wog|w0K|3sK))[0-9A-Za-z_+/-]{60,8000})
441
+ filter_type:
442
+ - ValueJsonWebKeyCheck
443
+ required_substrings:
444
+ - eyJ
445
+ - eyAi
446
+ - ewoi
447
+ - ewog
448
+ - ew0K
449
+ - WyJ
450
+ - W3si
451
+ - Wwp7
452
+ - Wwog
453
+ - Ww0K
454
+ - W3sK
455
+ min_line_len: 64
456
+ target:
457
+ - code
458
+ - doc
459
+
460
+ - name: JWK
461
+ severity: medium
462
+ confidence: moderate
463
+ type: multi
464
+ values:
465
+ - (?P<value>['"]?\b(?P<variable>kty)[^0-9A-Za-z_-]{1,8}(RSA|EC|oct)\b['"]?)
466
+ - (?P<variable>\b[dk])[^0-9A-Za-z_-]{1,8}(?P<value>[0-9A-Za-z_-]{22,8000})(?![=0-9A-Za-z_-])
467
+ filter_type:
468
+ - ValuePatternCheck
469
+ - ValueCoupleKeywordCheck(3)
470
+ required_substrings:
471
+ - kty
472
+ min_line_len: 8
417
473
  target:
418
474
  - code
419
475
  - doc
@@ -1234,6 +1290,23 @@
1234
1290
  - code
1235
1291
  - doc
1236
1292
 
1293
+ - name: Docker Access Token
1294
+ severity: high
1295
+ confidence: strong
1296
+ type: pattern
1297
+ values:
1298
+ - (?P<value>dckr_[op]at_[0-9A-Za-z_-]{27,32})
1299
+ min_line_len: 36
1300
+ filter_type:
1301
+ - ValuePatternCheck
1302
+ - ValueEntropyBase64Check
1303
+ required_substrings:
1304
+ - dckr_pat_
1305
+ - dckr_oat_
1306
+ target:
1307
+ - code
1308
+ - doc
1309
+
1237
1310
  - name: Docker Swarm Token
1238
1311
  severity: high
1239
1312
  confidence: strong
@@ -1392,45 +1465,61 @@
1392
1465
  - code
1393
1466
  - doc
1394
1467
 
1395
- - name: API
1468
+ - name: Basic Authorization
1469
+ severity: medium
1470
+ confidence: strong
1471
+ type: pattern
1472
+ values:
1473
+ - (?P<variable>(?i:basic))(?P<separator>\s+)(?P<value>[=0-9A-Za-z_/+-]{8,8000})(?![0-9A-Za-z_/+-])
1474
+ min_line_len: 18
1475
+ filter_type:
1476
+ - ValueBasicAuthCheck
1477
+ required_substrings:
1478
+ - basic
1479
+ target:
1480
+ - code
1481
+ - doc
1482
+
1483
+ - name: Bearer Authorization
1396
1484
  severity: medium
1397
1485
  confidence: moderate
1398
- type: keyword
1486
+ type: pattern
1399
1487
  values:
1400
- - api(?!tal)
1488
+ - (?P<variable>(?i:bearer|ntlm))(?P<separator>\s+)(?P<value>[.0-9A-Za-z_/+-]{32,8000}=*)(?![0-9A-Za-z_/+-])
1489
+ min_line_len: 37
1401
1490
  filter_type: GeneralKeyword
1402
- use_ml: true
1403
- min_line_len: 11
1404
1491
  required_substrings:
1405
- - api
1492
+ - bearer
1493
+ - ntlm
1406
1494
  target:
1407
1495
  - code
1496
+ - doc
1408
1497
 
1409
- - name: Auth
1410
- severity: medium
1498
+ - name: API
1499
+ severity: low
1411
1500
  confidence: moderate
1412
1501
  type: keyword
1413
1502
  values:
1414
- - auth(?!ors?(?!i[tz]))
1503
+ - api(?!tal)
1415
1504
  filter_type: GeneralKeyword
1416
1505
  use_ml: true
1417
- min_line_len: 12
1506
+ min_line_len: 11
1418
1507
  required_substrings:
1419
- - auth
1508
+ - api
1420
1509
  target:
1421
1510
  - code
1422
1511
 
1423
- - name: Certificate
1512
+ - name: Auth
1424
1513
  severity: medium
1425
1514
  confidence: moderate
1426
1515
  type: keyword
1427
1516
  values:
1428
- - cert
1517
+ - auth(?!ors?(?!i[tz]))
1429
1518
  filter_type: GeneralKeyword
1430
1519
  use_ml: true
1431
1520
  min_line_len: 12
1432
1521
  required_substrings:
1433
- - cert
1522
+ - auth
1434
1523
  target:
1435
1524
  - code
1436
1525
 
@@ -1449,7 +1538,7 @@
1449
1538
  - code
1450
1539
 
1451
1540
  - name: Key
1452
- severity: medium
1541
+ severity: high
1453
1542
  confidence: moderate
1454
1543
  type: keyword
1455
1544
  values:
@@ -1463,7 +1552,7 @@
1463
1552
  - code
1464
1553
 
1465
1554
  - name: Nonce
1466
- severity: medium
1555
+ severity: low
1467
1556
  confidence: moderate
1468
1557
  type: keyword
1469
1558
  values:
@@ -1477,7 +1566,7 @@
1477
1566
  - code
1478
1567
 
1479
1568
  - name: Password
1480
- severity: medium
1569
+ severity: high
1481
1570
  confidence: moderate
1482
1571
  type: keyword
1483
1572
  values:
@@ -1492,7 +1581,7 @@
1492
1581
  - code
1493
1582
 
1494
1583
  - name: Salt
1495
- severity: medium
1584
+ severity: low
1496
1585
  confidence: moderate
1497
1586
  type: keyword
1498
1587
  values:
@@ -1520,7 +1609,7 @@
1520
1609
  - code
1521
1610
 
1522
1611
  - name: Token
1523
- severity: medium
1612
+ severity: high
1524
1613
  confidence: moderate
1525
1614
  type: keyword
1526
1615
  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 Filter, group
12
- from credsweeper.filters.group import Group
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
 
@@ -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):
@@ -37,8 +37,7 @@ class MultiPattern(ScanType):
37
37
  "Rules provided to MultiPattern.run should have pattern_type equal to MULTI_PATTERN"
38
38
 
39
39
  candidates = cls._get_candidates(config, rule, target)
40
- if not candidates:
41
- return candidates
40
+
42
41
  for candidate in candidates:
43
42
  line_pos_margin = 1
44
43
  while line_pos_margin <= cls.MAX_SEARCH_MARGIN:
@@ -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):
@@ -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 PemKeyPattern, ScanType, SinglePattern, MultiPattern
15
- from credsweeper.utils import Util
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