diff --git a/.ci/benchmark.txt b/.ci/benchmark.txt index fa5bd5997..fcf16e549 100644 --- a/.ci/benchmark.txt +++ b/.ci/benchmark.txt @@ -1,5 +1,5 @@ -META MD5 d51d1f5107d0906adfd81b9fd6467597 -DATA MD5 5e46a76147ee32073b0d587f80684f86 +META MD5 30ecf5f4796a36b60ca12cb702152bab +DATA MD5 9ac09dae7d8873d53e1fbf18da2d71c4 DATA: 16329853 interested lines. MARKUP: 59549 items FileType FileNumber ValidLines Positives Negatives Templates --------------- ------------ ------------ ----------- ----------- ----------- @@ -55,7 +55,7 @@ FileType FileNumber ValidLines Positives Negatives Templat .erb 13 323 26 .erl 4 96 7 .ex 25 4968 5 98 5 -.example 17 1838 69 38 51 +.example 17 1838 74 36 51 .exs 24 4842 8 187 4 .ext 5 211 1 4 2 .fsproj 1 75 1 2 @@ -222,8 +222,8 @@ FileType FileNumber ValidLines Positives Negatives Templat .yml 418 36057 522 910 376 .zsh 6 872 12 .zsh-theme 1 97 1 -TOTAL: 10003 16329853 11851 46611 5084 -credsweeper result_cnt : 11610, lost_cnt : 0, true_cnt : 11346, false_cnt : 264 +TOTAL: 10003 16329853 11856 46609 5084 +credsweeper result_cnt : 11613, lost_cnt : 0, true_cnt : 11349, false_cnt : 264 Rules Positives Negatives Templates Reported TP FP TN FN FPR FNR ACC PRC RCL F1 ------------------------------ ----------- ----------- ----------- ---------- ----- ---- ----- ---- -------- -------- -------- -------- -------- -------- API 130 3166 188 125 123 2 3352 7 0.000596 0.053846 0.997417 0.984000 0.946154 0.964706 @@ -236,7 +236,7 @@ Azure Access Token 19 0 0 1 BASE64 Private Key 12 4 0 12 12 0 4 0 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 BASE64 encoded PEM Private Key 7 0 0 5 5 0 0 2 0.285714 0.714286 1.000000 0.714286 0.833333 Bitbucket Client ID 19 53 0 75 19 53 0 0 1.000000 0.000000 0.263889 0.263889 1.000000 0.417582 -Bitbucket Client Secret 27 66 1 97 27 67 0 0 1.000000 0.000000 0.287234 0.287234 1.000000 0.446281 +Bitbucket Client Secret 28 66 1 98 28 67 0 0 1.000000 0.000000 0.294737 0.294737 1.000000 0.455285 CMD ConvertTo-SecureString 13 4 0 13 13 0 4 0 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 CMD Password 21 128 6 18 18 0 134 3 0.000000 0.142857 0.980645 1.000000 0.857143 0.923077 CMD Secret 1 1 0 1 1 0 1 0 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 @@ -257,7 +257,7 @@ Grafana Provisioned API Key 22 1 0 JSON Web Token 170 61 0 131 131 0 61 39 0.000000 0.229412 0.831169 1.000000 0.770588 0.870432 Jira / Confluence PAT token 0 4 0 0 0 4 0 0.000000 1.000000 Jira 2FA 15 6 1 12 12 0 7 3 0.000000 0.200000 0.863636 1.000000 0.800000 0.888889 -Key 3909 15717 485 3944 3893 51 16151 16 0.003148 0.004093 0.996668 0.987069 0.995907 0.991468 +Key 3911 15715 485 3944 3893 51 16149 18 0.003148 0.004602 0.996569 0.987069 0.995398 0.991216 Nonce 93 49 0 91 90 1 48 3 0.020408 0.032258 0.971831 0.989011 0.967742 0.978261 Other 9 7447 5 0 0 7452 9 0.000000 1.000000 0.998794 0.000000 PEM Private Key 1019 1483 0 1023 1019 4 1479 0 0.002697 0.000000 0.998401 0.996090 1.000000 0.998041 @@ -266,9 +266,10 @@ Salt 47 76 1 4 Secret 1297 1576 802 1288 1283 5 2373 14 0.002103 0.010794 0.994830 0.996118 0.989206 0.992650 Seed 1 6 0 0 0 6 1 0.000000 1.000000 0.857143 0.000000 Slack Token 4 1 0 4 4 0 1 0 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 +Stripe Credentials 2 0 0 2 2 0 0 0 0.000000 1.000000 1.000000 1.000000 1.000000 Tencent WeChat API App ID 6 0 0 6 6 0 0 0 0.000000 1.000000 1.000000 1.000000 1.000000 Token 644 4170 454 617 615 2 4622 29 0.000433 0.045031 0.994115 0.996759 0.954969 0.975416 Twilio Credentials 30 39 0 30 30 0 39 0 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 URL Credentials 210 157 215 205 205 0 372 5 0.000000 0.023810 0.991409 1.000000 0.976190 0.987952 UUID 1075 265 0 1074 1073 1 264 2 0.003774 0.001860 0.997761 0.999069 0.998140 0.998604 - 11851 46611 5084 11623 11346 264 46347 505 0.005664 0.042612 0.986846 0.977261 0.957388 0.967222 + 11856 46609 5084 11626 11349 264 46345 507 0.005664 0.042763 0.986813 0.977267 0.957237 0.967148 diff --git a/credsweeper/__init__.py b/credsweeper/__init__.py index 7894b61ee..c03923bf5 100644 --- a/credsweeper/__init__.py +++ b/credsweeper/__init__.py @@ -4,10 +4,8 @@ DataContentProvider, \ TextContentProvider from credsweeper.ml_model.ml_validator import MlValidator -from credsweeper.validations.apply_validation import ApplyValidation __all__ = [ - 'ApplyValidation', # 'ByteContentProvider', # 'ContentProvider', # 'CredSweeper', # diff --git a/credsweeper/__main__.py b/credsweeper/__main__.py index b607a40a5..c15c7d36e 100644 --- a/credsweeper/__main__.py +++ b/credsweeper/__main__.py @@ -196,11 +196,6 @@ def get_arguments() -> Namespace: dest="ml_providers", required=False, metavar="STR") - parser.add_argument("--api_validation", - help="add credential api validation option to credsweeper pipeline. " - "External API is used to reduce FP for some rule types.", - dest="api_validation", - action="store_true") parser.add_argument("--jobs", "-j", help="number of parallel processes to use (default: 1)", @@ -297,7 +292,6 @@ def scan(args: Namespace, content_provider: AbstractProvider, json_filename: Opt credsweeper = CredSweeper(rule_path=args.rule_path, config_path=args.config_path, - api_validation=args.api_validation, json_filename=json_filename, xlsx_filename=xlsx_filename, color=args.color, diff --git a/credsweeper/app.py b/credsweeper/app.py index dfa8f3782..556fc12c4 100644 --- a/credsweeper/app.py +++ b/credsweeper/app.py @@ -20,7 +20,6 @@ from credsweeper.file_handler.text_content_provider import TextContentProvider from credsweeper.scanner import Scanner from credsweeper.utils import Util -from credsweeper.validations.apply_validation import ApplyValidation logger = logging.getLogger(__name__) @@ -40,7 +39,6 @@ class CredSweeper: def __init__(self, rule_path: Union[None, str, Path] = None, config_path: Optional[str] = None, - api_validation: bool = False, json_filename: Union[None, str, Path] = None, xlsx_filename: Union[None, str, Path] = None, color: bool = False, @@ -69,8 +67,6 @@ def __init__(self, validation was the grained candidate model on machine learning config_path: optional str variable, path of CredSweeper config file default built-in config is used if None - api_validation: optional boolean variable, specifying the need of - parallel API validation json_filename: optional string variable, path to save result to json xlsx_filename: optional string variable, path to save result @@ -100,7 +96,6 @@ def __init__(self, raise RuntimeError(f"Severity level provided: {severity}" f" -- must be one of: {' | '.join([i.value for i in Severity])}") config_dict = self._get_config_dict(config_path=config_path, - api_validation=api_validation, use_filters=use_filters, find_by_ext=find_by_ext, depth=depth, @@ -141,7 +136,6 @@ def _get_config_path(config_path: Optional[str]) -> Path: def _get_config_dict( self, # config_path: Optional[str], # - api_validation: bool, # use_filters: bool, # find_by_ext: bool, # depth: int, # @@ -151,8 +145,6 @@ def _get_config_dict( exclude_lines: Optional[List[str]], # exclude_values: Optional[List[str]]) -> Dict[str, Any]: config_dict = Util.json_load(self._get_config_path(config_path)) - config_dict["validation"] = {} - config_dict["validation"]["api_validation"] = api_validation config_dict["use_filters"] = use_filters config_dict["find_by_ext"] = find_by_ext config_dict["size_limit"] = size_limit @@ -272,14 +264,7 @@ def scan(self, content_providers: Sequence[Union[DiffContentProvider, TextConten def __single_job_scan(self, content_providers: Sequence[Union[DiffContentProvider, TextContentProvider]]) -> None: """Performs scan in main thread""" all_cred = self.files_scan(content_providers) - if self.config.api_validation: - api_validation = ApplyValidation() - for cred in all_cred: - logger.info("Run API Validation") - cred.api_validation = api_validation.validate(cred) - self.credential_manager.add_credential(cred) - else: - self.credential_manager.set_credentials(all_cred) + self.credential_manager.set_credentials(all_cred) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @@ -293,8 +278,6 @@ def __multi_jobs_scan(self, content_providers: Sequence[Union[DiffContentProvide if "SILENCE" == self.__log_level: logging.addLevelName(60, "SILENCE") log_kwargs["level"] = self.__log_level - # providers_map: List[Sequence[Union[DiffContentProvider, TextContentProvider]]] = \ - # [content_providers[x::self.pool_count] for x in range(self.pool_count)] with multiprocessing.get_context("spawn").Pool(processes=self.pool_count, initializer=self.pool_initializer, initargs=(log_kwargs, )) as pool: @@ -303,10 +286,6 @@ def __multi_jobs_scan(self, content_providers: Sequence[Union[DiffContentProvide for x in range(self.pool_count))): for cred in scan_results: self.credential_manager.add_credential(cred) - if self.config.api_validation: - logger.info("Run API Validation") - api_validation = ApplyValidation() - api_validation.validate_credentials(pool, self.credential_manager) except KeyboardInterrupt: pool.terminate() pool.join() diff --git a/credsweeper/config/config.py b/credsweeper/config/config.py index f53d9b794..f2768d11d 100644 --- a/credsweeper/config/config.py +++ b/credsweeper/config/config.py @@ -29,7 +29,6 @@ def __init__(self, config: Dict[str, Any]) -> None: self.check_for_literals: bool = config["check_for_literals"] self.not_allowed_path_pattern = re.compile(f"{Util.get_regex_combine_or(self.NOT_ALLOWED_PATH)}", flags=re.IGNORECASE) - self.api_validation: bool = config["validation"]["api_validation"] self.use_filters: bool = config["use_filters"] self.line_data_output: List[str] = config["line_data_output"] self.candidate_output: List[str] = config["candidate_output"] diff --git a/credsweeper/credentials/candidate.py b/credsweeper/credentials/candidate.py index c8d887a6d..e219daee6 100644 --- a/credsweeper/credentials/candidate.py +++ b/credsweeper/credentials/candidate.py @@ -6,7 +6,6 @@ from credsweeper.common.constants import KeyValidationOption, Severity, Confidence from credsweeper.config import Config from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation class Candidate: @@ -31,7 +30,6 @@ def __init__(self, rule_name: str, severity: Severity, config: Optional[Config] = None, - validations: List[Validation] = None, use_ml: bool = False, confidence: Confidence = Confidence.MODERATE) -> None: self.line_data_list = line_data_list @@ -39,11 +37,8 @@ def __init__(self, self.rule_name = rule_name self.severity = severity self.config = config - self.validations: List[Validation] = validations if validations is not None else [] self.use_ml = use_ml self.confidence = confidence - - self.api_validation = KeyValidationOption.NOT_AVAILABLE self.ml_validation = KeyValidationOption.NOT_AVAILABLE self.ml_probability: Optional[float] = None @@ -52,7 +47,6 @@ def compare(self, other: 'Candidate') -> bool: if self.rule_name == other.rule_name \ and self.severity == other.severity \ and self.confidence == other.confidence \ - and self.api_validation == other.api_validation \ and self.use_ml == other.use_ml \ and self.ml_validation == other.ml_validation \ and self.ml_probability == other.ml_probability \ @@ -79,22 +73,12 @@ def _encode(value: Any) -> Any: else: return value - def is_api_validation_available(self) -> bool: - """Check if current credential candidate can be validated with external API. - - Return: - True if any validation available, False otherwise - - """ - return len(self.validations) > 0 - def to_str(self, subtext: bool = False, hashed: bool = False) -> str: """Represent candidate with subtext or|and hashed values""" return f"rule: {self.rule_name}" \ f" | severity: {self.severity.value}" \ f" | confidence: {self.confidence.value}" \ f" | line_data_list: [{', '.join([x.to_str(subtext, hashed) for x in self.line_data_list])}]" \ - f" | api_validation: {self.api_validation.name}" \ f" | ml_validation: {self.ml_validation.name}" def __str__(self): @@ -111,7 +95,6 @@ def to_json(self, hashed: bool, subtext: bool) -> Dict: """ full_output = { - "api_validation": self.api_validation.name, "ml_validation": self.ml_validation.name, "patterns": [pattern.pattern for pattern in self.patterns], "ml_probability": self.ml_probability, diff --git a/credsweeper/rules/config.yaml b/credsweeper/rules/config.yaml index 9a905d602..6baf16d67 100644 --- a/credsweeper/rules/config.yaml +++ b/credsweeper/rules/config.yaml @@ -256,8 +256,6 @@ - (?i)((git)[0-9A-Za-z_-]{0,80}(token|key|api)[0-9A-Za-z_-]{0,80}(\s)*(=|:|:=)(\s)*(["']?)(?P[0-9a-z]{40})(["']?)) filter_type: GeneralPattern use_ml: true - validations: - - GithubTokenValidation required_substrings: - git min_line_len: 47 @@ -272,8 +270,6 @@ values: - (?:(?AIza[0-9A-Za-z_-]{35}) filter_type: GeneralPattern - validations: - - GoogleApiKeyValidation required_substrings: - AIza min_line_len: 39 @@ -289,8 +285,6 @@ - (?P[0-9]{3,80}-[0-9a-z_]{32}\.apps\.googleusercontent\.com) - \b(?PGOCSPX-[0-9A-Za-z_-]{28}|((?P[A-Z])|(?P[a-z])|(?P[0-9_-])){24,80}(?(a)(?(b)(?(c)\b|(?!x)x)|(?!x)x)|(?!x)x)) filter_type: GeneralPattern - validations: - - GoogleMultiValidation required_substrings: - .apps.googleusercontent.com min_line_len: 40 @@ -376,8 +370,6 @@ values: - (?:(?[0-9A-Za-z_-]{32}-us[0-9]{1,2})(?![0-9A-Za-z_-]) filter_type: GeneralPattern - validations: - - MailChimpKeyValidation required_substrings: - -us min_line_len: 35 @@ -534,8 +526,6 @@ values: - (?:(?xox[aboprst]\-[0-9A-Za-z-]{10,250})(?![0-9A-Za-z_-]) filter_type: GeneralPattern - validations: - - SlackTokenValidation required_substrings: - xox min_line_len: 15 @@ -557,31 +547,17 @@ - code - doc -- name: Stripe Standard API Key +- name: Stripe Credentials severity: high confidence: strong type: pattern values: - - (?Psk_live_[0-9A-Za-z_-]{24})(?![0-9A-Za-z_-]) + - (?P(whsec|[prs]k_(test|live))_[0-9A-Za-z]{24,160}) filter_type: GeneralPattern - validations: - - StripeApiKeyValidation required_substrings: - - sk_live_ - min_line_len: 32 - target: - - code - - doc - -- name: Stripe Restricted API Key - severity: high - confidence: strong - type: pattern - values: - - (?Prk_live_[0-9A-Za-z_-]{24})(?![0-9A-Za-z_-]) - filter_type: GeneralPattern - required_substrings: - - rk_live_ + - k_live_ + - k_test_ + - whsec_ min_line_len: 32 target: - code @@ -596,8 +572,6 @@ filter_type: - ValuePatternCheck - ValueBase64PartCheck - validations: - - SquareAccessTokenValidation required_substrings: - EAAA min_line_len: 64 @@ -605,15 +579,13 @@ - code - doc -- name: Square Client ID +- name: Square Credentials severity: medium confidence: strong type: pattern values: - - (?:(?sq0[a-z]{3}-[0-9A-Za-z_-]{22})(?![0-9A-Za-z_-]) + - (?:(?sq0[a-z]{3}-[0-9A-Za-z_-]{22}([0-9A-Za-z_-]{21})?)(?![0-9A-Za-z_-]) filter_type: GeneralPattern - validations: - - SquareClientIdValidation required_substrings: - sq0 min_line_len: 29 @@ -621,20 +593,6 @@ - code - doc -- name: Square OAuth Secret - severity: high - confidence: strong - type: pattern - values: - - (?:(?sq0csp-[0-9A-Za-z_-]{43})(?![0-9A-Za-z_-]) - filter_type: GeneralPattern - required_substrings: - - sq0csp - min_line_len: 50 - target: - - code - - doc - - name: Token severity: medium confidence: moderate @@ -821,8 +779,6 @@ - (?:(?gh[pousr]_[0-9A-Za-z_-]{36,255}) filter_type: - ValueGitHubCheck - validations: - - GithubTokenValidation required_substrings: - ghp_ - gho_ @@ -841,8 +797,6 @@ values: - (?:(?github_pat_[0-9A-Za-z_]{80,255}) filter_type: GeneralPattern - validations: - - GithubTokenValidation required_substrings: - github_pat_ min_line_len: 90 diff --git a/credsweeper/rules/rule.py b/credsweeper/rules/rule.py index 539224dd0..549ef6301 100644 --- a/credsweeper/rules/rule.py +++ b/credsweeper/rules/rule.py @@ -4,13 +4,12 @@ from functools import cached_property from typing import Dict, List, Optional, Union, Set -from credsweeper import validations, filters +from credsweeper import filters from credsweeper.common.constants import RuleType, Severity, MAX_LINE_LENGTH, Confidence from credsweeper.common.keyword_pattern import KeywordPattern from credsweeper.config import Config from credsweeper.filters import Filter, group from credsweeper.filters.group import Group -from credsweeper.validations import Validation logger = logging.getLogger(__name__) @@ -73,7 +72,6 @@ def __init__(self, config: Config, rule_dict: Dict) -> None: # auxiliary fields self.__filters = self._init_filters(rule_dict.get(Rule.FILTER_TYPE, [])) self.__use_ml = bool(rule_dict.get(Rule.USE_ML)) - self.__validations = self._init_validations(rule_dict.get(Rule.VALIDATIONS)) self.__required_substrings = set(i.strip().lower() for i in rule_dict.get(Rule.REQUIRED_SUBSTRINGS, [])) self.__has_required_substrings = bool(self.__required_substrings) required_regex = rule_dict.get(Rule.REQUIRED_REGEX) @@ -198,40 +196,6 @@ def use_ml(self) -> bool: """use_ml getter""" return self.__use_ml - @cached_property - def validations(self) -> List[Validation]: - """validations getter""" - return self.__validations - - def _init_validations(self, validation_names: Union[None, str, List[str]]) -> List[Validation]: - """Set api validations to the current rule. - - All string in `validation_names` should be class names from `credsweeper.validations` - - Args: - validation_names: validation names - - """ - if not validation_names: - # empty string check to avoid exceptions for getattr - return [] - elif isinstance(validation_names, str): - # more convenience way in case of single validator - only one line in YAML - if validation_template := getattr(validations, validation_names, None): - return [validation_template] - elif isinstance(validation_names, list): - _validations: List[Validation] = [] - for vn in validation_names: - if validation_template := getattr(validations, vn, None): - _validations.append(validation_template()) - else: - break - else: - return _validations - raise ValueError(f"Malformed rule '{self.__rule_name}'." - f" field '{Rule.VALIDATIONS}' has invalid value" - f" '{validation_names}'") - @staticmethod def _assert_rule_mandatory_fields(rule_template: Dict) -> None: """Assert that rule_template have all required fields. diff --git a/credsweeper/scanner/scan_type/scan_type.py b/credsweeper/scanner/scan_type/scan_type.py index ffcec526c..4d9e46542 100644 --- a/credsweeper/scanner/scan_type/scan_type.py +++ b/credsweeper/scanner/scan_type/scan_type.py @@ -171,9 +171,13 @@ def _get_candidates(cls, config: Config, rule: Rule, target: AnalysisTarget) -> for line_data in line_data_list: if config.exclude_values and line_data.value.strip() in config.exclude_values: continue - - candidate = Candidate([line_data], rule.patterns, rule.rule_name, rule.severity, config, - rule.validations, rule.use_ml, rule.confidence) + candidate = Candidate(line_data_list=[line_data], + patterns=rule.patterns, + rule_name=rule.rule_name, + severity=rule.severity, + config=config, + use_ml=rule.use_ml, + confidence=rule.confidence) # single pattern with multiple values means all the patterns must matched in target if 1 < len(rule.patterns) and rule.rule_type in (RuleType.PATTERN, RuleType.KEYWORD): # additional check whether all patterns match diff --git a/credsweeper/secret/config.json b/credsweeper/secret/config.json index f0c4fa3b4..9572020da 100644 --- a/credsweeper/secret/config.json +++ b/credsweeper/secret/config.json @@ -164,7 +164,6 @@ "rule", "severity", "confidence", - "api_validation", "ml_validation", "ml_probability", "line_data_list" diff --git a/credsweeper/validations/__init__.py b/credsweeper/validations/__init__.py deleted file mode 100644 index 6901c1e27..000000000 --- a/credsweeper/validations/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from credsweeper.validations.github_token_validation import GithubTokenValidation -from credsweeper.validations.google_api_key_validation import GoogleApiKeyValidation -from credsweeper.validations.google_multi_validation import GoogleMultiValidation -from credsweeper.validations.mailchimp_key_validation import MailChimpKeyValidation -from credsweeper.validations.slack_token_validation import SlackTokenValidation -from credsweeper.validations.square_access_token_validation import SquareAccessTokenValidation -from credsweeper.validations.square_client_id_validation import SquareClientIdValidation -from credsweeper.validations.stripe_api_key_validation import StripeApiKeyValidation -from credsweeper.validations.validation import Validation diff --git a/credsweeper/validations/apply_validation.py b/credsweeper/validations/apply_validation.py deleted file mode 100644 index 550913a5e..000000000 --- a/credsweeper/validations/apply_validation.py +++ /dev/null @@ -1,54 +0,0 @@ -import logging -from multiprocessing.pool import Pool -from typing import List - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import Candidate, CredentialManager - -logger = logging.getLogger(__name__) - - -class ApplyValidation: - """Class that allow parallel API validation using already declared pool.""" - - def validate_credentials(self, pool: Pool, credential_manager: CredentialManager) -> None: - """Parallel validation method""" - old_cred: List[Candidate] = credential_manager.get_credentials() - new_cred = [] - validations: List[KeyValidationOption] = pool.map(self.validate, old_cred) - for cred, validation in zip(old_cred, validations): - cred.api_validation = validation - new_cred.append(cred) - - credential_manager.set_credentials(new_cred) - - def validate(self, cred: Candidate) -> KeyValidationOption: - """Iterate over all `validations` in current cred. - - If any validation results in VALIDATED_KEY - final result is VALIDATED_KEY - If no VALIDATED_KEY, but at least one INVALID_KEY - final result is INVALID_KEY - UNDECIDED otherwise - - Args: - cred: one candidate to validation - """ - validation_option = KeyValidationOption.UNDECIDED - - if not cred.is_api_validation_available: - logger.debug("No validation with external API available for current credential candidate: %s", - cred.line_data_list[0].line) - return KeyValidationOption.NOT_AVAILABLE - - for validation in cred.validations: - current_api_validation: KeyValidationOption = validation.verify(cred.line_data_list) - if current_api_validation is KeyValidationOption.VALIDATED_KEY: - logger.debug("Valid validation by: %s for line: %s", validation.__class__.__name__, - cred.line_data_list[0].line) - validation_option = current_api_validation - break - if current_api_validation is KeyValidationOption.INVALID_KEY: - logger.debug("Invalid validation by: %s for line: %s", validation.__class__.__name__, - cred.line_data_list[0].line) - validation_option = current_api_validation - - return validation_option diff --git a/credsweeper/validations/github_token_validation.py b/credsweeper/validations/github_token_validation.py deleted file mode 100644 index 74a59f5c6..000000000 --- a/credsweeper/validations/github_token_validation.py +++ /dev/null @@ -1,51 +0,0 @@ -import logging -from typing import List - -import requests - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class GithubTokenValidation(Validation): - """Validation of GitHub Access Token. - - Personal access token validation: - https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token - """ - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify GitHub Access Token. - - Based on GitHub REST api documentation: - https://docs.github.com/en/rest/overview/resources-in-the-rest-api - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - try: - r = requests.get( - "https://api.github.com", - headers={"Authorization": f"token {line_data_list[0].value}"}, - ) - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - - # According to documentation, authentication with wrong credentials return 401 - # After detecting several requests with invalid credentials within a short period, - # the API will temporarily reject all auth attempts with 403 - if r.status_code == 401: - return KeyValidationOption.INVALID_KEY - if r.status_code == 200: - return KeyValidationOption.VALIDATED_KEY - return KeyValidationOption.UNDECIDED diff --git a/credsweeper/validations/google_api_key_validation.py b/credsweeper/validations/google_api_key_validation.py deleted file mode 100644 index d9a64ae9f..000000000 --- a/credsweeper/validations/google_api_key_validation.py +++ /dev/null @@ -1,63 +0,0 @@ -import logging -from typing import List - -import requests - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class GoogleApiKeyValidation(Validation): - """Validation of Google API Key.""" - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify Google API Key of Google Maps Platform products. - - Based on Google Map Place Search API: - https://developers.google.com/places/web-service/search - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - try: - # Note that requests without "input" and "inputtype" URL arguments - # requests is invalid and will always be denied. But Google will still - # validate the "key", so we will know if it's real or not. - r = requests.get( - f"https://maps.googleapis.com/maps/api/place/findplacefromtext/json?key={line_data_list[0].value}") - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - - # Google sends 200 even in case of REQUEST_DENIED - if r.status_code == 200: - try: - data = r.json() - status = data.get("status") - - if status != "REQUEST_DENIED": - # VALIDATED if request is not denied - return KeyValidationOption.VALIDATED_KEY - else: - error_message = data.get("error_message") - # VALIDATED key is legit, but not authorized for Maps API - if error_message == "This API project is not authorized to use this API.": - return KeyValidationOption.VALIDATED_KEY - # Invalid if Google explicitly say so - if error_message == "The provided API key is invalid.": - return KeyValidationOption.INVALID_KEY - - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - - # Undecided otherwise - return KeyValidationOption.UNDECIDED diff --git a/credsweeper/validations/google_multi_validation.py b/credsweeper/validations/google_multi_validation.py deleted file mode 100644 index 8f4819391..000000000 --- a/credsweeper/validations/google_multi_validation.py +++ /dev/null @@ -1,54 +0,0 @@ -import logging -from typing import List - -from google_auth_oauthlib.flow import InstalledAppFlow -from oauthlib.oauth2.rfc6749.errors import InvalidGrantError - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class GoogleMultiValidation(Validation): - """Validation of Google Multi token.""" - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - r"""Verify Google Multi token. - - Multi token consisting of value with pattern - 'CLIENT_ID.apps.googleusercontent.com' and 'client_secret' - with regex 'AIza[0-9A-Za-z\\-_]{35}' - - Based on Google Ad Manager refresh token generator: - https://github.com/googleads/googleads-python-lib/blob/master/examples/ad_manager/authentication/generate_refresh_token.py - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY - - """ - client_config = { - "web": { - "client_id": line_data_list[0].value, - "client_secret": line_data_list[1].value, - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://accounts.google.com/o/oauth2/token" - } - } - - flow = InstalledAppFlow.from_client_config(client_config, scopes=["https://www.googleapis.com/auth/dfp"]) - try: - flow.fetch_token(code="0") # 0 is test value of code. - # Valid successfully. - return KeyValidationOption.VALIDATED_KEY - except InvalidGrantError: - # Valid if only code was wrong. - return KeyValidationOption.VALIDATED_KEY - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.INVALID_KEY diff --git a/credsweeper/validations/mailchimp_key_validation.py b/credsweeper/validations/mailchimp_key_validation.py deleted file mode 100644 index a4acc51ca..000000000 --- a/credsweeper/validations/mailchimp_key_validation.py +++ /dev/null @@ -1,57 +0,0 @@ -import logging -from typing import List - -import requests -from requests.auth import HTTPBasicAuth - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class MailChimpKeyValidation(Validation): - """Validation of MailChimp Key.""" - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify MailChimp Key - Authentication request to the MailChimp Marketing API. - - Based on official API tutorial - https://mailchimp.com/developer/marketing/guides/quick-start/ - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - # Sanity check. All MailChimp keys should have "-" character - if "-" not in line_data_list[0].value: - return KeyValidationOption.INVALID_KEY - - # Exact server name for the key is saved in the key itself, after "-" - server = line_data_list[0].value.split("-")[-1] - - try: - r = requests.get(f"https://{server}.api.mailchimp.com/3.0/ping", - auth=HTTPBasicAuth("user", line_data_list[0].value)) - except requests.exceptions.ConnectionError: - # In case if `server` is not real. requests.get will fail to - # connect to the non existing domain - return KeyValidationOption.INVALID_KEY - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - - # Validate if response is 401 Unauthorized. In case of other errors - # (like 500) it might be the case that server is down, so we cannot - # validate a key with certainty - if r.status_code == 401: - return KeyValidationOption.INVALID_KEY - if r.status_code == 200: - return KeyValidationOption.VALIDATED_KEY - return KeyValidationOption.UNDECIDED diff --git a/credsweeper/validations/slack_token_validation.py b/credsweeper/validations/slack_token_validation.py deleted file mode 100644 index a7f9e7953..000000000 --- a/credsweeper/validations/slack_token_validation.py +++ /dev/null @@ -1,53 +0,0 @@ -import logging -from typing import List - -import requests - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class SlackTokenValidation(Validation): - """Validation of Slack Token.""" - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify Slack Token - Authentication token bearing required scopes. - - Based on slack api documentation: - api.slack.com/methods/auth.test - api.slack.com/web - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - try: - headers = {"Content-type": "application/json", "Authorization": f"Bearer {line_data_list[0].value}"} - r = requests.post("https://slack.com/api/auth.test/", headers=headers) - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - - try: - data = r.json() - - if data.get("ok"): - return KeyValidationOption.VALIDATED_KEY - - error_message = data.get("error") - - if error_message == "invalid_auth": - return KeyValidationOption.INVALID_KEY - - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - - return KeyValidationOption.UNDECIDED diff --git a/credsweeper/validations/square_access_token_validation.py b/credsweeper/validations/square_access_token_validation.py deleted file mode 100644 index 944bcdf75..000000000 --- a/credsweeper/validations/square_access_token_validation.py +++ /dev/null @@ -1,53 +0,0 @@ -import logging -from typing import List - -import requests - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class SquareAccessTokenValidation(Validation): - """Validation of Square Access Token.""" - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify Square Access Token. - - Square Access Token - Scoped access token, Grants seller-scoped and - limited access to a Square account by asking an authenticated user - for explicit permissions. - - Based on Square API docs: - https://developer.squareup.com/docs/get-started - Note that if you want to test it yourself you need to select - Production API key, not the Sandbox one - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - try: - r = requests.post( - "https://connect.squareup.com/v2/payments", - headers={"Authorization": f"Bearer {line_data_list[0].value}"}, - ) - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - - # We actually expect successfully authenticated request to fail with 400 - # (Bad Request) as we provided no body for the POST. If authentication - # failed we will see 401, not 400 - if r.status_code in [200, 400]: - return KeyValidationOption.VALIDATED_KEY - if r.status_code == 401: - return KeyValidationOption.INVALID_KEY - return KeyValidationOption.UNDECIDED diff --git a/credsweeper/validations/square_client_id_validation.py b/credsweeper/validations/square_client_id_validation.py deleted file mode 100644 index 4e2708a68..000000000 --- a/credsweeper/validations/square_client_id_validation.py +++ /dev/null @@ -1,51 +0,0 @@ -import logging -from typing import List - -import requests - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData -from credsweeper.validations.validation import Validation - -logger = logging.getLogger(__name__) - - -class SquareClientIdValidation(Validation): - """Validation of Square Client ID.""" - - @classmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify Square Client ID. - - The Square issued ID for application, available from the developer dashboard. - - Based on Square OAuth API docs: - https://developer.squareup.com/reference/square/oauth-api/authorize - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - try: - r = requests.get(f"https://squareup.com/oauth2/authorize?client_id={line_data_list[0].value}", - allow_redirects=False) - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - - positive_start = "You are being KeyValidationOption: - """Verify Stripe API Key - API keys uses to authenticate requests. - - Based on Stripe Authentication documentation: - https://stripe.com/docs/api/authentication - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - try: - r = requests.get("https://api.stripe.com/v1/charges", auth=(line_data_list[0].value, "")) - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED - # According to documentation, authentication with wrong credentials return 401 - # If key provided is of restricted type, valid but doesn't have right permission, - # then 403 will be returned and a message with description - if r.status_code == 401: - return KeyValidationOption.INVALID_KEY - if r.status_code == 200: - return KeyValidationOption.VALIDATED_KEY - if r.status_code == 403: - begin = "The provided key 'rk_" - end = "Having the 'rak_charge_read' permission would allow this request to continue." - try: - if re.search(begin + ".*" + end + "$", r.json()["error"]["message"]): - return KeyValidationOption.VALIDATED_KEY - except Exception as exc: - logger.error(f"Cannot validate {line_data_list[0].value} token using API\n{exc}") - return KeyValidationOption.UNDECIDED diff --git a/credsweeper/validations/validation.py b/credsweeper/validations/validation.py deleted file mode 100644 index be050da67..000000000 --- a/credsweeper/validations/validation.py +++ /dev/null @@ -1,24 +0,0 @@ -from abc import ABC, abstractmethod -from typing import List - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials.line_data import LineData - - -class Validation(ABC): - """Abstract class for verify method""" - - @classmethod - @abstractmethod - def verify(cls, line_data_list: List[LineData]) -> KeyValidationOption: - """Verify line_data_list with external API. - - Args: - line_data_list: List of LineData objects, data in current credential candidate - - Return: - Enum object, returns the validation status for the passed value - can take values: VALIDATED_KEY, INVALID_KEY or UNDECIDED - - """ - raise NotImplementedError() diff --git a/docs/source/api.rst b/docs/source/api.rst index 43cdcd762..29519f58c 100644 --- a/docs/source/api.rst +++ b/docs/source/api.rst @@ -20,5 +20,4 @@ This part of the documentation covers all the interfaces of CredSweeper. credsweeper.scanner.rst credsweeper.scanner.scan_type.rst credsweeper.utils.rst - credsweeper.validations.rst diff --git a/docs/source/credsweeper.validations.rst b/docs/source/credsweeper.validations.rst deleted file mode 100644 index db7e89181..000000000 --- a/docs/source/credsweeper.validations.rst +++ /dev/null @@ -1,93 +0,0 @@ -credsweeper.validations package -=============================== - -Submodules ----------- - -credsweeper.validations.apply\_validation module ------------------------------------------------- - -.. automodule:: credsweeper.validations.apply_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.github\_token\_validation module --------------------------------------------------------- - -.. automodule:: credsweeper.validations.github_token_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.google\_api\_key\_validation module ------------------------------------------------------------ - -.. automodule:: credsweeper.validations.google_api_key_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.google\_multi\_validation module --------------------------------------------------------- - -.. automodule:: credsweeper.validations.google_multi_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.mailchimp\_key\_validation module ---------------------------------------------------------- - -.. automodule:: credsweeper.validations.mailchimp_key_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.slack\_token\_validation module -------------------------------------------------------- - -.. automodule:: credsweeper.validations.slack_token_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.square\_access\_token\_validation module ----------------------------------------------------------------- - -.. automodule:: credsweeper.validations.square_access_token_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.square\_client\_id\_validation module -------------------------------------------------------------- - -.. automodule:: credsweeper.validations.square_client_id_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.stripe\_api\_key\_validation module ------------------------------------------------------------ - -.. automodule:: credsweeper.validations.stripe_api_key_validation - :members: - :undoc-members: - :show-inheritance: - -credsweeper.validations.validation module ------------------------------------------ - -.. automodule:: credsweeper.validations.validation - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: credsweeper.validations - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/develop.rst b/docs/source/develop.rst index e6e9f1556..f91cc34e4 100644 --- a/docs/source/develop.rst +++ b/docs/source/develop.rst @@ -14,7 +14,7 @@ To run only tests independent from external api: .. code-block:: bash - python -m pytest -m "not api_validation_test" -s tests/ + python -m pytest -s tests/ Benchmark --------- diff --git a/docs/source/guide.rst b/docs/source/guide.rst index 62c41d7bf..76d40d52a 100644 --- a/docs/source/guide.rst +++ b/docs/source/guide.rst @@ -17,7 +17,7 @@ Get all argument list: [--rules PATH] [--severity SEVERITY] [--config PATH] [--log_config PATH] [--denylist PATH] [--find-by-ext] [--depth POSITIVE_INT] [--no-filters] [--doc] [--ml_threshold FLOAT_OR_STR] [--ml_batch_size POSITIVE_INT] [--ml_config PATH] [--ml_model PATH] [--ml_providers STR] - [--api_validation] [--jobs POSITIVE_INT] [--skip_ignored] [--save-json [PATH]] + [--jobs POSITIVE_INT] [--skip_ignored] [--save-json [PATH]] [--save-xlsx [PATH]] [--color] [--hashed] [--subtext] [--sort] [--log LOG_LEVEL] [--size_limit SIZE_LIMIT] [--banner] [--version] @@ -48,7 +48,6 @@ Get all argument list: --ml_config PATH use external config for ml model --ml_model PATH use external ml model --ml_providers STR comma separated list of providers for onnx (CPUExecutionProvider is used by default) - --api_validation add credential api validation option to credsweeper pipeline. External API is used to reduce FP for some rule types. --jobs POSITIVE_INT, -j POSITIVE_INT number of parallel processes to use (default: 1) --skip_ignored parse .gitignore files and skip credentials from ignored objects @@ -72,14 +71,6 @@ Get all argument list: Typical False Positives: `password = "template_password"` -.. note:: - You may also use `--api_validation` to reduce FP, but only for some rules: GitHub, Google API, Mailchimp, Slack, Square, Stripe. - `--api_validation` utilize external APIs to check if it can authenticate with a detected credential. - For example it will try to authenticate on Google Cloud if Google API Key is detected. - - However, use of `--api_validation` is not recommended at the moment as its influence on False Positive/False Negative alerts are not validated yet. - Moreover, it might result in a ddos related ban from corresponding APIs if number of requests is too high. - .. note:: CredSweeper has experimental option `--depth` to scan files when taking into account a knowledge about data formats: - supported containers (tar, zip, gzip, bzip2) @@ -106,7 +97,6 @@ To check JSON file run: [ { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99755, "rule": "Password", @@ -141,7 +131,7 @@ Get CLI output only: .. code-block:: ruby - rule: Password / severity: medium / line_data_list: [line : 'password = "cackle!"' / line_num : 1 / path : tests/samples/password / entropy_validation: False] / api_validation: NOT_AVAILABLE / ml_validation: VALIDATED_KEY + rule: Password / severity: medium / line_data_list: [line : 'password = "cackle!"' / line_num : 1 / path : tests/samples/password / entropy_validation: False] / ml_validation: VALIDATED_KEY Exclude outputs using CLI: @@ -202,7 +192,7 @@ Minimal example for scanning line list: .. code-block:: bash - rule: Password / severity: medium / line_data_list: [line: 'password='in_line_2'' / line_num: 2 / path: / value: 'in_line_2' / entropy_validation: False] / api_validation: NOT_AVAILABLE / ml_validation: NOT_AVAILABLE + rule: Password / severity: medium / line_data_list: [line: 'password='in_line_2'' / line_num: 2 / path: / value: 'in_line_2' / entropy_validation: False] / ml_validation: NOT_AVAILABLE Minimal example for scanning bytes: @@ -220,7 +210,7 @@ Minimal example for scanning bytes: .. code-block:: bash - rule: Password / severity: medium / line_data_list: [line: 'password='in_line_2'' / line_num: 2 / path: / value: 'in_line_2' / entropy_validation: False] / api_validation: NOT_AVAILABLE / ml_validation: NOT_AVAILABLE + rule: Password / severity: medium / line_data_list: [line: 'password='in_line_2'' / line_num: 2 / path: / value: 'in_line_2' / entropy_validation: False] / ml_validation: NOT_AVAILABLE Minimal example for the ML validation: @@ -249,7 +239,7 @@ Note that `"secret='template'"` is not reported due to failing check by the `MlV .. code-block:: bash - rule: Secret / severity: medium / line_data_list: [line: 'secret='fgELsRdFA'' / line_num: 2 / path: / value: 'fgELsRdFA' / entropy_validation: False] / api_validation: NOT_AVAILABLE / ml_validation: NOT_AVAILABLE + rule: Secret / severity: medium / line_data_list: [line: 'secret='fgELsRdFA'' / line_num: 2 / path: / value: 'fgELsRdFA' / entropy_validation: False] / ml_validation: NOT_AVAILABLE Configurations -------------- diff --git a/docs/source/overall_architecture.rst b/docs/source/overall_architecture.rst index 699739dba..a66db5769 100644 --- a/docs/source/overall_architecture.rst +++ b/docs/source/overall_architecture.rst @@ -88,7 +88,6 @@ Each Rule_ is dedicated to detect a specific type of credential, imported from ` - api filter_type: GeneralKeyword use_ml: true - validations: [] - name: AWS Client ID ... @@ -141,8 +140,6 @@ Each Rule_ is dedicated to detect a specific type of credential, imported from ` - The type of the Filter_ group you want to apply. Filter_ groups implemented are as follows: `GeneralKeyword `_, `GeneralPattern `_, `PasswordKeyword `_, and `UrlCredentials `_. - use_ml - The attribute to set whether to perform ML validation. If true, ML validation will be performed. -- validations - - The type of the validation you want to apply. Validations implemented are as follows: `GithubTokenValidation `_, `GoogleApiKeyValidation `_, `GoogleMultiValidation `_, `MailchimpKeyValidation `_, `SlackTokenValidation `_, `SquareAccessTokenValidation `_, `SquareClientIdValidation `_, and `StripeApiKeyValidation `_. Filter ------ diff --git a/fuzz/__main__.py b/fuzz/__main__.py index b205502fb..c6e56e0aa 100755 --- a/fuzz/__main__.py +++ b/fuzz/__main__.py @@ -19,26 +19,19 @@ import os import sys import warnings -from unittest.mock import patch, MagicMock +from unittest.mock import patch import atheris # # # In simple case interested lib(s) may be imported during 'with' # # # It runs quickly but not precisely # with atheris.instrument_imports(enable_loader_override=False): -import requests from bs4 import XMLParsedAsHTMLWarning -from google_auth_oauthlib.flow import InstalledAppFlow -from oauthlib.oauth2 import InvalidGrantError -from requests import Response from credsweeper.app import CredSweeper from credsweeper.common.constants import DiffRowType from credsweeper.file_handler.files_provider import FilesProvider from credsweeper.file_handler.patches_provider import PatchesProvider -from credsweeper.validations import GithubTokenValidation, GoogleApiKeyValidation, MailChimpKeyValidation, \ - StripeApiKeyValidation, SquareClientIdValidation, SlackTokenValidation, SquareAccessTokenValidation, \ - GoogleMultiValidation -from credsweeper.validations.apply_validation import ApplyValidation +from tests import NEGLIGIBLE_ML_THRESHOLD warnings.filterwarnings("ignore", category=XMLParsedAsHTMLWarning) @@ -47,52 +40,9 @@ logger = logging.getLogger(__name__) # Use depth=3 to deep scan in .zip and .gz files + find by extension feature -cred_sweeper = CredSweeper(find_by_ext=True, ml_threshold=0.0001) -api_validation = ApplyValidation() - -MOCK_RESPONSE_SIZE = 0x0100 # 256 bytes enough for mocking response -INPUT_DATA_SIZE = 0x1000 - MOCK_RESPONSE_SIZE # 4096 - 256 = 3840 - - -def mock_request(status_code: int, content: bytes, candidate, patch_object, path_name): - response = Response() - response._content = content - response.status_code = status_code - logger.debug("<<<<<<<< %d '%s'", response.status_code, content.decode(encoding='ascii', errors='ignore')) - with patch.object(patch_object, path_name, return_value=response): - api_validation.validate(candidate) - - -def mock_request_side_effect(side_effect, candidate, patch_object, path_name): - # generate common exception - logger.debug("<<<<<<<< Side_effect %s for %s", str(side_effect), path_name) - with patch.object(patch_object, path_name, side_effect=side_effect): - api_validation.validate(candidate) - - -def mock_flow(behaviour_code: int, candidate): - if 0 == behaviour_code: - # generate common exception - logger.debug(f"<<<<<<<< Exception('fuzz flow Exception')") - with patch.object(InstalledAppFlow, InstalledAppFlow.from_client_config.__name__) as mock: - flow = MagicMock() - flow.fetch_token.side_effect = Exception('fuzz flow Exception') - mock.return_value = flow - api_validation.validate(candidate) - elif 1 == behaviour_code: - logger.debug(f"<<<<<<<< InvalidGrantError('fuzz InvalidGrantError')") - with patch.object(InstalledAppFlow, InstalledAppFlow.from_client_config.__name__) as mock: - flow = MagicMock() - flow.fetch_token.side_effect = InvalidGrantError('fuzz InvalidGrantError') - mock.return_value = flow - api_validation.validate(candidate) - else: - logger.debug(f"<<<<<<<< flow.fetch_token.return_value = None") - with patch.object(InstalledAppFlow, InstalledAppFlow.from_client_config.__name__) as mock: - flow = MagicMock() - flow.fetch_token.return_value = None - mock.return_value = flow - api_validation.validate(candidate) +cred_sweeper = CredSweeper(find_by_ext=True, ml_threshold=NEGLIGIBLE_ML_THRESHOLD) + +INPUT_DATA_SIZE = 0x1000 def fuzz_credsweeper_scan(data: bytes): @@ -145,39 +95,7 @@ def fuzz_credsweeper_scan(data: bytes): cred_sweeper.run(text_provider) candidates.extend(cred_sweeper.credential_manager.get_credentials()) - # API validation - content = b'' - # obtain data for mocking validation if a seed is not exhausted - if INPUT_DATA_SIZE < len(data): - # offset:0x0800 - content = fdp.ConsumeBytes(MOCK_RESPONSE_SIZE) - # validate candidates with default exception for candidate in candidates: - for validation in candidate.validations: - # mocking GET - if validation.__class__.__name__ in [ # - GithubTokenValidation.__name__, # - GoogleApiKeyValidation.__name__, # - MailChimpKeyValidation.__name__, # - SquareClientIdValidation.__name__, # - StripeApiKeyValidation.__name__, # - ]: - for side_effect in [Exception(f"common exception"), requests.exceptions.ConnectionError]: - mock_request_side_effect(side_effect, candidate, requests, requests.get.__name__) - for status_code in [0, 200, 400, 401, 403, 500, 999]: - mock_request(status_code, content, candidate, requests, requests.get.__name__) - # mocking POST - elif validation.__class__.__name__ in [ # - SquareAccessTokenValidation.__name__, # - SlackTokenValidation.__name__, # - ]: - for side_effect in [Exception(f"common exception"), requests.exceptions.ConnectionError]: - mock_request_side_effect(side_effect, candidate, requests, requests.post.__name__) - for status_code in [0, 200, 400, 401, 403, 500, 999]: - mock_request(status_code, content, candidate, requests, requests.post.__name__) - elif validation.__class__.__name__ in [GoogleMultiValidation.__name__]: - for i in range(3): - mock_flow(i, candidate) candidate.to_dict_list(False, False) @@ -187,7 +105,7 @@ def main(): if os.getenv('DO_ATHERIS_INSTRUMENT'): atheris.instrument_all() atheris.Setup( # - sys.argv + ["-max_len=4096"], # -rss_limit_mb=6912 + sys.argv + [f"-max_len={INPUT_DATA_SIZE}"], # -rss_limit_mb=6912 fuzz_credsweeper_scan, # internal_libfuzzer=True, # enable_python_coverage=True) diff --git a/pyproject.toml b/pyproject.toml index 9898d0fcf..0cbe362c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,11 +10,9 @@ dependencies = [ "colorama", "cryptography", "GitPython", - "google_auth_oauthlib", "humanfriendly", "lxml", "numpy<2.0.0", - "oauthlib", "odfpy", "onnxruntime", "openpyxl", @@ -27,7 +25,6 @@ dependencies = [ "python-docx", "python-pptx", "PyYAML", - "requests", "whatthepatch", ] requires-python = ">=3.8" diff --git a/requirements.txt b/requirements.txt index 379b364f8..d165d8089 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,20 +9,25 @@ hatchling==1.26.3 base58==2.1.1 beautifulsoup4==4.12.3 colorama==0.4.6 -cryptography==43.0.3 +cryptography==44.0.0 GitPython==3.1.43 -google-auth-oauthlib==1.2.1 humanfriendly==10.0 lxml==5.3.0 numpy==1.24.4; python_version < '3.10' numpy==1.26.4; python_version >= '3.10' -oauthlib==3.2.2 odfpy==1.4.1 -onnxruntime==1.19.2 -# ^ ML requirements + +# onnxruntime - ML engine +onnxruntime==1.19.2; python_version < '3.10' +onnxruntime==1.20.1; python_version >= '3.10' + +# openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files openpyxl==3.1.5 -pandas==2.0.3 -# ^ the version supports by python 3.8 + +# pandas - ML requirement and excel data reading +pandas==2.0.3; python_version < '3.9' +pandas==2.2.3; python_version >= '3.9' + password-strength==0.0.3.post2 pdfminer.six==20240706 pybase62==1.0.0 @@ -31,8 +36,8 @@ python-dateutil==2.9.0.post0 python-docx==1.1.2 python-pptx==1.0.2 PyYAML==6.0.2 -requests==2.32.3 -whatthepatch==1.0.6 +whatthepatch==1.0.6; python_version < '3.9' +whatthepatch==1.0.7; python_version >= '3.9' # Auxiliary # Tests and maintenance packages @@ -48,8 +53,6 @@ pytest-random-order types-beautifulsoup4 types-colorama types-PyYAML -types-requests -types-oauthlib types-python-dateutil types-pyjks types-regex diff --git a/tests/__init__.py b/tests/__init__.py index 86a11203f..4f1fde9c2 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,13 +1,13 @@ from pathlib import Path # total number of files in test samples -SAMPLES_FILES_COUNT = 139 + 1 +SAMPLES_FILES_COUNT = 139 # the lowest value of ML threshold is used to display possible lowest values NEGLIGIBLE_ML_THRESHOLD = 0.0001 # credentials count after scan with negligible ML threshold -SAMPLES_CRED_COUNT = 420 + 3 +SAMPLES_CRED_COUNT = 428 SAMPLES_CRED_LINE_COUNT = SAMPLES_CRED_COUNT + 19 # Number of filtered credentials with ML @@ -17,7 +17,7 @@ SAMPLES_POST_CRED_COUNT = SAMPLES_CRED_COUNT - ML_FILTERED # with option --doc -SAMPLES_IN_DOC = 463 + 2 +SAMPLES_IN_DOC = 470 # archived credentials that are not found without --depth SAMPLES_IN_DEEP_1 = SAMPLES_POST_CRED_COUNT + 33 diff --git a/tests/conftest.py b/tests/conftest.py index 4f8da811b..0dbc60011 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -26,7 +26,7 @@ def file_path() -> str: @pytest.fixture def args() -> Namespace: file_name = SAMPLES_PATH / "password.gradle" - return Namespace(path=[file_name], api_validation="true", json_filename=None) + return Namespace(path=[file_name], json_filename=None) @pytest.fixture @@ -34,8 +34,6 @@ def config() -> Config: file_name = APP_PATH / "secret" / "config.json" config_dict = Util.json_load(file_name) - config_dict["validation"] = {} - config_dict["validation"]["api_validation"] = False config_dict["use_filters"] = True config_dict["find_by_ext"] = False config_dict["exclude"]["containers"] = [".gz", ".zip"] diff --git a/tests/data/depth_3.json b/tests/data/depth_3.json index c987c410c..ab5b0d0e4 100644 --- a/tests/data/depth_3.json +++ b/tests/data/depth_3.json @@ -1,6 +1,5 @@ [ { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 encoded PEM Private Key", @@ -27,7 +26,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -122,7 +120,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "API", @@ -149,7 +146,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian Old PAT token", @@ -176,7 +172,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -203,7 +198,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -230,7 +224,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -257,7 +250,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -284,7 +276,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.813, "rule": "Auth", @@ -311,7 +302,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Auth", @@ -338,7 +328,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -365,7 +354,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -392,7 +380,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -419,7 +406,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -446,7 +432,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -473,7 +458,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -517,7 +501,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -544,7 +527,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -588,7 +570,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -615,7 +596,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -659,7 +639,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.949, "rule": "Key", @@ -686,7 +665,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -730,7 +708,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Key", @@ -757,7 +734,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Secret", @@ -784,7 +760,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -811,7 +786,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -838,7 +812,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -865,7 +838,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.929, "rule": "Key", @@ -892,7 +864,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -919,7 +890,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -963,7 +933,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -990,7 +959,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Key", @@ -1017,7 +985,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Secret", @@ -1044,7 +1011,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -1071,7 +1037,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS MWS Key", @@ -1098,7 +1063,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -1125,7 +1089,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -1152,7 +1115,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -1179,7 +1141,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -1206,7 +1167,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -1233,7 +1193,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -1260,7 +1219,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Secret Value", @@ -1287,7 +1245,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -1314,7 +1271,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket HTTP Access Token", @@ -1341,7 +1297,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket App Password", @@ -1368,7 +1323,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -1395,7 +1349,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -1422,7 +1375,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -1449,7 +1401,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -1476,7 +1427,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Repository Access Token", @@ -1503,7 +1453,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Certificate", @@ -1530,7 +1479,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dummy candidate", @@ -1557,7 +1505,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dummy candidate", @@ -1584,7 +1531,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dummy candidate", @@ -1611,7 +1557,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Password", @@ -1638,7 +1583,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.732, "rule": "CMD Password", @@ -1665,7 +1609,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "CMD Secret", @@ -1692,7 +1635,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "CMD Token", @@ -1719,7 +1661,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -1746,7 +1687,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "CMD ConvertTo-SecureString", @@ -1773,7 +1713,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD ConvertTo-SecureString", @@ -1800,7 +1739,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Credential", @@ -1827,7 +1765,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1854,7 +1791,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1881,7 +1817,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Discord Bot Token", @@ -1908,7 +1843,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.643, "rule": "Password", @@ -1935,7 +1869,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.73, "rule": "Password", @@ -1962,7 +1895,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.963, "rule": "Password", @@ -1989,7 +1921,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.753, "rule": "Password", @@ -2016,7 +1947,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.97, "rule": "Password", @@ -2043,7 +1973,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Password", @@ -2070,7 +1999,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -2097,7 +2025,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -2124,7 +2051,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.978, "rule": "Password", @@ -2151,7 +2077,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.98, "rule": "Password", @@ -2178,7 +2103,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -2205,7 +2129,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -2232,7 +2155,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Password", @@ -2259,7 +2181,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.972, "rule": "Password", @@ -2286,7 +2207,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.984, "rule": "Password", @@ -2313,7 +2233,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.971, "rule": "Password", @@ -2340,7 +2259,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -2367,7 +2285,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.828, "rule": "Password", @@ -2394,7 +2311,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.815, "rule": "Password", @@ -2421,7 +2337,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.972, "rule": "Password", @@ -2448,7 +2363,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "CMD Password", @@ -2475,7 +2389,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.828, "rule": "Password", @@ -2502,7 +2415,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.908, "rule": "Password", @@ -2529,7 +2441,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.774, "rule": "Password", @@ -2556,7 +2467,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -2583,7 +2493,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.8, "rule": "Password", @@ -2610,7 +2519,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.979, "rule": "Password", @@ -2637,7 +2545,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.952, "rule": "Password", @@ -2664,7 +2571,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -2691,7 +2597,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "CMD Password", @@ -2718,7 +2623,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -2745,7 +2649,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -2772,7 +2675,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.948, "rule": "Password", @@ -2799,7 +2701,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -2826,7 +2727,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.966, "rule": "Password", @@ -2853,7 +2753,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.942, "rule": "Password", @@ -2880,7 +2779,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.956, "rule": "Password", @@ -2907,7 +2805,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.975, "rule": "Password", @@ -2934,7 +2831,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.958, "rule": "Password", @@ -2961,7 +2857,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.845, "rule": "Password", @@ -2988,7 +2883,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.9, "rule": "Password", @@ -3015,7 +2909,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.802, "rule": "Password", @@ -3042,7 +2935,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.845, "rule": "Password", @@ -3069,7 +2961,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.958, "rule": "Password", @@ -3096,7 +2987,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -3123,7 +3013,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -3150,7 +3039,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3177,7 +3065,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.854, "rule": "Password", @@ -3204,7 +3091,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -3231,7 +3117,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Password", @@ -3258,7 +3143,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -3285,7 +3169,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Password", @@ -3312,7 +3195,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3339,7 +3221,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3366,7 +3247,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.859, "rule": "Password", @@ -3393,7 +3273,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.931, "rule": "Password", @@ -3420,7 +3299,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.794, "rule": "Password", @@ -3447,7 +3325,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.932, "rule": "Password", @@ -3474,7 +3351,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -3501,7 +3377,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3528,7 +3403,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3555,7 +3429,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.919, "rule": "Password", @@ -3582,7 +3455,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -3609,7 +3481,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -3636,7 +3507,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.945, "rule": "Password", @@ -3663,7 +3533,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.827, "rule": "Password", @@ -3690,7 +3559,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.851, "rule": "Password", @@ -3717,7 +3585,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.804, "rule": "Password", @@ -3744,7 +3611,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.76, "rule": "Password", @@ -3771,7 +3637,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.913, "rule": "Password", @@ -3798,7 +3663,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Password", @@ -3825,7 +3689,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.977, "rule": "Password", @@ -3852,7 +3715,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.841, "rule": "Password", @@ -3879,7 +3741,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.747, "rule": "Password", @@ -3906,7 +3767,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.935, "rule": "Password", @@ -3933,7 +3793,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.877, "rule": "Password", @@ -3960,7 +3819,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.926, "rule": "Password", @@ -3987,7 +3845,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.889, "rule": "Password", @@ -4014,7 +3871,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.754, "rule": "Password", @@ -4041,7 +3897,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.822, "rule": "Password", @@ -4068,7 +3923,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.971, "rule": "Password", @@ -4095,7 +3949,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -4122,7 +3975,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -4149,7 +4001,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.817, "rule": "CMD Password", @@ -4176,7 +4027,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -4203,7 +4053,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -4230,7 +4079,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.624, "rule": "Password", @@ -4257,7 +4105,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.896, "rule": "Password", @@ -4284,7 +4131,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.911, "rule": "Password", @@ -4311,7 +4157,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.953, "rule": "Password", @@ -4338,7 +4183,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.924, "rule": "Password", @@ -4365,7 +4209,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.991, "rule": "CMD Password", @@ -4392,7 +4235,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.954, "rule": "Password", @@ -4419,7 +4261,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.93, "rule": "Password", @@ -4446,7 +4287,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.918, "rule": "Password", @@ -4473,7 +4313,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -4500,7 +4339,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.936, "rule": "Password", @@ -4527,7 +4365,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -4554,7 +4391,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4581,7 +4417,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4608,7 +4443,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4635,7 +4469,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4662,7 +4495,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4689,7 +4521,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Token", @@ -4716,7 +4547,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4743,7 +4573,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4770,7 +4599,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Secret", @@ -4797,7 +4625,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4824,7 +4651,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4851,7 +4677,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4878,7 +4703,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4905,7 +4729,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "API", @@ -4932,7 +4755,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4959,7 +4781,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4986,7 +4807,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5013,7 +4833,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5040,7 +4859,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5067,7 +4885,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5094,7 +4911,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5121,7 +4937,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5148,7 +4963,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5175,7 +4989,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Auth", @@ -5202,7 +5015,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -5229,7 +5041,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5256,7 +5067,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.96, "rule": "Password", @@ -5283,7 +5093,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5310,7 +5119,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -5337,7 +5145,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5364,7 +5171,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5391,7 +5197,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5418,7 +5223,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.92, "rule": "Password", @@ -5445,7 +5249,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5472,7 +5275,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -5499,7 +5301,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.986, "rule": "Password", @@ -5526,7 +5327,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.792, "rule": "Password", @@ -5553,7 +5353,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5580,7 +5379,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.986, "rule": "Password", @@ -5607,7 +5405,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Password", @@ -5634,7 +5431,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5661,7 +5457,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5688,7 +5483,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5715,7 +5509,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Key", @@ -5742,7 +5535,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Secret", @@ -5769,7 +5561,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5796,7 +5587,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -5823,7 +5613,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -5850,7 +5639,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -5877,7 +5665,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5904,7 +5691,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5931,7 +5717,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5958,7 +5743,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -5985,7 +5769,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Password", @@ -6012,7 +5795,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6039,7 +5821,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6066,7 +5847,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6093,7 +5873,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6120,7 +5899,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6147,7 +5925,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.964, "rule": "Password", @@ -6174,7 +5951,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.926, "rule": "Password", @@ -6201,7 +5977,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -6228,7 +6003,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6255,7 +6029,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6282,7 +6055,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6309,7 +6081,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6336,7 +6107,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6363,7 +6133,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6390,7 +6159,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6417,7 +6185,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -6444,7 +6211,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6471,7 +6237,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6498,7 +6263,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6525,7 +6289,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6552,7 +6315,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -6579,7 +6341,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6606,7 +6367,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6633,7 +6393,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6660,7 +6419,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6687,7 +6445,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -6714,7 +6471,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6741,7 +6497,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6768,7 +6523,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox API secret (long term)", @@ -6795,7 +6549,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox App secret", @@ -6822,7 +6575,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox OAuth2 API Access Token", @@ -6849,7 +6601,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dynatrace API Token", @@ -6876,7 +6627,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.687, "rule": "Github Old Token", @@ -6903,7 +6653,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.687, "rule": "Token", @@ -6930,7 +6679,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -6957,7 +6705,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.965, "rule": "Token", @@ -6984,7 +6731,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook App Token", @@ -7011,7 +6757,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -7038,7 +6783,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -7065,7 +6809,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -7092,7 +6835,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Fine-granted Token", @@ -7119,7 +6861,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Github Old Token", @@ -7146,7 +6887,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -7173,7 +6913,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Incoming Email Token", @@ -7200,7 +6939,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Feed Token", @@ -7227,7 +6965,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7254,7 +6991,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7281,7 +7017,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7308,7 +7043,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7335,7 +7069,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7362,7 +7095,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7389,7 +7121,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7416,7 +7147,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7443,7 +7173,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7470,7 +7199,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7497,7 +7225,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7524,7 +7251,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7551,7 +7277,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7578,7 +7303,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7605,7 +7329,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google API Key", @@ -7632,7 +7355,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -7676,7 +7398,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -7720,7 +7441,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Secret", @@ -7747,7 +7467,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -7774,7 +7493,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Access Policy Token", @@ -7801,7 +7519,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -7828,7 +7545,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Service Account Token", @@ -7855,7 +7571,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -7882,7 +7597,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -7909,7 +7623,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Terraform Token", @@ -7936,7 +7649,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Vault Token", @@ -7963,7 +7675,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Heroku API Key", @@ -7990,7 +7701,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -8017,7 +7727,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -8044,7 +7753,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -8071,7 +7779,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Instagram Access Token", @@ -8098,7 +7805,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -8125,7 +7831,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -8152,7 +7857,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -8179,7 +7883,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira 2FA", @@ -8206,7 +7909,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -8233,7 +7935,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -8260,7 +7961,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -8287,7 +7987,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.963, "rule": "Key", @@ -8314,7 +8013,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Secret", @@ -8341,7 +8039,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Secret", @@ -8368,7 +8065,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Secret", @@ -8395,7 +8091,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Secret", @@ -8422,7 +8117,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Key", @@ -8449,7 +8143,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -8476,7 +8169,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "API", @@ -8503,7 +8195,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Key", @@ -8530,7 +8221,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailChimp API Key", @@ -8557,7 +8247,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailGun API Key", @@ -8584,7 +8273,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -8611,7 +8299,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -8655,7 +8342,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -8682,7 +8368,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -8709,7 +8394,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -8753,7 +8437,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -8780,7 +8463,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Key", @@ -8807,7 +8489,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Key", @@ -8834,7 +8515,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Nonce", @@ -8861,7 +8541,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -8888,7 +8567,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Key", @@ -8915,7 +8593,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -8942,7 +8619,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "NuGet API key", @@ -8969,7 +8645,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -8996,7 +8671,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -9023,7 +8697,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -9050,7 +8723,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -9077,7 +8749,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.936, "rule": "Password", @@ -9104,7 +8775,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -9131,7 +8801,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Password", @@ -9158,7 +8827,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -9185,7 +8853,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -9212,7 +8879,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.74, "rule": "Password", @@ -9239,7 +8905,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.98, "rule": "Password", @@ -9266,7 +8931,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -9293,7 +8957,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "CMD Password", @@ -9320,7 +8983,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -9347,7 +9009,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -9374,7 +9035,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -9401,7 +9061,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -9428,7 +9087,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.767, "rule": "Password", @@ -9455,7 +9113,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.79, "rule": "Password", @@ -9482,7 +9139,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.79, "rule": "Password", @@ -9509,7 +9165,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PayPal Braintree Access Token", @@ -9536,7 +9191,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -9767,7 +9421,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -9998,7 +9651,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10178,7 +9830,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10205,7 +9856,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10266,7 +9916,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10497,7 +10146,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PayPal Braintree Access Token", @@ -10524,7 +10172,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -10551,7 +10198,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10782,7 +10428,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Picatic API Key", @@ -10809,7 +10454,32 @@ ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "sk_live_gireogicracklegireogicrackle1231", + "line_num": 1, + "path": "./tests/samples/picatic_key", + "info": "./tests/samples/picatic_key|RAW", + "value": "sk_live_gireogicracklegireogicrackle1231", + "value_start": 0, + "value_end": 40, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.48760529131298, + "valid": true + } + } + ] + }, + { "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PyPi API Token", @@ -10836,7 +10506,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.777, "rule": "Salt", @@ -10863,7 +10532,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Salt", @@ -10890,7 +10558,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.968, "rule": "Salt", @@ -10917,7 +10584,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.832, "rule": "Salt", @@ -10944,7 +10610,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.945, "rule": "Salt", @@ -10971,7 +10636,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Salt", @@ -10998,7 +10662,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -11025,7 +10688,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.96, "rule": "Token", @@ -11052,7 +10714,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -11079,7 +10740,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -11106,7 +10766,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -11133,7 +10792,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -11160,7 +10818,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -11187,7 +10844,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.673, "rule": "Key", @@ -11214,7 +10870,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -11241,7 +10896,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -11268,7 +10922,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -11295,7 +10948,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -11322,7 +10974,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -11349,7 +11000,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -11376,7 +11026,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.886, "rule": "Password", @@ -11403,7 +11052,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -11430,7 +11078,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -11457,7 +11104,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.899, "rule": "Password", @@ -11484,7 +11130,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -11511,7 +11156,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.672, "rule": "Secret", @@ -11538,7 +11182,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SendGrid API Key", @@ -11565,7 +11208,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Shopify Token", @@ -11592,7 +11234,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Token", @@ -11619,7 +11260,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Webhook", @@ -11646,7 +11286,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Secret Value", @@ -11673,7 +11312,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Square Access Token", @@ -11700,10 +11338,9 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square Client ID", + "rule": "Square Credentials", "severity": "medium", "confidence": "strong", "line_data_list": [ @@ -11727,11 +11364,10 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square OAuth Secret", - "severity": "high", + "rule": "Square Credentials", + "severity": "medium", "confidence": "strong", "line_data_list": [ { @@ -11754,46 +11390,44 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Restricted API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", - "info": "./tests/samples/stripe_restricted_api_key.hs|RAW", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "line": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", + "line_num": 3, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { - "iterator": "BASE64_CHARS", - "entropy": 4.4375, - "valid": false + "iterator": "BASE36_CHARS", + "entropy": 3.09375, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", - "info": "./tests/samples/stripe_restricted_api_key.hs|RAW", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "line": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", + "line_num": 4, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", "value_start": 0, "value_end": 32, "variable": null, @@ -11808,61 +11442,162 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Standard API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", - "info": "./tests/samples/stripe_standard_api_key.hs|RAW", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "line": "sk_test_T1z4jtdp7dcC39HqLyjWareD", + "line_num": 5, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "sk_test_T1z4jtdp7dcC39HqLyjWareD", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.3514097655573916, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "line_num": 6, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "value_start": 0, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, - "valid": false + "entropy": 5.142346959152696, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", - "info": "./tests/samples/stripe_standard_api_key.hs|RAW", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "line": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", + "line_num": 7, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", "value_start": 0, - "value_end": 32, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 5.333602972673351, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "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", + "line_num": 8, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "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", + "value_start": 0, + "value_end": 107, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, + "entropy": 5.393325958893567, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "line_num": 9, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.333251131396994, "valid": false } } ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "line_num": 10, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.688771526247703, + "valid": true + } + } + ] + }, + { "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -11889,7 +11624,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Docker Swarm Token", @@ -11916,7 +11650,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -11943,7 +11676,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.792, "rule": "Secret", @@ -11970,7 +11702,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.969, "rule": "Key", @@ -11997,7 +11728,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.863, "rule": "Password", @@ -12024,7 +11754,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -12051,7 +11780,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.713, "rule": "Token", @@ -12078,7 +11806,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.975, "rule": "Key", @@ -12105,7 +11832,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Key", @@ -12132,7 +11858,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.66, "rule": "Password", @@ -12159,7 +11884,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -12186,7 +11910,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.913, "rule": "Password", @@ -12213,7 +11936,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -12240,7 +11962,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -12267,7 +11988,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.881, "rule": "Secret", @@ -12294,7 +12014,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Key", @@ -12321,7 +12040,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.944, "rule": "Password", @@ -12348,7 +12066,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -12375,7 +12092,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -12402,7 +12118,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.858, "rule": "Secret", @@ -12429,7 +12144,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.934, "rule": "Key", @@ -12456,7 +12170,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.955, "rule": "Key", @@ -12483,7 +12196,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.964, "rule": "Password", @@ -12510,7 +12222,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -12537,7 +12248,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -12564,7 +12274,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.955, "rule": "Key", @@ -12591,7 +12300,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.944, "rule": "Key", @@ -12618,7 +12326,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -12645,7 +12352,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -12672,7 +12378,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -12699,7 +12404,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Key", @@ -12726,7 +12430,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.991, "rule": "Key", @@ -12753,7 +12456,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Key", @@ -12780,7 +12482,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Telegram Bot API Token", @@ -12807,7 +12508,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -12834,7 +12534,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.903, "rule": "Password", @@ -12861,7 +12560,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -12888,7 +12586,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -12915,7 +12612,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -12942,7 +12638,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Token", @@ -12969,7 +12664,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -12996,7 +12690,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Telegram Bot API Token", @@ -13023,7 +12716,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -13050,7 +12742,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -13077,7 +12768,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -13104,7 +12794,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -13131,7 +12820,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -13158,7 +12846,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -13185,7 +12872,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -13212,7 +12898,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.955, "rule": "Token", @@ -13239,7 +12924,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -13266,7 +12950,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Token", @@ -13293,7 +12976,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Token", @@ -13320,7 +13002,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Token", @@ -13347,7 +13028,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -13374,7 +13054,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -13401,7 +13080,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -13428,7 +13106,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "URL Credentials", @@ -13455,7 +13132,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "URL Credentials", @@ -13482,7 +13158,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -13509,7 +13184,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.968, "rule": "Key", @@ -13536,7 +13210,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -13563,7 +13236,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -13590,7 +13262,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.928, "rule": "URL Credentials", @@ -13617,7 +13288,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -13644,7 +13314,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -13671,7 +13340,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -13698,7 +13366,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -13725,7 +13392,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -13752,7 +13418,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -13779,7 +13444,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -13806,7 +13470,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 Private Key", @@ -13833,7 +13496,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.844, "rule": "Password", diff --git a/tests/data/doc.json b/tests/data/doc.json index 968c8c63b..47dd349fe 100644 --- a/tests/data/doc.json +++ b/tests/data/doc.json @@ -1,6 +1,5 @@ [ { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 encoded PEM Private Key", @@ -27,7 +26,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian Old PAT token", @@ -54,7 +52,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -81,7 +78,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -108,7 +104,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -135,7 +130,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -162,7 +156,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -189,7 +182,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -216,7 +208,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -243,7 +234,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -287,7 +277,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -314,7 +303,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -358,7 +346,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -402,7 +389,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -429,7 +415,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -456,7 +441,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -483,7 +467,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -527,7 +510,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -554,7 +536,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -581,7 +562,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS MWS Key", @@ -608,7 +588,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -635,7 +614,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -662,7 +640,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -689,7 +666,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -716,7 +692,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -743,7 +718,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Secret Value", @@ -770,7 +744,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket HTTP Access Token", @@ -797,7 +770,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket App Password", @@ -824,7 +796,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -851,7 +822,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -878,7 +848,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -905,7 +874,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -932,7 +900,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Repository Access Token", @@ -959,7 +926,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dummy candidate", @@ -986,7 +952,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dummy candidate", @@ -1013,7 +978,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dummy candidate", @@ -1040,7 +1004,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1084,7 +1047,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -1111,7 +1073,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1138,7 +1099,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1165,7 +1125,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Discord Bot Token", @@ -1192,7 +1151,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1236,7 +1194,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1263,7 +1220,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1307,7 +1263,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1334,7 +1289,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1378,7 +1332,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1405,7 +1358,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1449,7 +1401,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1476,7 +1427,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1520,7 +1470,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1547,7 +1496,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1591,7 +1539,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1618,7 +1565,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1662,7 +1608,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1689,7 +1634,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1733,7 +1677,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1760,7 +1703,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1804,7 +1746,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1831,7 +1772,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1875,7 +1815,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1902,7 +1841,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -1946,7 +1884,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -1973,7 +1910,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2017,7 +1953,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2044,7 +1979,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2088,7 +2022,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2115,7 +2048,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2159,7 +2091,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2186,7 +2117,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2230,7 +2160,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2257,7 +2186,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2301,7 +2229,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2328,7 +2255,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2372,7 +2298,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2399,7 +2324,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2443,7 +2367,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2470,7 +2393,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2514,7 +2436,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2541,7 +2462,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2585,7 +2505,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2612,7 +2531,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2656,7 +2574,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2683,7 +2600,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2727,7 +2643,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2754,7 +2669,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2798,7 +2712,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2825,7 +2738,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2869,7 +2781,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2896,7 +2807,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -2940,7 +2850,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -2967,7 +2876,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3011,7 +2919,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3055,7 +2962,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3082,7 +2988,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3126,7 +3031,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3153,7 +3057,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3197,7 +3100,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3224,7 +3126,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3268,7 +3169,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3295,7 +3195,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3339,7 +3238,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3366,7 +3264,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3410,7 +3307,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3437,7 +3333,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3481,7 +3376,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3508,7 +3402,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3569,7 +3462,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3596,7 +3488,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3640,7 +3531,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3667,7 +3557,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3711,7 +3600,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3755,7 +3643,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3782,7 +3669,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3826,7 +3712,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3853,7 +3738,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3897,7 +3781,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3924,7 +3807,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -3968,7 +3850,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -3995,7 +3876,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4039,7 +3919,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4066,7 +3945,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4110,7 +3988,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4137,7 +4014,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4181,7 +4057,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4208,7 +4083,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4252,7 +4126,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4279,7 +4152,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4323,7 +4195,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4350,7 +4221,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4394,7 +4264,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4421,7 +4290,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4465,7 +4333,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4492,7 +4359,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4536,7 +4402,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4563,7 +4428,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4607,7 +4471,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4634,7 +4497,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4678,7 +4540,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4705,7 +4566,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4749,7 +4609,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4776,7 +4635,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4820,7 +4678,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4847,7 +4704,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4891,7 +4747,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4918,7 +4773,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -4962,7 +4816,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -4989,7 +4842,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5050,7 +4902,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5077,7 +4928,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5121,7 +4971,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5148,7 +4997,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5192,7 +5040,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5219,7 +5066,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5263,7 +5109,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5290,7 +5135,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5334,7 +5178,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5361,7 +5204,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5405,7 +5247,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5432,7 +5273,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5476,7 +5316,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5503,7 +5342,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5547,7 +5385,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5574,7 +5411,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5618,7 +5454,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5645,7 +5480,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5689,7 +5523,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5716,7 +5549,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5760,7 +5592,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5787,7 +5618,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5831,7 +5661,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5858,7 +5687,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -5902,7 +5730,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5929,7 +5756,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5956,7 +5782,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -5983,7 +5808,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6027,7 +5851,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6054,7 +5877,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6098,7 +5920,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6125,7 +5946,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6169,7 +5989,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6196,7 +6015,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6240,7 +6058,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6267,7 +6084,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6311,7 +6127,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6338,7 +6153,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6382,7 +6196,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6409,7 +6222,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6453,7 +6265,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6480,7 +6291,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6524,7 +6334,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6551,7 +6360,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6595,7 +6403,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6622,7 +6429,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6666,7 +6472,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6693,7 +6498,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6737,7 +6541,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6764,7 +6567,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6808,7 +6610,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -6835,7 +6636,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -6862,7 +6662,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -6889,7 +6688,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -6916,7 +6714,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -6960,7 +6757,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -6987,7 +6783,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7014,7 +6809,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7041,7 +6835,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7068,7 +6861,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7095,7 +6887,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7122,7 +6913,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -7166,7 +6956,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7193,7 +6982,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7220,7 +7008,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7247,7 +7034,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7274,7 +7060,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7301,7 +7086,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7328,7 +7112,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7355,7 +7138,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7382,7 +7164,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7409,7 +7190,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7436,7 +7216,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7463,7 +7242,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7490,7 +7268,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7517,7 +7294,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -7544,7 +7320,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -7571,7 +7346,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -7598,7 +7372,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -7625,7 +7398,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -7652,7 +7424,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -7679,7 +7450,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7706,7 +7476,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7733,7 +7502,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7760,7 +7528,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7787,7 +7554,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7814,7 +7580,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7841,7 +7606,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7868,7 +7632,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7895,7 +7658,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7922,7 +7684,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7949,7 +7710,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -7976,7 +7736,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -8020,7 +7779,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8047,7 +7805,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8074,7 +7831,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8101,7 +7857,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8128,7 +7883,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8155,7 +7909,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8182,7 +7935,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8209,7 +7961,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8236,7 +7987,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8263,7 +8013,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8290,7 +8039,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8317,7 +8065,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8344,7 +8091,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8371,7 +8117,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8398,7 +8143,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8425,7 +8169,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8452,7 +8195,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8479,7 +8221,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8506,7 +8247,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -8550,7 +8290,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8577,7 +8316,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -8621,7 +8359,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8648,7 +8385,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8675,7 +8411,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8702,7 +8437,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8729,7 +8463,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -8756,7 +8489,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8783,7 +8515,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8810,7 +8541,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8837,7 +8567,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8864,7 +8593,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8891,7 +8619,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8918,7 +8645,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8945,7 +8671,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8972,7 +8697,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -8999,7 +8723,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9026,7 +8749,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9053,7 +8775,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9080,7 +8801,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9107,7 +8827,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9134,7 +8853,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9161,7 +8879,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9188,7 +8905,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9215,7 +8931,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -9242,7 +8957,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -9269,7 +8983,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -9296,7 +9009,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9323,7 +9035,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -9367,7 +9078,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9394,7 +9104,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9421,7 +9130,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9448,7 +9156,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9475,7 +9182,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9502,7 +9208,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -9546,7 +9251,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9573,7 +9277,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9600,7 +9303,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9627,7 +9329,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -9671,7 +9372,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9698,7 +9398,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -9742,7 +9441,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9769,7 +9467,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9796,7 +9493,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9823,7 +9519,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -9867,7 +9562,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9894,7 +9588,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9921,7 +9614,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -9965,7 +9657,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -9992,7 +9683,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10019,7 +9709,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10046,7 +9735,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10073,7 +9761,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10100,7 +9787,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10127,7 +9813,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -10154,7 +9839,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -10181,7 +9865,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10208,7 +9891,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10235,7 +9917,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10262,7 +9943,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10289,7 +9969,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10316,7 +9995,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -10343,7 +10021,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PASSWD_PAIR", @@ -10370,7 +10047,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10397,7 +10073,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10424,7 +10099,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10451,7 +10125,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10478,7 +10151,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10505,7 +10177,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -10549,7 +10220,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10576,7 +10246,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10603,7 +10272,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10630,7 +10298,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10657,7 +10324,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10684,7 +10350,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10711,7 +10376,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10738,7 +10402,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10765,7 +10428,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10792,7 +10454,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -10836,7 +10497,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10863,7 +10523,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10890,7 +10549,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -10934,7 +10592,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10961,7 +10618,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -10988,7 +10644,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -11015,7 +10670,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox API secret (long term)", @@ -11042,7 +10696,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox App secret", @@ -11069,7 +10722,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox OAuth2 API Access Token", @@ -11096,7 +10748,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dynatrace API Token", @@ -11123,7 +10774,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -11150,7 +10800,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook App Token", @@ -11177,7 +10826,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -11204,7 +10852,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -11231,7 +10878,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -11258,7 +10904,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Fine-granted Token", @@ -11285,7 +10930,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Github Old Token", @@ -11312,7 +10956,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Incoming Email Token", @@ -11339,7 +10982,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Feed Token", @@ -11366,7 +11008,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11393,7 +11034,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11420,7 +11060,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11447,7 +11086,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11474,7 +11112,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11501,7 +11138,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11528,7 +11164,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11555,7 +11190,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11582,7 +11216,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11609,7 +11242,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11636,7 +11268,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11663,7 +11294,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11690,7 +11320,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11717,7 +11346,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -11744,7 +11372,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google API Key", @@ -11771,7 +11398,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -11815,7 +11441,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -11859,7 +11484,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Secret", @@ -11886,7 +11510,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -11913,7 +11536,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Access Policy Token", @@ -11940,7 +11562,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -11967,7 +11588,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Service Account Token", @@ -11994,7 +11614,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -12021,7 +11640,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -12048,7 +11666,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Terraform Token", @@ -12075,7 +11692,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Vault Token", @@ -12102,7 +11718,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Heroku API Key", @@ -12129,7 +11744,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -12156,7 +11770,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -12183,7 +11796,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -12210,7 +11822,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Instagram Access Token", @@ -12237,7 +11848,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -12264,7 +11874,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -12291,7 +11900,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira 2FA", @@ -12318,7 +11926,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -12345,7 +11952,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -12372,7 +11978,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -12399,7 +12004,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -12426,7 +12030,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailChimp API Key", @@ -12453,7 +12056,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailGun API Key", @@ -12480,7 +12082,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -12507,7 +12108,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -12551,7 +12151,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -12578,7 +12177,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -12605,7 +12203,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -12649,7 +12246,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -12676,7 +12272,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -12703,7 +12298,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "NuGet API key", @@ -12730,7 +12324,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -12757,7 +12350,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -12784,7 +12376,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -12811,7 +12402,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -12838,7 +12428,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -12865,7 +12454,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PayPal Braintree Access Token", @@ -12892,7 +12480,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -13072,7 +12659,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -13099,7 +12685,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -13160,7 +12745,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Picatic API Key", @@ -13187,7 +12771,32 @@ ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "sk_live_gireogicracklegireogicrackle1231", + "line_num": 1, + "path": "./tests/samples/picatic_key", + "info": "./tests/samples/picatic_key|RAW", + "value": "sk_live_gireogicracklegireogicrackle1231", + "value_start": 0, + "value_end": 40, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.48760529131298, + "valid": true + } + } + ] + }, + { "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PyPi API Token", @@ -13214,7 +12823,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -13241,7 +12849,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -13268,7 +12875,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -13295,7 +12901,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -13322,7 +12927,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -13349,7 +12953,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -13376,7 +12979,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -13420,7 +13022,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -13447,7 +13048,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -13474,7 +13074,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -13501,7 +13100,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -13528,7 +13126,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -13555,7 +13152,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -13582,7 +13178,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -13609,7 +13204,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -13636,7 +13230,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "ID_PAIR_PASSWD_PAIR", @@ -13680,7 +13273,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -13707,7 +13299,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -13734,7 +13325,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "IP_ID_PASSWORD_TRIPLE", @@ -13761,7 +13351,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SendGrid API Key", @@ -13788,7 +13377,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Shopify Token", @@ -13815,7 +13403,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Token", @@ -13842,7 +13429,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Webhook", @@ -13869,7 +13455,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Secret Value", @@ -13896,7 +13481,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Square Access Token", @@ -13923,10 +13507,9 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square Client ID", + "rule": "Square Credentials", "severity": "medium", "confidence": "strong", "line_data_list": [ @@ -13950,11 +13533,10 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square OAuth Secret", - "severity": "high", + "rule": "Square Credentials", + "severity": "medium", "confidence": "strong", "line_data_list": [ { @@ -13977,46 +13559,44 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Restricted API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", - "info": "./tests/samples/stripe_restricted_api_key.hs|RAW", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "line": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", + "line_num": 3, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { - "iterator": "BASE64_CHARS", - "entropy": 4.4375, - "valid": false + "iterator": "BASE36_CHARS", + "entropy": 3.09375, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", - "info": "./tests/samples/stripe_restricted_api_key.hs|RAW", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "line": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", + "line_num": 4, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", "value_start": 0, "value_end": 32, "variable": null, @@ -14031,61 +13611,162 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Standard API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", - "info": "./tests/samples/stripe_standard_api_key.hs|RAW", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "line": "sk_test_T1z4jtdp7dcC39HqLyjWareD", + "line_num": 5, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "sk_test_T1z4jtdp7dcC39HqLyjWareD", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.3514097655573916, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "line_num": 6, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "value_start": 0, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, - "valid": false + "entropy": 5.142346959152696, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", - "info": "./tests/samples/stripe_standard_api_key.hs|RAW", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "line": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", + "line_num": 7, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", "value_start": 0, - "value_end": 32, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 5.333602972673351, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "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", + "line_num": 8, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "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", + "value_start": 0, + "value_end": 107, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, + "entropy": 5.393325958893567, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "line_num": 9, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.333251131396994, "valid": false } } ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "line_num": 10, + "path": "./tests/samples/stripe_credentials", + "info": "./tests/samples/stripe_credentials|RAW", + "value": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.688771526247703, + "valid": true + } + } + ] + }, + { "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Docker Swarm Token", @@ -14112,7 +13793,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Telegram Bot API Token", @@ -14139,7 +13819,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -14166,7 +13845,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PASSWD_PAIR", @@ -14193,7 +13871,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Telegram Bot API Token", @@ -14220,7 +13897,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -14247,7 +13923,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -14274,7 +13949,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -14301,7 +13975,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -14328,7 +14001,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -14355,7 +14027,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -14382,7 +14053,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -14409,7 +14079,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -14436,7 +14105,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -14463,7 +14131,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -14490,7 +14157,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SECRET_PAIR", @@ -14517,7 +14183,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 Private Key", diff --git a/tests/data/ml_threshold.json b/tests/data/ml_threshold.json index aa3db2203..69653ba74 100644 --- a/tests/data/ml_threshold.json +++ b/tests/data/ml_threshold.json @@ -1,6 +1,5 @@ [ { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 encoded PEM Private Key", @@ -27,7 +26,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "API", @@ -54,7 +52,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian Old PAT token", @@ -81,7 +78,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -108,7 +104,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -135,7 +130,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -162,7 +156,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -189,7 +182,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.813, "rule": "Auth", @@ -216,7 +208,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Auth", @@ -243,7 +234,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -270,7 +260,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -297,7 +286,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -324,7 +312,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -351,7 +338,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -378,7 +364,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -405,7 +390,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -449,7 +433,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.334, "rule": "Key", @@ -476,7 +459,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -503,7 +485,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -547,7 +528,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.949, "rule": "Key", @@ -574,7 +554,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -618,7 +597,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Key", @@ -645,7 +623,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Secret", @@ -672,7 +649,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -699,7 +675,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -726,7 +701,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -753,7 +727,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.929, "rule": "Key", @@ -780,7 +753,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -807,7 +779,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -851,7 +822,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -878,7 +848,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Key", @@ -905,7 +874,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Secret", @@ -932,7 +900,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -959,7 +926,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS MWS Key", @@ -986,7 +952,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -1013,7 +978,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -1040,7 +1004,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -1067,7 +1030,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -1094,7 +1056,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -1121,7 +1082,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -1148,7 +1108,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Secret Value", @@ -1175,7 +1134,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket HTTP Access Token", @@ -1202,7 +1160,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket App Password", @@ -1229,7 +1186,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -1256,7 +1212,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -1283,7 +1238,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -1310,7 +1264,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -1337,7 +1290,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Repository Access Token", @@ -1364,7 +1316,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.118, "rule": "Token", @@ -1391,7 +1342,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Certificate", @@ -1418,7 +1368,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.219, "rule": "CMD Password", @@ -1445,7 +1394,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Password", @@ -1472,7 +1420,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.732, "rule": "CMD Password", @@ -1499,7 +1446,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "CMD Secret", @@ -1526,7 +1472,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "CMD Token", @@ -1553,7 +1498,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -1580,7 +1524,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "CMD ConvertTo-SecureString", @@ -1607,7 +1550,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD ConvertTo-SecureString", @@ -1634,7 +1576,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Credential", @@ -1661,7 +1602,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1688,7 +1628,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1715,7 +1654,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Discord Bot Token", @@ -1742,7 +1680,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.42, "rule": "Password", @@ -1769,7 +1706,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.516, "rule": "Password", @@ -1796,7 +1732,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.643, "rule": "Password", @@ -1823,7 +1758,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.73, "rule": "Password", @@ -1850,7 +1784,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.963, "rule": "Password", @@ -1877,7 +1810,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.753, "rule": "Password", @@ -1904,7 +1836,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.97, "rule": "Password", @@ -1931,7 +1862,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Password", @@ -1958,7 +1888,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -1985,7 +1914,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.56, "rule": "Password", @@ -2012,7 +1940,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -2039,7 +1966,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.298, "rule": "Password", @@ -2066,7 +1992,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.978, "rule": "Password", @@ -2093,7 +2018,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.98, "rule": "Password", @@ -2120,7 +2044,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -2147,7 +2070,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -2174,7 +2096,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Password", @@ -2201,7 +2122,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.972, "rule": "Password", @@ -2228,7 +2148,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.984, "rule": "Password", @@ -2255,7 +2174,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.971, "rule": "Password", @@ -2282,7 +2200,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -2309,7 +2226,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.378, "rule": "Password", @@ -2336,7 +2252,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.828, "rule": "Password", @@ -2363,7 +2278,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.815, "rule": "Password", @@ -2390,7 +2304,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.972, "rule": "Password", @@ -2417,7 +2330,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "CMD Password", @@ -2444,7 +2356,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.828, "rule": "Password", @@ -2471,7 +2382,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.908, "rule": "Password", @@ -2498,7 +2408,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.774, "rule": "Password", @@ -2525,7 +2434,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.459, "rule": "Password", @@ -2552,7 +2460,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -2579,7 +2486,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.8, "rule": "Password", @@ -2606,7 +2512,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.979, "rule": "Password", @@ -2633,7 +2538,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.952, "rule": "Password", @@ -2660,7 +2564,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -2687,7 +2590,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "CMD Password", @@ -2714,7 +2616,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -2741,7 +2642,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -2768,7 +2668,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.476, "rule": "Password", @@ -2795,7 +2694,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.948, "rule": "Password", @@ -2822,7 +2720,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -2849,7 +2746,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.966, "rule": "Password", @@ -2876,7 +2772,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.942, "rule": "Password", @@ -2903,7 +2798,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.956, "rule": "Password", @@ -2930,7 +2824,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.975, "rule": "Password", @@ -2957,7 +2850,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.958, "rule": "Password", @@ -2984,7 +2876,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.845, "rule": "Password", @@ -3011,7 +2902,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.9, "rule": "Password", @@ -3038,7 +2928,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.802, "rule": "Password", @@ -3065,7 +2954,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.845, "rule": "Password", @@ -3092,7 +2980,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.958, "rule": "Password", @@ -3119,7 +3006,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -3146,7 +3032,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -3173,7 +3058,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3200,7 +3084,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.854, "rule": "Password", @@ -3227,7 +3110,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -3254,7 +3136,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Password", @@ -3281,7 +3162,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -3308,7 +3188,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Password", @@ -3335,7 +3214,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.479, "rule": "Password", @@ -3362,7 +3240,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3389,7 +3266,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3416,7 +3292,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.859, "rule": "Password", @@ -3443,7 +3318,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.931, "rule": "Password", @@ -3470,7 +3344,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.794, "rule": "Password", @@ -3497,7 +3370,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.932, "rule": "Password", @@ -3524,7 +3396,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -3551,7 +3422,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3578,7 +3448,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3605,7 +3474,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.919, "rule": "Password", @@ -3632,7 +3500,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -3659,7 +3526,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -3686,7 +3552,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.945, "rule": "Password", @@ -3713,7 +3578,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.478, "rule": "Password", @@ -3740,7 +3604,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.827, "rule": "Password", @@ -3767,7 +3630,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.851, "rule": "Password", @@ -3794,7 +3656,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.804, "rule": "Password", @@ -3821,7 +3682,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.76, "rule": "Password", @@ -3848,7 +3708,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.913, "rule": "Password", @@ -3875,7 +3734,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.43, "rule": "Password", @@ -3902,7 +3760,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Password", @@ -3929,7 +3786,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.977, "rule": "Password", @@ -3956,7 +3812,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.841, "rule": "Password", @@ -3983,7 +3838,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.747, "rule": "Password", @@ -4010,7 +3864,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.047, "rule": "Password", @@ -4037,7 +3890,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.256, "rule": "Password", @@ -4064,7 +3916,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.076, "rule": "Password", @@ -4091,7 +3942,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.408, "rule": "Password", @@ -4118,7 +3968,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.291, "rule": "Password", @@ -4145,7 +3994,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.935, "rule": "Password", @@ -4172,7 +4020,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.548, "rule": "Password", @@ -4199,7 +4046,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.877, "rule": "Password", @@ -4226,7 +4072,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.007, "rule": "Password", @@ -4253,7 +4098,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.08, "rule": "Password", @@ -4280,7 +4124,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.926, "rule": "Password", @@ -4307,7 +4150,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.011, "rule": "Password", @@ -4334,7 +4176,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.012, "rule": "Password", @@ -4361,7 +4202,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.321, "rule": "Password", @@ -4388,7 +4228,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.889, "rule": "Password", @@ -4415,7 +4254,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.048, "rule": "Password", @@ -4442,7 +4280,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.754, "rule": "Password", @@ -4469,7 +4306,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.233, "rule": "Password", @@ -4496,7 +4332,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.822, "rule": "Password", @@ -4523,7 +4358,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.211, "rule": "Password", @@ -4550,7 +4384,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.971, "rule": "Password", @@ -4577,7 +4410,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.458, "rule": "Password", @@ -4604,7 +4436,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -4631,7 +4462,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -4658,7 +4488,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.817, "rule": "CMD Password", @@ -4685,7 +4514,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.528, "rule": "Password", @@ -4712,7 +4540,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -4739,7 +4566,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -4766,7 +4592,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.551, "rule": "Password", @@ -4793,7 +4618,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.18, "rule": "Password", @@ -4820,7 +4644,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.616, "rule": "Password", @@ -4847,7 +4670,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.624, "rule": "Password", @@ -4874,7 +4696,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.896, "rule": "Password", @@ -4901,7 +4722,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.911, "rule": "Password", @@ -4928,7 +4748,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.953, "rule": "Password", @@ -4955,7 +4774,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.924, "rule": "Password", @@ -4982,7 +4800,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.541, "rule": "Password", @@ -5009,7 +4826,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.594, "rule": "Password", @@ -5036,7 +4852,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.991, "rule": "CMD Password", @@ -5063,7 +4878,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.954, "rule": "Password", @@ -5090,7 +4904,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.93, "rule": "Password", @@ -5117,7 +4930,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.918, "rule": "Password", @@ -5144,7 +4956,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.583, "rule": "Password", @@ -5171,7 +4982,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.525, "rule": "Password", @@ -5198,7 +5008,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -5225,7 +5034,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.936, "rule": "Password", @@ -5252,7 +5060,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -5279,7 +5086,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.099, "rule": "Password", @@ -5306,7 +5112,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5333,7 +5138,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5360,7 +5164,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5387,7 +5190,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5414,7 +5216,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5441,7 +5242,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Token", @@ -5468,7 +5268,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5495,7 +5294,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5522,7 +5320,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Secret", @@ -5549,7 +5346,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5576,7 +5372,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5603,7 +5398,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5630,7 +5424,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5657,7 +5450,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "API", @@ -5684,7 +5476,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5711,7 +5502,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5738,7 +5528,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5765,7 +5554,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5792,7 +5580,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5819,7 +5606,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -5846,7 +5632,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -5873,7 +5658,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5900,7 +5684,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -5927,7 +5710,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Auth", @@ -5954,7 +5736,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -5981,7 +5762,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.001, "rule": "Key", @@ -6008,7 +5788,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.0, "rule": "Token", @@ -6035,7 +5814,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -6062,7 +5840,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.96, "rule": "Password", @@ -6089,7 +5866,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6116,7 +5892,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6143,7 +5918,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6170,7 +5944,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6197,7 +5970,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -6224,7 +5996,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.92, "rule": "Password", @@ -6251,7 +6022,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6278,7 +6048,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6305,7 +6074,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.986, "rule": "Password", @@ -6332,7 +6100,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.792, "rule": "Password", @@ -6359,7 +6126,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6386,7 +6152,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.986, "rule": "Password", @@ -6413,7 +6178,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Password", @@ -6440,7 +6204,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6467,7 +6230,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -6494,7 +6256,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6521,7 +6282,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Key", @@ -6548,7 +6308,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Secret", @@ -6575,7 +6334,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6602,7 +6360,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6629,7 +6386,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -6656,7 +6412,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6683,7 +6438,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6710,7 +6464,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6737,7 +6490,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6764,7 +6516,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -6791,7 +6542,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Password", @@ -6818,7 +6568,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6845,7 +6594,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6872,7 +6620,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6899,7 +6646,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6926,7 +6672,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6953,7 +6698,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.964, "rule": "Password", @@ -6980,7 +6724,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.926, "rule": "Password", @@ -7007,7 +6750,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -7034,7 +6776,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -7061,7 +6802,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7088,7 +6828,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7115,7 +6854,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -7142,7 +6880,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -7169,7 +6906,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -7196,7 +6932,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7223,7 +6958,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -7250,7 +6984,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -7277,7 +7010,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -7304,7 +7036,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -7331,7 +7062,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -7358,7 +7088,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -7385,7 +7114,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7412,7 +7140,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7439,7 +7166,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7466,7 +7192,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -7493,7 +7218,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -7520,7 +7244,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -7547,7 +7270,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -7574,7 +7296,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox API secret (long term)", @@ -7601,7 +7322,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox App secret", @@ -7628,7 +7348,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox OAuth2 API Access Token", @@ -7655,7 +7374,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dynatrace API Token", @@ -7682,7 +7400,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -7709,7 +7426,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.965, "rule": "Token", @@ -7736,7 +7452,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook App Token", @@ -7763,7 +7478,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -7790,7 +7504,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -7817,7 +7530,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -7844,7 +7556,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Fine-granted Token", @@ -7871,7 +7582,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Github Old Token", @@ -7898,7 +7608,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -7925,7 +7634,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Incoming Email Token", @@ -7952,7 +7660,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Feed Token", @@ -7979,7 +7686,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8006,7 +7712,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8033,7 +7738,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8060,7 +7764,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8087,7 +7790,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8114,7 +7816,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8141,7 +7842,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8168,7 +7868,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8195,7 +7894,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8222,7 +7920,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8249,7 +7946,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8276,7 +7972,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8303,7 +7998,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8330,7 +8024,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -8357,7 +8050,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google API Key", @@ -8384,7 +8076,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -8428,7 +8119,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -8472,7 +8162,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Secret", @@ -8499,7 +8188,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -8526,7 +8214,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Access Policy Token", @@ -8553,7 +8240,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -8580,7 +8266,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Service Account Token", @@ -8607,7 +8292,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -8634,7 +8318,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -8661,7 +8344,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Terraform Token", @@ -8688,7 +8370,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Vault Token", @@ -8715,7 +8396,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Heroku API Key", @@ -8742,7 +8422,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -8769,7 +8448,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -8796,7 +8474,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -8823,7 +8500,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Instagram Access Token", @@ -8850,7 +8526,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -8877,7 +8552,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -8904,7 +8578,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -8931,7 +8604,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira 2FA", @@ -8958,7 +8630,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -8985,7 +8656,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -9012,7 +8682,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -9039,7 +8708,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.963, "rule": "Key", @@ -9066,7 +8734,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Secret", @@ -9093,7 +8760,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Secret", @@ -9120,7 +8786,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Secret", @@ -9147,7 +8812,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Secret", @@ -9174,7 +8838,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Key", @@ -9201,7 +8864,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -9228,7 +8890,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailChimp API Key", @@ -9255,7 +8916,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailGun API Key", @@ -9282,7 +8942,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -9309,7 +8968,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -9353,7 +9011,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -9380,7 +9037,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -9407,7 +9063,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -9451,7 +9106,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -9478,7 +9132,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Nonce", @@ -9505,7 +9158,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -9532,7 +9184,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Key", @@ -9559,7 +9210,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -9586,7 +9236,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "NuGet API key", @@ -9613,7 +9262,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -9640,7 +9288,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -9667,7 +9314,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.596, "rule": "Password", @@ -9694,7 +9340,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -9721,7 +9366,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -9748,7 +9392,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.936, "rule": "Password", @@ -9775,7 +9418,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -9802,7 +9444,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Password", @@ -9829,7 +9470,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -9856,7 +9496,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -9883,7 +9522,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.438, "rule": "Password", @@ -9910,7 +9548,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.74, "rule": "Password", @@ -9937,7 +9574,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.98, "rule": "Password", @@ -9964,7 +9600,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -9991,7 +9626,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "CMD Password", @@ -10018,7 +9652,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -10045,7 +9678,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -10072,7 +9704,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -10099,7 +9730,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -10126,7 +9756,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PayPal Braintree Access Token", @@ -10153,7 +9782,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10333,7 +9961,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10360,7 +9987,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -10421,7 +10047,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Picatic API Key", @@ -10448,7 +10073,32 @@ ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "sk_live_gireogicracklegireogicrackle1231", + "line_num": 1, + "path": "./tests/samples/picatic_key", + "info": "", + "value": "sk_live_gireogicracklegireogicrackle1231", + "value_start": 0, + "value_end": 40, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.48760529131298, + "valid": true + } + } + ] + }, + { "ml_validation": "VALIDATED_KEY", "ml_probability": 0.307, "rule": "Password", @@ -10475,7 +10125,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PyPi API Token", @@ -10502,7 +10151,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Salt", @@ -10529,7 +10177,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.968, "rule": "Salt", @@ -10556,7 +10203,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.832, "rule": "Salt", @@ -10583,7 +10229,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.945, "rule": "Salt", @@ -10610,7 +10255,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Salt", @@ -10637,7 +10281,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.96, "rule": "Token", @@ -10664,7 +10307,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -10691,7 +10333,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -10718,7 +10359,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.672, "rule": "Secret", @@ -10745,7 +10385,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SendGrid API Key", @@ -10772,7 +10411,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Shopify Token", @@ -10799,7 +10437,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Token", @@ -10826,7 +10463,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Webhook", @@ -10853,7 +10489,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Square Access Token", @@ -10880,10 +10515,9 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square Client ID", + "rule": "Square Credentials", "severity": "medium", "confidence": "strong", "line_data_list": [ @@ -10907,11 +10541,10 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square OAuth Secret", - "severity": "high", + "rule": "Square Credentials", + "severity": "medium", "confidence": "strong", "line_data_list": [ { @@ -10934,46 +10567,44 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Restricted API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", + "line": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", + "line_num": 3, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "value": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { - "iterator": "BASE64_CHARS", - "entropy": 4.4375, - "valid": false + "iterator": "BASE36_CHARS", + "entropy": 3.09375, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", + "line": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", + "line_num": 4, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "value": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", "value_start": 0, "value_end": 32, "variable": null, @@ -10988,61 +10619,162 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Standard API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", + "line": "sk_test_T1z4jtdp7dcC39HqLyjWareD", + "line_num": 5, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "value": "sk_test_T1z4jtdp7dcC39HqLyjWareD", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.3514097655573916, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "line_num": 6, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "value_start": 0, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, - "valid": false + "entropy": 5.142346959152696, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", + "line": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", + "line_num": 7, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "value": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", "value_start": 0, - "value_end": 32, + "value_end": 107, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, + "entropy": 5.333602972673351, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "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", + "line_num": 8, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "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", + "value_start": 0, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 5.393325958893567, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "line_num": 9, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.333251131396994, "valid": false } } ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "line_num": 10, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.688771526247703, + "valid": true + } + } + ] + }, + { "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Docker Swarm Token", @@ -11069,7 +10801,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Telegram Bot API Token", @@ -11096,7 +10827,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -11123,7 +10853,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Token", @@ -11150,7 +10879,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Token", @@ -11177,7 +10905,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Token", @@ -11204,7 +10931,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -11231,7 +10957,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -11258,7 +10983,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -11285,7 +11009,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "URL Credentials", @@ -11312,7 +11035,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "URL Credentials", @@ -11339,7 +11061,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -11366,7 +11087,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.968, "rule": "Key", @@ -11393,7 +11113,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -11420,7 +11139,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -11447,7 +11165,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.928, "rule": "URL Credentials", @@ -11474,7 +11191,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -11501,7 +11217,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -11528,7 +11243,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -11555,7 +11269,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -11582,7 +11295,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -11609,7 +11321,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 Private Key", @@ -11636,7 +11347,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -11663,7 +11373,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -11690,7 +11399,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.844, "rule": "Password", @@ -11717,7 +11425,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.001, "rule": "Password", diff --git a/tests/data/output.json b/tests/data/output.json index fa1ccb9d1..8135c2645 100644 --- a/tests/data/output.json +++ b/tests/data/output.json @@ -1,6 +1,5 @@ [ { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 encoded PEM Private Key", @@ -27,7 +26,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "API", @@ -54,7 +52,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian Old PAT token", @@ -81,7 +78,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -108,7 +104,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -135,7 +130,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -162,7 +156,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Atlassian PAT token", @@ -189,7 +182,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.813, "rule": "Auth", @@ -216,7 +208,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Auth", @@ -243,7 +234,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -270,7 +260,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -297,7 +286,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Auth", @@ -324,7 +312,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -351,7 +338,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -378,7 +364,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -405,7 +390,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -449,7 +433,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -476,7 +459,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -520,7 +502,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.949, "rule": "Key", @@ -547,7 +528,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -591,7 +571,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Key", @@ -618,7 +597,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Secret", @@ -645,7 +623,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -672,7 +649,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -699,7 +675,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -726,7 +701,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.929, "rule": "Key", @@ -753,7 +727,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -780,7 +753,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -824,7 +796,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -851,7 +822,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Key", @@ -878,7 +848,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Secret", @@ -905,7 +874,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -932,7 +900,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS MWS Key", @@ -959,7 +926,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -986,7 +952,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS S3 Bucket", @@ -1013,7 +978,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -1040,7 +1004,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -1067,7 +1030,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Access Token", @@ -1094,7 +1056,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -1121,7 +1082,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Azure Secret Value", @@ -1148,7 +1108,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket HTTP Access Token", @@ -1175,7 +1134,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket App Password", @@ -1202,7 +1160,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -1229,7 +1186,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -1256,7 +1212,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client ID", @@ -1283,7 +1238,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Client Secret", @@ -1310,7 +1264,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Bitbucket Repository Access Token", @@ -1337,7 +1290,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Certificate", @@ -1364,7 +1316,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Password", @@ -1391,7 +1342,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.732, "rule": "CMD Password", @@ -1418,7 +1368,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "CMD Secret", @@ -1445,7 +1394,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "CMD Token", @@ -1472,7 +1420,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -1499,7 +1446,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "CMD ConvertTo-SecureString", @@ -1526,7 +1472,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD ConvertTo-SecureString", @@ -1553,7 +1498,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Credential", @@ -1580,7 +1524,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1607,7 +1550,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Digital Ocean Token", @@ -1634,7 +1576,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Discord Bot Token", @@ -1661,7 +1602,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.643, "rule": "Password", @@ -1688,7 +1628,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.73, "rule": "Password", @@ -1715,7 +1654,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.963, "rule": "Password", @@ -1742,7 +1680,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.753, "rule": "Password", @@ -1769,7 +1706,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.97, "rule": "Password", @@ -1796,7 +1732,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Password", @@ -1823,7 +1758,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -1850,7 +1784,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -1877,7 +1810,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.978, "rule": "Password", @@ -1904,7 +1836,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.98, "rule": "Password", @@ -1931,7 +1862,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -1958,7 +1888,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -1985,7 +1914,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.925, "rule": "Password", @@ -2012,7 +1940,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.972, "rule": "Password", @@ -2039,7 +1966,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.984, "rule": "Password", @@ -2066,7 +1992,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.971, "rule": "Password", @@ -2093,7 +2018,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -2120,7 +2044,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.828, "rule": "Password", @@ -2147,7 +2070,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.815, "rule": "Password", @@ -2174,7 +2096,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.972, "rule": "Password", @@ -2201,7 +2122,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "CMD Password", @@ -2228,7 +2148,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.828, "rule": "Password", @@ -2255,7 +2174,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.908, "rule": "Password", @@ -2282,7 +2200,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.774, "rule": "Password", @@ -2309,7 +2226,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -2336,7 +2252,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.8, "rule": "Password", @@ -2363,7 +2278,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.979, "rule": "Password", @@ -2390,7 +2304,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.952, "rule": "Password", @@ -2417,7 +2330,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -2444,7 +2356,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "CMD Password", @@ -2471,7 +2382,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -2498,7 +2408,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -2525,7 +2434,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.948, "rule": "Password", @@ -2552,7 +2460,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -2579,7 +2486,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.966, "rule": "Password", @@ -2606,7 +2512,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.942, "rule": "Password", @@ -2633,7 +2538,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.956, "rule": "Password", @@ -2660,7 +2564,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.975, "rule": "Password", @@ -2687,7 +2590,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.958, "rule": "Password", @@ -2714,7 +2616,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.845, "rule": "Password", @@ -2741,7 +2642,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.9, "rule": "Password", @@ -2768,7 +2668,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.802, "rule": "Password", @@ -2795,7 +2694,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.845, "rule": "Password", @@ -2822,7 +2720,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.958, "rule": "Password", @@ -2849,7 +2746,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -2876,7 +2772,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -2903,7 +2798,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -2930,7 +2824,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.854, "rule": "Password", @@ -2957,7 +2850,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Password", @@ -2984,7 +2876,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Password", @@ -3011,7 +2902,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -3038,7 +2928,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Password", @@ -3065,7 +2954,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3092,7 +2980,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -3119,7 +3006,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.859, "rule": "Password", @@ -3146,7 +3032,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.931, "rule": "Password", @@ -3173,7 +3058,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.794, "rule": "Password", @@ -3200,7 +3084,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.932, "rule": "Password", @@ -3227,7 +3110,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -3254,7 +3136,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3281,7 +3162,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3308,7 +3188,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.919, "rule": "Password", @@ -3335,7 +3214,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -3362,7 +3240,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -3389,7 +3266,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.945, "rule": "Password", @@ -3416,7 +3292,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.827, "rule": "Password", @@ -3443,7 +3318,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.851, "rule": "Password", @@ -3470,7 +3344,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.804, "rule": "Password", @@ -3497,7 +3370,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.76, "rule": "Password", @@ -3524,7 +3396,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.913, "rule": "Password", @@ -3551,7 +3422,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.987, "rule": "Password", @@ -3578,7 +3448,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.977, "rule": "Password", @@ -3605,7 +3474,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.841, "rule": "Password", @@ -3632,7 +3500,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.747, "rule": "Password", @@ -3659,7 +3526,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.935, "rule": "Password", @@ -3686,7 +3552,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.877, "rule": "Password", @@ -3713,7 +3578,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.926, "rule": "Password", @@ -3740,7 +3604,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.889, "rule": "Password", @@ -3767,7 +3630,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.754, "rule": "Password", @@ -3794,7 +3656,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.822, "rule": "Password", @@ -3821,7 +3682,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.971, "rule": "Password", @@ -3848,7 +3708,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.962, "rule": "Password", @@ -3875,7 +3734,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -3902,7 +3760,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.817, "rule": "CMD Password", @@ -3929,7 +3786,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -3956,7 +3812,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -3983,7 +3838,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.624, "rule": "Password", @@ -4010,7 +3864,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.896, "rule": "Password", @@ -4037,7 +3890,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.911, "rule": "Password", @@ -4064,7 +3916,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.953, "rule": "Password", @@ -4091,7 +3942,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.924, "rule": "Password", @@ -4118,7 +3968,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.991, "rule": "CMD Password", @@ -4145,7 +3994,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.954, "rule": "Password", @@ -4172,7 +4020,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.93, "rule": "Password", @@ -4199,7 +4046,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.918, "rule": "Password", @@ -4226,7 +4072,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -4253,7 +4098,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.936, "rule": "Password", @@ -4280,7 +4124,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.967, "rule": "Password", @@ -4307,7 +4150,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4334,7 +4176,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4361,7 +4202,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4388,7 +4228,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4415,7 +4254,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4442,7 +4280,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Token", @@ -4469,7 +4306,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4496,7 +4332,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4523,7 +4358,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "CMD Secret", @@ -4550,7 +4384,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4577,7 +4410,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4604,7 +4436,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4631,7 +4462,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4658,7 +4488,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "API", @@ -4685,7 +4514,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4712,7 +4540,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4739,7 +4566,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4766,7 +4592,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4793,7 +4618,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4820,7 +4644,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -4847,7 +4670,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Secret", @@ -4874,7 +4696,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4901,7 +4722,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -4928,7 +4748,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Auth", @@ -4955,7 +4774,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -4982,7 +4800,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5009,7 +4826,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.96, "rule": "Password", @@ -5036,7 +4852,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5063,7 +4878,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -5090,7 +4904,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5117,7 +4930,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5144,7 +4956,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5171,7 +4982,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.92, "rule": "Password", @@ -5198,7 +5008,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5225,7 +5034,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -5252,7 +5060,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.986, "rule": "Password", @@ -5279,7 +5086,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.792, "rule": "Password", @@ -5306,7 +5112,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5333,7 +5138,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.986, "rule": "Password", @@ -5360,7 +5164,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.95, "rule": "Password", @@ -5387,7 +5190,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5414,7 +5216,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5441,7 +5242,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5468,7 +5268,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Key", @@ -5495,7 +5294,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Secret", @@ -5522,7 +5320,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5549,7 +5346,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -5576,7 +5372,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -5603,7 +5398,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -5630,7 +5424,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5657,7 +5450,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5684,7 +5476,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5711,7 +5502,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.983, "rule": "Password", @@ -5738,7 +5528,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Password", @@ -5765,7 +5554,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -5792,7 +5580,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -5819,7 +5606,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -5846,7 +5632,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -5873,7 +5658,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -5900,7 +5684,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.964, "rule": "Password", @@ -5927,7 +5710,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.926, "rule": "Password", @@ -5954,7 +5736,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -5981,7 +5762,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6008,7 +5788,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6035,7 +5814,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6062,7 +5840,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6089,7 +5866,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6116,7 +5892,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -6143,7 +5918,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6170,7 +5944,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Password", @@ -6197,7 +5970,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6224,7 +5996,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -6251,7 +6022,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6278,7 +6048,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -6305,7 +6074,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.992, "rule": "Password", @@ -6332,7 +6100,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6359,7 +6126,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6386,7 +6152,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6413,7 +6178,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -6440,7 +6204,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.988, "rule": "Password", @@ -6467,7 +6230,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6494,7 +6256,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -6521,7 +6282,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox API secret (long term)", @@ -6548,7 +6308,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox App secret", @@ -6575,7 +6334,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dropbox OAuth2 API Access Token", @@ -6602,7 +6360,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Dynatrace API Token", @@ -6629,7 +6386,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook Access Token", @@ -6656,7 +6412,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.965, "rule": "Token", @@ -6683,7 +6438,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Facebook App Token", @@ -6710,7 +6464,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -6737,7 +6490,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Firebase Domain", @@ -6764,7 +6516,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Classic Token", @@ -6791,7 +6542,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Github Fine-granted Token", @@ -6818,7 +6568,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Github Old Token", @@ -6845,7 +6594,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -6872,7 +6620,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Incoming Email Token", @@ -6899,7 +6646,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Feed Token", @@ -6926,7 +6672,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -6953,7 +6698,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -6980,7 +6724,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7007,7 +6750,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7034,7 +6776,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7061,7 +6802,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7088,7 +6828,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7115,7 +6854,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7142,7 +6880,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7169,7 +6906,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7196,7 +6932,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7223,7 +6958,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7250,7 +6984,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7277,7 +7010,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Gitlab Prefix Token", @@ -7304,7 +7036,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google API Key", @@ -7331,7 +7062,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -7375,7 +7105,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google Multi", @@ -7419,7 +7148,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Secret", @@ -7446,7 +7174,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Google OAuth Access Token", @@ -7473,7 +7200,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Access Policy Token", @@ -7500,7 +7226,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -7527,7 +7252,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Service Account Token", @@ -7554,7 +7278,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -7581,7 +7304,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Groq API Key", @@ -7608,7 +7330,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Terraform Token", @@ -7635,7 +7356,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hashicorp Vault Token", @@ -7662,7 +7382,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Heroku API Key", @@ -7689,7 +7408,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -7716,7 +7434,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -7743,7 +7460,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Hugging Face User Access Token", @@ -7770,7 +7486,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Instagram Access Token", @@ -7797,7 +7512,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -7824,7 +7538,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -7851,7 +7564,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jfrog Token", @@ -7878,7 +7590,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira 2FA", @@ -7905,7 +7616,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -7932,7 +7642,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Jira / Confluence PAT token", @@ -7959,7 +7668,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "JSON Web Token", @@ -7986,7 +7694,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.963, "rule": "Key", @@ -8013,7 +7720,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Secret", @@ -8040,7 +7746,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.995, "rule": "Secret", @@ -8067,7 +7772,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.994, "rule": "Secret", @@ -8094,7 +7798,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.993, "rule": "Secret", @@ -8121,7 +7824,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Key", @@ -8148,7 +7850,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Key", @@ -8175,7 +7876,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailChimp API Key", @@ -8202,7 +7902,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "MailGun API Key", @@ -8229,7 +7928,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -8256,7 +7954,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -8300,7 +7997,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -8327,7 +8023,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Client ID", @@ -8354,7 +8049,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "AWS Multi", @@ -8398,7 +8092,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -8425,7 +8118,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Nonce", @@ -8452,7 +8144,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -8479,7 +8170,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Key", @@ -8506,7 +8196,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -8533,7 +8222,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "NuGet API key", @@ -8560,7 +8248,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -8587,7 +8274,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "OpenAI Token", @@ -8614,7 +8300,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.985, "rule": "Password", @@ -8641,7 +8326,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -8668,7 +8352,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.936, "rule": "Password", @@ -8695,7 +8378,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -8722,7 +8404,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.99, "rule": "Password", @@ -8749,7 +8430,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Password", @@ -8776,7 +8456,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -8803,7 +8482,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.74, "rule": "Password", @@ -8830,7 +8508,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.98, "rule": "Password", @@ -8857,7 +8534,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Password", @@ -8884,7 +8560,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "CMD Password", @@ -8911,7 +8586,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.996, "rule": "Password", @@ -8938,7 +8612,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -8965,7 +8638,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Password", @@ -8992,7 +8664,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.989, "rule": "Password", @@ -9019,7 +8690,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PayPal Braintree Access Token", @@ -9046,7 +8716,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -9226,7 +8895,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -9253,7 +8921,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PEM Private Key", @@ -9314,7 +8981,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Picatic API Key", @@ -9341,7 +9007,32 @@ ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "sk_live_gireogicracklegireogicrackle1231", + "line_num": 1, + "path": "./tests/samples/picatic_key", + "info": "", + "value": "sk_live_gireogicracklegireogicrackle1231", + "value_start": 0, + "value_end": 40, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.48760529131298, + "valid": true + } + } + ] + }, + { "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "PyPi API Token", @@ -9368,7 +9059,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Salt", @@ -9395,7 +9085,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.968, "rule": "Salt", @@ -9422,7 +9111,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.832, "rule": "Salt", @@ -9449,7 +9137,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.945, "rule": "Salt", @@ -9476,7 +9163,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Salt", @@ -9503,7 +9189,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.96, "rule": "Token", @@ -9530,7 +9215,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Password", @@ -9557,7 +9241,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.998, "rule": "Password", @@ -9584,7 +9267,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.672, "rule": "Secret", @@ -9611,7 +9293,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "SendGrid API Key", @@ -9638,7 +9319,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Shopify Token", @@ -9665,7 +9345,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Token", @@ -9692,7 +9371,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Slack Webhook", @@ -9719,7 +9397,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Square Access Token", @@ -9746,10 +9423,9 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square Client ID", + "rule": "Square Credentials", "severity": "medium", "confidence": "strong", "line_data_list": [ @@ -9773,11 +9449,10 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Square OAuth Secret", - "severity": "high", + "rule": "Square Credentials", + "severity": "medium", "confidence": "strong", "line_data_list": [ { @@ -9800,46 +9475,44 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Restricted API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", + "line": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", + "line_num": 3, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "value": "pk_test_Tph4NiI7TYooMQaujxvdEDq5", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { - "iterator": "BASE64_CHARS", - "entropy": 4.4375, - "valid": false + "iterator": "BASE36_CHARS", + "entropy": 3.09375, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "rk_live_48ehKQINMST2dsfwyVI77Ydj", - "line_num": 1, - "path": "./tests/samples/stripe_restricted_api_key.hs", + "line": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", + "line_num": 4, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "rk_live_48ehKQINMST2dsfwyVI77Ydj", + "value": "rk_live_TsS4QI2dNfwyVM7YdjI78ehK", "value_start": 0, "value_end": 32, "variable": null, @@ -9854,61 +9527,162 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Stripe Standard API Key", + "rule": "Stripe Credentials", "severity": "high", "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", + "line": "sk_test_T1z4jtdp7dcC39HqLyjWareD", + "line_num": 5, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "value": "sk_test_T1z4jtdp7dcC39HqLyjWareD", "value_start": 0, "value_end": 32, "variable": null, "variable_start": -2, "variable_end": -2, + "entropy_validation": { + "iterator": "BASE36_CHARS", + "entropy": 3.3514097655573916, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "line_num": 6, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx", + "value_start": 0, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, - "valid": false + "entropy": 5.142346959152696, + "valid": true } } ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, - "rule": "Bitbucket Client Secret", - "severity": "info", - "confidence": "weak", + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", "line_data_list": [ { - "line": "sk_live_2dsI77Ydj48ehKQINfwyVMST", - "line_num": 1, - "path": "./tests/samples/stripe_standard_api_key.hs", + "line": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", + "line_num": 7, + "path": "./tests/samples/stripe_credentials", "info": "", - "value": "sk_live_2dsI77Ydj48ehKQINfwyVMST", + "value": "sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h", "value_start": 0, - "value_end": 32, + "value_end": 107, "variable": null, "variable_start": -2, "variable_end": -2, "entropy_validation": { "iterator": "BASE64_CHARS", - "entropy": 4.375, + "entropy": 5.333602972673351, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "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", + "line_num": 8, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "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", + "value_start": 0, + "value_end": 107, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 5.393325958893567, + "valid": true + } + } + ] + }, + { + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "line_num": 9, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.333251131396994, "valid": false } } ] }, { - "api_validation": "NOT_AVAILABLE", + "ml_validation": "NOT_AVAILABLE", + "ml_probability": null, + "rule": "Stripe Credentials", + "severity": "high", + "confidence": "strong", + "line_data_list": [ + { + "line": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "line_num": 10, + "path": "./tests/samples/stripe_credentials", + "info": "", + "value": "whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW", + "value_start": 0, + "value_end": 38, + "variable": null, + "variable_start": -2, + "variable_end": -2, + "entropy_validation": { + "iterator": "BASE64_CHARS", + "entropy": 4.688771526247703, + "valid": true + } + } + ] + }, + { "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Docker Swarm Token", @@ -9935,7 +9709,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Telegram Bot API Token", @@ -9962,7 +9735,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Grafana Provisioned API Key", @@ -9989,7 +9761,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Token", @@ -10016,7 +9787,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "Token", @@ -10043,7 +9813,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.982, "rule": "Token", @@ -10070,7 +9839,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -10097,7 +9865,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -10124,7 +9891,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Twilio Credentials", @@ -10151,7 +9917,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.997, "rule": "URL Credentials", @@ -10178,7 +9943,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "URL Credentials", @@ -10205,7 +9969,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -10232,7 +9995,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.968, "rule": "Key", @@ -10259,7 +10021,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Key", @@ -10286,7 +10047,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Credential", @@ -10313,7 +10073,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.928, "rule": "URL Credentials", @@ -10340,7 +10099,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.999, "rule": "Token", @@ -10367,7 +10125,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "UUID", @@ -10394,7 +10151,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -10421,7 +10177,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -10448,7 +10203,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "Tencent WeChat API App ID", @@ -10475,7 +10229,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "NOT_AVAILABLE", "ml_probability": null, "rule": "BASE64 Private Key", @@ -10502,7 +10255,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -10529,7 +10281,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 1.0, "rule": "Token", @@ -10556,7 +10307,6 @@ ] }, { - "api_validation": "NOT_AVAILABLE", "ml_validation": "VALIDATED_KEY", "ml_probability": 0.844, "rule": "Password", diff --git a/tests/file_handler/test_file_path_extractor.py b/tests/file_handler/test_file_path_extractor.py index 49bcfaf13..0b3b09335 100644 --- a/tests/file_handler/test_file_path_extractor.py +++ b/tests/file_handler/test_file_path_extractor.py @@ -32,9 +32,6 @@ def setUp(self): "source_ext": [], "source_quote_ext": [], "check_for_literals": [], - "validation": { - "api_validation": False - }, "use_filters": False, "line_data_output": [], "candidate_output": [], diff --git a/tests/filters/test_value_array_dictionary_check.py b/tests/filters/test_value_array_dictionary_check.py index d1ebb71d3..15a2c93d7 100644 --- a/tests/filters/test_value_array_dictionary_check.py +++ b/tests/filters/test_value_array_dictionary_check.py @@ -19,7 +19,6 @@ def token_rule(self, config) -> Rule: "filter_type": [ValueArrayDictionaryCheck.__name__], "use_ml": True, "min_line_len": 0, - "validations": [], "target": ["code", "doc"], } rule = Rule(config, token_rule_without_filters) diff --git a/tests/filters/test_value_similarity_check.py b/tests/filters/test_value_similarity_check.py index fd0f2fa35..8be5cb126 100644 --- a/tests/filters/test_value_similarity_check.py +++ b/tests/filters/test_value_similarity_check.py @@ -18,7 +18,6 @@ def password_rule(self, config) -> Rule: "values": ["password|passwd|pwd"], "use_ml": True, "min_line_len": 0, - "validations": [], "target": ["code", "doc"], } rule = Rule(config, pass_rule_without_filters) diff --git a/tests/ml_model/test_ml_validator.py b/tests/ml_model/test_ml_validator.py index 7c225e341..60acb3650 100644 --- a/tests/ml_model/test_ml_validator.py +++ b/tests/ml_model/test_ml_validator.py @@ -20,8 +20,6 @@ def setUp(self): assert self.ml_validator is not None file_name = APP_PATH / "secret" / "config.json" config_dict = Util.json_load(file_name) - config_dict["validation"] = {} - config_dict["validation"]["api_validation"] = False config_dict["use_filters"] = True config_dict["find_by_ext"] = False config_dict["depth"] = 0 diff --git a/tests/pytest.ini b/tests/pytest.ini index 6862b8dc2..b92be4efb 100644 --- a/tests/pytest.ini +++ b/tests/pytest.ini @@ -1,3 +1,2 @@ [pytest] markers = - api_validation_test: marks api validations diff --git a/tests/rules/test_rule.py b/tests/rules/test_rule.py index 396241139..e9a691989 100644 --- a/tests/rules/test_rule.py +++ b/tests/rules/test_rule.py @@ -22,17 +22,16 @@ class TestRuleConfigParsing: "filter_type": GeneralPattern.__name__, "min_line_len": 32, "use_ml": False, - "validations": [], "target": ["code", "doc"], }, - # Check proper config with no validations + # Check proper config with no filters { "name": "Twilio API Key", "severity": "high", "confidence": "moderate", "type": "pattern", "values": ["(?PSK[0-9a-fA-F]{32})"], - "filter_type": GeneralPattern.__name__, + "filter_type": [], "min_line_len": 32, "use_ml": False, "target": ["code", "doc"], @@ -48,8 +47,7 @@ def test_create_from_config_p(self, config: Config, rule_config: pytest.fixture) assert rule.rule_name == "Twilio API Key" assert rule.severity == Severity.HIGH - @pytest.mark.parametrize( - "field, error", [["severity", "none"], ["type", "none"], ["filter_type", "none"], ["validations", ["none"]]]) + @pytest.mark.parametrize("field, error", [["severity", "none"], ["type", "none"], ["filter_type", "none"]]) def test_create_from_malformed_config_n(self, config: Config, rule_config: pytest.fixture, field: str, error: str) -> None: rule_config[field] = error diff --git a/tests/rules/test_square_client_id.py b/tests/rules/test_square_client_id.py deleted file mode 100644 index 98e98c7fa..000000000 --- a/tests/rules/test_square_client_id.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import List - -import pytest - -from .common import BaseTestRule - - -class TestSquareClientID(BaseTestRule): - - @pytest.fixture(params=[["sq0atp-GIREOGICRACKLE12145178"], ["sq0idp-1230567912305-12305670"]]) - def lines(self, request) -> List[str]: - return request.param - - @pytest.fixture - def rule_name(self) -> str: - return "Square Client ID" diff --git a/tests/rules/test_square_secret_key.py b/tests/rules/test_square_secret_key.py deleted file mode 100644 index 81b563d87..000000000 --- a/tests/rules/test_square_secret_key.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import List - -import pytest - -from .common import BaseTestRule - - -class TestSquareSecretKey(BaseTestRule): - - @pytest.fixture(params=[["sq0csp-GIREOGICRACKLEGIREOGICRACKLEGIREOGICRACKLE1"]]) - def lines(self, request) -> List[str]: - return request.param - - @pytest.fixture - def rule_name(self) -> str: - return "Square OAuth Secret" diff --git a/tests/rules/test_stripe_api_key.py b/tests/rules/test_stripe_api_key.py deleted file mode 100644 index f40a79079..000000000 --- a/tests/rules/test_stripe_api_key.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import List - -import pytest - -from .common import BaseTestRule - - -class TestStripeApiKey(BaseTestRule): - - @pytest.fixture(params=[["sk_live_GIREOGICRACKLE1134517810"]]) - def lines(self, request) -> List[str]: - return request.param - - @pytest.fixture - def rule_name(self) -> str: - return "Stripe Standard API Key" diff --git a/tests/rules/test_stripe_rk_api_key.py b/tests/rules/test_stripe_rk_api_key.py deleted file mode 100644 index 9312898fa..000000000 --- a/tests/rules/test_stripe_rk_api_key.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import List - -import pytest - -from .common import BaseTestRule - - -class TestStripeRestrictedApiKey(BaseTestRule): - - @pytest.fixture(params=[["rk_live_GIREOGICRACKLE1231167190"]]) - def lines(self, request) -> List[str]: - return request.param - - @pytest.fixture - def rule_name(self) -> str: - return "Stripe Restricted API Key" diff --git a/tests/samples/stripe_credentials b/tests/samples/stripe_credentials new file mode 100644 index 000000000..3119109b0 --- /dev/null +++ b/tests/samples/stripe_credentials @@ -0,0 +1,10 @@ +https://docs.stripe.com/keys +# short like in the doc +pk_test_Tph4NiI7TYooMQaujxvdEDq5 +rk_live_TsS4QI2dNfwyVM7YdjI78ehK +sk_test_T1z4jtdp7dcC39HqLyjWareD +pk_live_KQI2pIpqzh1Nv2ZXfJBqUJItqoO5WdI6zUkITxodxICz85zC00cv0Gk63bDVUMwIymb3zKTeiqfU588jyYJdNYekpiI56wY0IIx +sk_test_KQI2pIpqzh1Nv2ZXfyfDQUTUQ63Cw359VjKMwtfJ000DsiXxtcVuxT40W8QRSYWZLQZxszLqOMkbYwYWDV1xKCmRKWR3kgSpi9h +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 +whsec_IsQVcHgjVWTBwlClIsICTD0mpDr4gJ4m +whsec_Q4KGL7AstjhYfzCtzK2RTB2EmncHgjVW diff --git a/tests/samples/stripe_restricted_api_key.hs b/tests/samples/stripe_restricted_api_key.hs deleted file mode 100644 index 99f5e35c1..000000000 --- a/tests/samples/stripe_restricted_api_key.hs +++ /dev/null @@ -1 +0,0 @@ -rk_live_48ehKQINMST2dsfwyVI77Ydj diff --git a/tests/samples/stripe_standard_api_key.hs b/tests/samples/stripe_standard_api_key.hs deleted file mode 100644 index ef4394b7b..000000000 --- a/tests/samples/stripe_standard_api_key.hs +++ /dev/null @@ -1 +0,0 @@ -sk_live_2dsI77Ydj48ehKQINfwyVMST diff --git a/tests/test_app.py b/tests/test_app.py index b5b4c153c..259297157 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -57,7 +57,6 @@ def test_it_works_p(self) -> None: | path: {target_path} | value: 'cAc48k1Zd7' | entropy_validation: BASE64_CHARS 3.121928 False] - | api_validation: NOT_AVAILABLE | ml_validation: VALIDATED_KEY\n rule: Password | severity: medium @@ -68,7 +67,6 @@ def test_it_works_p(self) -> None: | path: {target_path} | value: 'cAc48k1Zd7' | entropy_validation: BASE64_CHARS 3.121928 False] - | api_validation: NOT_AVAILABLE | ml_validation: VALIDATED_KEY\n Detected Credentials: 2\n Time Elapsed: @@ -119,7 +117,6 @@ def test_it_works_with_patch_p(self) -> None: | path: .changes/1.16.98.json | value: 'dkajco1' | entropy_validation: BASE64_CHARS 2.807355 False] - | api_validation: NOT_AVAILABLE | ml_validation: VALIDATED_KEY\n Added File Credentials: 1\n Deleted File Credentials: 0\n @@ -145,7 +142,6 @@ def test_it_works_with_multiline_in_patch_p(self) -> None: | path: creds.py | value: 'AKIAQWADE5R42RDZ4JEM' | entropy_validation: BASE64_CHARS 3.684184 False] - | api_validation: NOT_AVAILABLE | ml_validation: NOT_AVAILABLE rule: AWS Multi | severity: high @@ -161,7 +157,6 @@ def test_it_works_with_multiline_in_patch_p(self) -> None: | path: creds.py | value: 'V84C7sDU001tFFodKU95USNy97TkqXymnvsFmYhQ' | entropy_validation: BASE64_CHARS 4.784184 True] - | api_validation: NOT_AVAILABLE | ml_validation: NOT_AVAILABLE rule: Token | severity: medium @@ -172,7 +167,6 @@ def test_it_works_with_multiline_in_patch_p(self) -> None: | path: creds.py | value: 'V84C7sDU001tFFodKU95USNy97TkqXymnvsFmYhQ' | entropy_validation: BASE64_CHARS 4.784184 True] - | api_validation: NOT_AVAILABLE | ml_validation: VALIDATED_KEY\n Added File Credentials: 3\n Deleted File Credentials: 0\n @@ -183,35 +177,6 @@ def test_it_works_with_multiline_in_patch_p(self) -> None: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - @pytest.mark.api_validation_test # use the mark to skip the test due cannot be mocked - @pytest.mark.skipif(0 != subprocess.call(["curl", "https://maps.googleapis.com/"]), - reason="network is not available") - def test_it_works_with_api_p(self) -> None: - target_path = str(SAMPLES_PATH / "google_api_key.toml") - _stdout, _stderr = self._m_credsweeper( - ["--path", target_path, "--ml_threshold", "0", "--api_validation", "--log", "silence"], ) - output = " ".join(_stdout.split()[:-1]) - - expected = f""" - rule: Google API Key - | severity: high - | confidence: moderate - | line_data_list: - [line: 'AIzaGiReoG-CrackleCrackle12315618_12315' - | line_num: 1 - | path: {target_path} - | value: 'AIzaGiReoG-CrackleCrackle12315618_12315' - | entropy_validation: BASE36_CHARS 3.165196 True] - | api_validation: INVALID_KEY - | ml_validation: NOT_AVAILABLE\n - Detected Credentials: 1\n - Time Elapsed: - """ - expected = " ".join(expected.split()) - self.assertEqual(expected, output) - - # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - def test_it_works_with_patch_color_p(self) -> None: target_path = str(SAMPLES_PATH / "password.patch") _stdout, _stderr = self._m_credsweeper(["--diff_path", target_path, "--log", "silence", "--color"]) @@ -252,7 +217,6 @@ def test_it_works_n(self) -> None: " [--ml_config PATH]" \ " [--ml_model PATH]" \ " [--ml_providers STR] " \ - " [--api_validation]" \ " [--jobs POSITIVE_INT]" \ " [--skip_ignored]" \ " [--save-json [PATH]]" \ diff --git a/tests/test_main.py b/tests/test_main.py index 8961f59ee..48b7dec94 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -52,43 +52,6 @@ def test_ml_validation_n(self) -> None: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - def test_api_validation_p(self) -> None: - cred_sweeper = CredSweeper(api_validation=True) - self.assertTrue(cred_sweeper.config.api_validation) - - # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - - def test_api_validation_n(self) -> None: - cred_sweeper = CredSweeper(api_validation=False) - self.assertFalse(cred_sweeper.config.api_validation) - - # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - - def test_api_validators_p(self) -> None: - cred_sweeper = CredSweeper(api_validation=True) - content_provider: AbstractProvider = FilesProvider([SAMPLES_PATH]) - file_extractors = content_provider.get_scannable_files(cred_sweeper.config) - candidates: List[Candidate] = [] - for file in file_extractors: - candidates += cred_sweeper.file_scan(file) - known_validators: Set[str] = { # - "GithubTokenValidation", # - "GoogleApiKeyValidation", # - "GoogleMultiValidation", # - "MailChimpKeyValidation", # - "SlackTokenValidation", # - "SquareAccessTokenValidation", # - "SquareClientIdValidation", # - "StripeApiKeyValidation" - } - found_validators: Set[str] = set() - for candidate in candidates: - for validator in candidate.validations: - found_validators.add(type(validator).__name__) - self.assertEqual(known_validators, found_validators) - - # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - def test_use_filters_p(self) -> None: cred_sweeper = CredSweeper(use_filters=True) files_provider = [TextContentProvider(SAMPLES_PATH / "password_FALSE")] @@ -174,7 +137,6 @@ def test_main_path_p(self, mock_get_arguments) -> None: doc=False, severity="info", size_limit="1G", - api_validation=False, denylist_path=None) mock_get_arguments.return_value = args_mock self.assertEqual(EXIT_SUCCESS, app_main.main()) @@ -209,7 +171,6 @@ def test_binary_patch_p(self, mock_get_arguments) -> None: doc=False, severity="info", size_limit="1G", - api_validation=False, denylist_path=None) mock_get_arguments.return_value = args_mock self.assertEqual(EXIT_SUCCESS, app_main.main()) @@ -264,7 +225,6 @@ def test_report_p(self, mock_get_arguments) -> None: doc=False, size_limit="1G", find_by_ext=False, - api_validation=False, denylist_path=None, severity=Severity.INFO) mock_get_arguments.return_value = args_mock diff --git a/tests/test_utils/dummy_line_data.py b/tests/test_utils/dummy_line_data.py index 8c16ea342..1bc24c69f 100644 --- a/tests/test_utils/dummy_line_data.py +++ b/tests/test_utils/dummy_line_data.py @@ -11,8 +11,6 @@ def config() -> Config: config_dict = Util.json_load(APP_PATH / "secret" / "config.json") - config_dict["validation"] = {} - config_dict["validation"]["api_validation"] = False config_dict["use_filters"] = True config_dict["find_by_ext"] = False config_dict["depth"] = 0 diff --git a/tests/validation/__init__.py b/tests/validation/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/validation/test_github_token_validation.py b/tests/validation/test_github_token_validation.py deleted file mode 100644 index f8e7627c3..000000000 --- a/tests/validation/test_github_token_validation.py +++ /dev/null @@ -1,35 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import GithubTokenValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestGithubTokenValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="abcrefrhirklhnoiqrjturwxvz0193496799afcd") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - with patch.object(requests, requests.get.__name__, return_value=response): - validation_result = GithubTokenValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 401 - with patch.object(requests, requests.get.__name__, return_value=response): - validation_result = GithubTokenValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_google_api_key_validation.py b/tests/validation/test_google_api_key_validation.py deleted file mode 100644 index 0fde79e1e..000000000 --- a/tests/validation/test_google_api_key_validation.py +++ /dev/null @@ -1,37 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import GoogleApiKeyValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestGoogleApiKeyValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="AIzaGiReoGiCrackleCrackle12305670912045") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - response._content = b'{"status":true}' - with patch.object(requests, requests.get.__name__, return_value=response): - validation_result = GoogleApiKeyValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - response._content = b'{"status":"REQUEST_DENIED","error_message":"The provided API key is invalid."}' - with patch.object(requests, requests.get.__name__, return_value=response): - validation_result = GoogleApiKeyValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_google_multi_validation.py b/tests/validation/test_google_multi_validation.py deleted file mode 100644 index 25ef501b3..000000000 --- a/tests/validation/test_google_multi_validation.py +++ /dev/null @@ -1,40 +0,0 @@ -from typing import List -from unittest.mock import MagicMock, patch - -import pytest -from google_auth_oauthlib.flow import InstalledAppFlow -from oauthlib.oauth2 import InvalidGrantError - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import GoogleMultiValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestGoogleMultiValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="AIzaGiReoGiCrackleCrackle12305670912045") - line_data_list.append(line_data) - line_data.value = "AaBbCcDdEeFfGgHhIiJjKkLl" - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - with patch.object(InstalledAppFlow, InstalledAppFlow.from_client_config.__name__) as mock: - flow = MagicMock() - flow.fetch_token.side_effect = InvalidGrantError('fuzz InvalidGrantError') - mock.return_value = flow - validation_result = GoogleMultiValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - with patch.object(InstalledAppFlow, InstalledAppFlow.from_client_config.__name__) as mock: - flow = MagicMock() - flow.fetch_token.side_effect = Exception('fuzz flow Exception') - # InvalidGrantError('fuzz InvalidGrantError') - mock.return_value = flow - validation_result = GoogleMultiValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_mailchimp_key_validation.py b/tests/validation/test_mailchimp_key_validation.py deleted file mode 100644 index 213820da3..000000000 --- a/tests/validation/test_mailchimp_key_validation.py +++ /dev/null @@ -1,35 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import MailChimpKeyValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestMailChimpKeyValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="abcfefabcaef01294569890223496799-us12") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - with patch.object(requests, requests.get.__name__, return_value=response): - validation_result = MailChimpKeyValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 401 - with patch.object(requests, requests.get.__name__, return_value=response): - validation_result = MailChimpKeyValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_slack_token_validation.py b/tests/validation/test_slack_token_validation.py deleted file mode 100644 index 408dd8f89..000000000 --- a/tests/validation/test_slack_token_validation.py +++ /dev/null @@ -1,36 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import SlackTokenValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestSlackTokenValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="xoxa-gireogi-12305670910-sampletoken") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - response._content = b'{"ok":true}' - with patch.object(requests, requests.post.__name__, return_value=response): - validation_result = SlackTokenValidation.verify(line_data_list) - assert validation_result == KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 401 - with patch.object(requests, requests.post.__name__, return_value=response): - validation_result = SlackTokenValidation.verify(line_data_list) - assert validation_result != KeyValidationOption.VALIDATED_KEY diff --git a/tests/validation/test_square_access_token_validation.py b/tests/validation/test_square_access_token_validation.py deleted file mode 100644 index d60ba7dc9..000000000 --- a/tests/validation/test_square_access_token_validation.py +++ /dev/null @@ -1,35 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import SquareAccessTokenValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestSquareAccessTokenValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="EAAAEEPtuW9FnP_CuCV-GIREOGIGIREOGIGIREOGIGIREOGIGIREOGIGIREOGIGI") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - with patch(requests.__name__ + "." + requests.post.__name__, return_value=response): - validation_result = SquareAccessTokenValidation.verify(line_data_list) - assert validation_result is KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 401 - with patch(requests.__name__ + "." + requests.post.__name__, return_value=response): - validation_result = SquareAccessTokenValidation.verify(line_data_list) - assert validation_result is KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_square_client_id_validation.py b/tests/validation/test_square_client_id_validation.py deleted file mode 100644 index 31e6213a8..000000000 --- a/tests/validation/test_square_client_id_validation.py +++ /dev/null @@ -1,35 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import SquareClientIdValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestSquareClientIdValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="sq0idp-1235567212325-12355672") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response._content = b"You are being redirected" - with patch(requests.__name__ + "." + requests.get.__name__, return_value=response): - validation_result = SquareClientIdValidation.verify(line_data_list) - assert validation_result is KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response._content = b"Unable to find client by that `client_id`" - with patch(requests.__name__ + "." + requests.get.__name__, return_value=response): - validation_result = SquareClientIdValidation.verify(line_data_list) - assert validation_result is KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_stripe_api_key_validation.py b/tests/validation/test_stripe_api_key_validation.py deleted file mode 100644 index 554ddfa08..000000000 --- a/tests/validation/test_stripe_api_key_validation.py +++ /dev/null @@ -1,36 +0,0 @@ -from typing import List -from unittest.mock import patch - -import pytest -import requests -from requests import Response - -from credsweeper.common.constants import KeyValidationOption -from credsweeper.credentials import LineData -from credsweeper.validations import StripeApiKeyValidation -from tests.test_utils.dummy_line_data import get_line_data - - -class TestStripeApiKeyValidation: - - @pytest.fixture - def line_data_list(self) -> List[LineData]: - line_data_list = [] - line_data = get_line_data(line="sk_live_abcfefgyijkgmnoqqrsjuvwtyz0128456989ABCFEFGAI" \ - "JDLANOPRRSTHVWQYZ0128456989abcfefgyijkgmnoqqrsjuvwtyz0") - line_data_list.append(line_data) - return line_data_list - - def test_verify_p(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 200 - with patch(requests.__name__ + "." + requests.get.__name__, return_value=response): - validation_result = StripeApiKeyValidation.verify(line_data_list) - assert validation_result is KeyValidationOption.VALIDATED_KEY - - def test_verify_n(self, line_data_list: pytest.fixture) -> None: - response = Response() - response.status_code = 401 - with patch(requests.__name__ + "." + requests.get.__name__, return_value=response): - validation_result = StripeApiKeyValidation.verify(line_data_list) - assert validation_result is KeyValidationOption.INVALID_KEY diff --git a/tests/validation/test_validation.py b/tests/validation/test_validation.py deleted file mode 100644 index f8fb7735a..000000000 --- a/tests/validation/test_validation.py +++ /dev/null @@ -1,152 +0,0 @@ -import re -from unittest import mock -from unittest.mock import patch, MagicMock - -import pytest -from oauthlib.oauth2 import InvalidGrantError -from requests import Response - -from credsweeper.common.constants import Severity, KeyValidationOption -from credsweeper.credentials import Candidate, LineData -from credsweeper.validations import \ - GithubTokenValidation, \ - GoogleApiKeyValidation, \ - StripeApiKeyValidation, \ - GoogleMultiValidation, \ - SquareClientIdValidation, \ - SquareAccessTokenValidation, \ - SlackTokenValidation, \ - MailChimpKeyValidation -from credsweeper.validations.apply_validation import ApplyValidation - - -def mocked_requests_get(*args, **kwargs): - response = Response() - response.status_code = 200 - response._content = b'' - return response - - -def mocked_requests_post(*args, **kwargs): - response = Response() - response.status_code = 200 - response._content = b'' - return response - - -@mock.patch('requests.get', mock.Mock(side_effect=mocked_requests_get)) -@mock.patch('requests.post', mock.Mock(side_effect=mocked_requests_post)) -@pytest.mark.parametrize( # - "validator", # - [ # - GithubTokenValidation, # - GoogleApiKeyValidation, # - GoogleMultiValidation, # - MailChimpKeyValidation, # - SlackTokenValidation, # - SquareAccessTokenValidation, # - SquareClientIdValidation, # - StripeApiKeyValidation # - ]) -def test_mocked_validation_n(validator): - candidate = Candidate( - line_data_list=[ # - LineData({}, - line="dummy line 1", - line_pos=0, - line_num=1, - path="dummy path 1", - file_type=".type1", - info="info", - pattern=re.compile('.*')), - LineData({}, - line="dummy line 2", - line_pos=1, - line_num=2, - path="dummy path 2", - file_type=".type2", - info="info", - pattern=re.compile('.*')) - ], - patterns=[re.compile('.*')], # - rule_name="Dummy candidate", # - severity=Severity.INFO, # - config=None, # - validations=[validator]) - candidate.line_data_list[0].value = "-" - - assert candidate.api_validation == KeyValidationOption.NOT_AVAILABLE - - apply_validation = ApplyValidation() - assert apply_validation.validate(candidate) in [ # - KeyValidationOption.VALIDATED_KEY, # - KeyValidationOption.UNDECIDED, # - KeyValidationOption.INVALID_KEY, # - KeyValidationOption.NOT_AVAILABLE # - ] - - -def test_google_multi_n(): - candidate = Candidate( - line_data_list=[ # - LineData({}, - line="dummy line 1", - line_pos=0, - line_num=1, - path="dummy path 1", - file_type=".type1", - info="info", - pattern=re.compile('.*')), - LineData({}, - line="dummy line 2", - line_pos=1, - line_num=2, - path="dummy path 2", - file_type=".type2", - info="info", - pattern=re.compile('.*')) - ], - patterns=[re.compile('.*')], # - rule_name="Dummy candidate", # - severity=Severity.INFO, # - config=None, # - validations=[GoogleMultiValidation]) - with patch("google_auth_oauthlib.flow.InstalledAppFlow.from_client_config") as mock_flow: - flow = MagicMock() - flow.fetch_token.side_effect = InvalidGrantError('dummy') - mock_flow.return_value = flow - apply_validation = ApplyValidation() - assert apply_validation.validate(candidate) == KeyValidationOption.VALIDATED_KEY - - -def mocked_requests_get_403(*args, **kwargs): - response = Response() - response.status_code = 403 - response._content = b'{}' - return response - - -@mock.patch('requests.get', mock.Mock(side_effect=mocked_requests_get_403)) -def test_stripe_validation_n(): - candidate = Candidate( - line_data_list=[ # - LineData({}, - line="dummy line 1", - line_pos=0, - line_num=1, - path="dummy path 1", - file_type=".type1", - info="info", - pattern=re.compile('.*')) - ], - patterns=[re.compile('.*')], # - rule_name="Dummy candidate", # - severity=Severity.INFO, # - config=None, # - validations=[StripeApiKeyValidation]) - candidate.line_data_list[0].value = "-" - - assert candidate.api_validation == KeyValidationOption.NOT_AVAILABLE - - apply_validation = ApplyValidation() - assert KeyValidationOption.UNDECIDED == apply_validation.validate(candidate)