regscale-cli 6.21.0.0__py3-none-any.whl → 6.21.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- regscale/_version.py +1 -1
- regscale/core/app/application.py +7 -0
- regscale/integrations/commercial/__init__.py +9 -10
- regscale/integrations/commercial/amazon/common.py +79 -2
- regscale/integrations/commercial/aws/cli.py +183 -9
- regscale/integrations/commercial/aws/scanner.py +544 -9
- regscale/integrations/commercial/cpe.py +18 -1
- regscale/integrations/commercial/import_all/import_all_cmd.py +2 -2
- regscale/integrations/commercial/microsoft_defender/__init__.py +0 -0
- regscale/integrations/commercial/{defender.py → microsoft_defender/defender.py} +38 -612
- regscale/integrations/commercial/microsoft_defender/defender_api.py +286 -0
- regscale/integrations/commercial/microsoft_defender/defender_constants.py +80 -0
- regscale/integrations/commercial/microsoft_defender/defender_scanner.py +168 -0
- regscale/integrations/commercial/qualys/__init__.py +24 -86
- regscale/integrations/commercial/qualys/containers.py +2 -0
- regscale/integrations/commercial/qualys/scanner.py +7 -2
- regscale/integrations/commercial/sonarcloud.py +110 -71
- regscale/integrations/commercial/tenablev2/jsonl_scanner.py +2 -1
- regscale/integrations/commercial/wizv2/async_client.py +10 -3
- regscale/integrations/commercial/wizv2/click.py +105 -26
- regscale/integrations/commercial/wizv2/constants.py +249 -1
- regscale/integrations/commercial/wizv2/data_fetcher.py +401 -0
- regscale/integrations/commercial/wizv2/finding_processor.py +295 -0
- regscale/integrations/commercial/wizv2/issue.py +2 -2
- regscale/integrations/commercial/wizv2/parsers.py +3 -2
- regscale/integrations/commercial/wizv2/policy_compliance.py +3057 -0
- regscale/integrations/commercial/wizv2/policy_compliance_helpers.py +564 -0
- regscale/integrations/commercial/wizv2/scanner.py +19 -25
- regscale/integrations/commercial/wizv2/utils.py +258 -85
- regscale/integrations/commercial/wizv2/variables.py +4 -3
- regscale/integrations/compliance_integration.py +1607 -0
- regscale/integrations/public/fedramp/fedramp_five.py +93 -8
- regscale/integrations/public/fedramp/markdown_parser.py +7 -1
- regscale/integrations/scanner_integration.py +57 -6
- regscale/models/__init__.py +1 -1
- regscale/models/app_models/__init__.py +1 -0
- regscale/models/integration_models/cisa_kev_data.json +103 -4
- regscale/models/integration_models/synqly_models/capabilities.json +1 -1
- regscale/{integrations/commercial/wizv2/models.py → models/integration_models/wizv2.py} +4 -12
- regscale/models/regscale_models/file.py +4 -0
- regscale/models/regscale_models/issue.py +151 -8
- regscale/models/regscale_models/regscale_model.py +4 -2
- regscale/models/regscale_models/security_plan.py +1 -1
- regscale/utils/graphql_client.py +3 -1
- {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/METADATA +9 -9
- {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/RECORD +52 -44
- tests/regscale/core/test_version_regscale.py +5 -3
- tests/regscale/integrations/test_wiz_policy_compliance_affected_controls.py +154 -0
- tests/regscale/test_authorization.py +0 -65
- tests/regscale/test_init.py +0 -96
- {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/LICENSE +0 -0
- {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/WHEEL +0 -0
- {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/entry_points.txt +0 -0
- {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/top_level.txt +0 -0
|
@@ -262,12 +262,12 @@ class WizIssue(WizVulnerabilityIntegration):
|
|
|
262
262
|
return "Wiz-Event"
|
|
263
263
|
if not name:
|
|
264
264
|
return f"Wiz-{service_type}-Event"
|
|
265
|
-
event_match = re.match(r"^([A-Za-z\s]+?)\s+(
|
|
265
|
+
event_match = re.match(r"^([A-Za-z\s]+?)\s+(detection|event|alert|activity)", name)
|
|
266
266
|
if not event_match:
|
|
267
267
|
return f"Wiz-{service_type}-Event"
|
|
268
268
|
|
|
269
269
|
event_type = event_match.group(1).strip()
|
|
270
|
-
if event_type == "Suspicious activity":
|
|
270
|
+
if event_type == "Suspicious" and event_match.group(2).strip().lower() == "activity":
|
|
271
271
|
return f"Wiz-{service_type}-SuspiciousActivity"
|
|
272
272
|
|
|
273
273
|
event_type = "".join(word.capitalize() for word in event_type.split())
|
|
@@ -76,11 +76,12 @@ def get_software_name_from_cpe(wiz_entity_properties: Dict, name: str) -> Dict:
|
|
|
76
76
|
"""
|
|
77
77
|
cpe_info_dict = {
|
|
78
78
|
"name": name,
|
|
79
|
+
"part": None,
|
|
79
80
|
"software_name": None,
|
|
80
81
|
"software_version": None,
|
|
81
82
|
"software_vendor": None,
|
|
82
83
|
}
|
|
83
|
-
if "cpe" in wiz_entity_properties
|
|
84
|
+
if "cpe" in wiz_entity_properties and wiz_entity_properties.get("cpe"):
|
|
84
85
|
cpe_info_dict = extract_product_name_and_version(wiz_entity_properties.get("cpe", ""))
|
|
85
86
|
cpe_info_dict["name"] = name
|
|
86
87
|
return cpe_info_dict
|
|
@@ -349,7 +350,7 @@ def get_ip_address(
|
|
|
349
350
|
ip6_address = None
|
|
350
351
|
dns = None
|
|
351
352
|
url = None
|
|
352
|
-
if "address" in wiz_entity_properties
|
|
353
|
+
if "address" in wiz_entity_properties:
|
|
353
354
|
if wiz_entity_properties.get("addressType") == "IPV4":
|
|
354
355
|
ip4_address = wiz_entity_properties.get("address")
|
|
355
356
|
elif wiz_entity_properties.get("addressType") == "IPV6":
|