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.
- credsweeper/__init__.py +21 -15
- credsweeper/__main__.py +141 -35
- credsweeper/app.py +11 -11
- credsweeper/config/__init__.py +0 -1
- credsweeper/config/config.py +1 -1
- 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 +2 -2
- credsweeper/deep_scanner/__init__.py +0 -1
- credsweeper/deep_scanner/abstract_scanner.py +272 -17
- credsweeper/deep_scanner/byte_scanner.py +1 -1
- credsweeper/deep_scanner/bzip2_scanner.py +2 -2
- credsweeper/deep_scanner/deb_scanner.py +34 -27
- credsweeper/deep_scanner/deep_scanner.py +37 -250
- 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 +74 -0
- 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/patch_scanner.py +48 -0
- credsweeper/deep_scanner/pdf_scanner.py +1 -1
- credsweeper/deep_scanner/pkcs_scanner.py +41 -0
- credsweeper/deep_scanner/pptx_scanner.py +1 -1
- credsweeper/deep_scanner/rpm_scanner.py +49 -0
- credsweeper/deep_scanner/sqlite3_scanner.py +79 -0
- 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 +2 -3
- 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 +10 -8
- credsweeper/file_handler/text_content_provider.py +1 -1
- credsweeper/filters/__init__.py +2 -2
- credsweeper/filters/filter.py +2 -2
- 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 +16 -5
- credsweeper/filters/group/password_keyword.py +2 -2
- credsweeper/filters/group/token_pattern.py +2 -2
- credsweeper/filters/group/url_credentials_group.py +2 -2
- credsweeper/filters/group/weird_base36_token.py +2 -2
- credsweeper/filters/group/weird_base64_token.py +2 -2
- credsweeper/filters/line_git_binary_check.py +3 -3
- credsweeper/filters/line_specific_key_check.py +4 -4
- credsweeper/filters/line_uue_part_check.py +3 -3
- credsweeper/filters/value_allowlist_check.py +4 -4
- credsweeper/filters/value_array_dictionary_check.py +3 -3
- credsweeper/filters/value_atlassian_token_check.py +4 -4
- credsweeper/filters/value_azure_token_check.py +4 -4
- credsweeper/filters/value_base32_data_check.py +4 -4
- credsweeper/filters/value_base64_data_check.py +4 -4
- credsweeper/filters/value_base64_encoded_pem_check.py +4 -4
- credsweeper/filters/value_base64_key_check.py +13 -18
- credsweeper/filters/value_base64_part_check.py +4 -4
- credsweeper/filters/value_basic_auth_check.py +36 -0
- credsweeper/filters/value_blocklist_check.py +3 -3
- credsweeper/filters/value_camel_case_check.py +4 -4
- credsweeper/filters/value_couple_keyword_check.py +3 -3
- credsweeper/filters/value_dictionary_keyword_check.py +3 -3
- credsweeper/filters/value_dictionary_value_length_check.py +3 -3
- credsweeper/filters/value_discord_bot_check.py +4 -4
- credsweeper/filters/value_entropy_base_check.py +4 -4
- credsweeper/filters/value_file_path_check.py +5 -4
- credsweeper/filters/value_github_check.py +3 -3
- credsweeper/filters/value_grafana_check.py +4 -4
- credsweeper/filters/value_grafana_service_check.py +3 -3
- credsweeper/filters/value_hex_number_check.py +3 -3
- credsweeper/filters/value_jfrog_token_check.py +4 -4
- credsweeper/filters/value_json_web_key_check.py +37 -0
- credsweeper/filters/value_json_web_token_check.py +4 -4
- credsweeper/filters/value_last_word_check.py +3 -3
- credsweeper/filters/value_method_check.py +3 -3
- credsweeper/filters/value_not_allowed_pattern_check.py +4 -4
- credsweeper/filters/value_not_part_encoded_check.py +3 -3
- credsweeper/filters/value_number_check.py +3 -3
- credsweeper/filters/value_pattern_check.py +3 -3
- credsweeper/filters/value_similarity_check.py +3 -3
- credsweeper/filters/value_split_keyword_check.py +3 -3
- credsweeper/filters/value_string_type_check.py +3 -3
- credsweeper/filters/value_token_base_check.py +3 -3
- credsweeper/filters/value_token_check.py +3 -3
- credsweeper/logger/__init__.py +0 -1
- credsweeper/logger/logger.py +1 -1
- credsweeper/ml_model/__init__.py +0 -1
- 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 +1 -1
- credsweeper/ml_model/features/rule_name.py +1 -1
- 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 +1 -1
- 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_validator.py +3 -2
- credsweeper/rules/__init__.py +0 -1
- credsweeper/rules/config.yaml +114 -25
- 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 +5 -6
- 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 +8 -5
- credsweeper/secret/config.json +6 -6
- credsweeper/utils/__init__.py +0 -1
- credsweeper/utils/pem_key_detector.py +5 -5
- credsweeper/utils/util.py +143 -206
- {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/METADATA +3 -6
- credsweeper-1.11.6.dist-info/RECORD +160 -0
- credsweeper/deep_scanner/pkcs12_scanner.py +0 -45
- credsweeper-1.11.4.dist-info/RECORD +0 -154
- {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/WHEEL +0 -0
- {credsweeper-1.11.4.dist-info → credsweeper-1.11.6.dist-info}/entry_points.txt +0 -0
- {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):
|
credsweeper/logger/__init__.py
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from credsweeper.logger.logger import Logger
|
credsweeper/logger/logger.py
CHANGED
credsweeper/ml_model/__init__.py
CHANGED
|
@@ -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
|
|
|
@@ -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):
|
|
@@ -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
|
|
13
|
-
from credsweeper.
|
|
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
|
|
credsweeper/rules/__init__.py
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from credsweeper.rules.rule import Rule
|
credsweeper/rules/config.yaml
CHANGED
|
@@ -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
|
|
392
|
+
- name: Heroku Credentials
|
|
379
393
|
severity: high
|
|
380
|
-
confidence:
|
|
394
|
+
confidence: strong
|
|
381
395
|
type: pattern
|
|
382
396
|
values:
|
|
383
|
-
- (?
|
|
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
|
-
-
|
|
387
|
-
min_line_len:
|
|
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:
|
|
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:
|
|
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:
|
|
1486
|
+
type: pattern
|
|
1399
1487
|
values:
|
|
1400
|
-
-
|
|
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
|
-
-
|
|
1492
|
+
- bearer
|
|
1493
|
+
- ntlm
|
|
1406
1494
|
target:
|
|
1407
1495
|
- code
|
|
1496
|
+
- doc
|
|
1408
1497
|
|
|
1409
|
-
- name:
|
|
1410
|
-
severity:
|
|
1498
|
+
- name: API
|
|
1499
|
+
severity: low
|
|
1411
1500
|
confidence: moderate
|
|
1412
1501
|
type: keyword
|
|
1413
1502
|
values:
|
|
1414
|
-
-
|
|
1503
|
+
- api(?!tal)
|
|
1415
1504
|
filter_type: GeneralKeyword
|
|
1416
1505
|
use_ml: true
|
|
1417
|
-
min_line_len:
|
|
1506
|
+
min_line_len: 11
|
|
1418
1507
|
required_substrings:
|
|
1419
|
-
-
|
|
1508
|
+
- api
|
|
1420
1509
|
target:
|
|
1421
1510
|
- code
|
|
1422
1511
|
|
|
1423
|
-
- name:
|
|
1512
|
+
- name: Auth
|
|
1424
1513
|
severity: medium
|
|
1425
1514
|
confidence: moderate
|
|
1426
1515
|
type: keyword
|
|
1427
1516
|
values:
|
|
1428
|
-
-
|
|
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
|
-
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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):
|
|
@@ -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
|
-
|
|
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):
|
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
|
|