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
|
@@ -109,6 +109,23 @@ def extract_product_name_and_version(cpe_string: str) -> Dict:
|
|
|
109
109
|
:rtype: Dict
|
|
110
110
|
"""
|
|
111
111
|
# convert to version 2.3 if 2.2
|
|
112
|
+
# TODO: Note this is an incomplete conversion as the additional properties
|
|
113
|
+
# in the URI format (which is still supported in 2.3) are separated by
|
|
114
|
+
# tildes (~) after the final colon. We should extend this to support them
|
|
115
|
+
# at some point to be safe. Example from NISTIR7697 the 2.3 dictionary
|
|
116
|
+
# specification:
|
|
117
|
+
#
|
|
118
|
+
# WFN:
|
|
119
|
+
# wfn:[part="o",vendor="microsoft",product="windows_vista",version="6\.0",
|
|
120
|
+
# update="sp1",edition=NA,language=NA,sw_edition="home_premium",
|
|
121
|
+
# target_sw=NA,target_hw="x64",other=NA]
|
|
122
|
+
#
|
|
123
|
+
# WFN bound to a URI:
|
|
124
|
+
# cpe:/o:microsoft:windows_vista:6.0:sp1:~-~home_premium~-~x64~-
|
|
125
|
+
#
|
|
126
|
+
# WFN bound to a formatted string:
|
|
127
|
+
# cpe:2.3:o:microsoft:windows_vista:6.0:sp1:-:-:home_premium:-:x64:-
|
|
128
|
+
#
|
|
112
129
|
if cpe_string.startswith("cpe:/"):
|
|
113
130
|
cpe_string = cpe_string.replace("cpe:/", "cpe:2.3:")
|
|
114
131
|
|
|
@@ -117,7 +134,7 @@ def extract_product_name_and_version(cpe_string: str) -> Dict:
|
|
|
117
134
|
|
|
118
135
|
# Extract the product name and version
|
|
119
136
|
# parts[3] is the product name, parts[4] is the version
|
|
120
|
-
part = parts[2]
|
|
137
|
+
part = parts[2] if len(parts) > 2 else None
|
|
121
138
|
logger.debug(f"part: {part}")
|
|
122
139
|
vendor_name = parts[3] if len(parts) > 3 else None
|
|
123
140
|
product_name = parts[4] if len(parts) > 4 else None
|
|
@@ -87,7 +87,7 @@ def import_all_scans(
|
|
|
87
87
|
from regscale.integrations.commercial.aqua.aqua import import_aqua
|
|
88
88
|
from regscale.integrations.commercial.aws.cli import import_scans as import_aws
|
|
89
89
|
from regscale.integrations.commercial.burp import import_burp
|
|
90
|
-
from regscale.integrations.commercial.defender import import_alerts
|
|
90
|
+
from regscale.integrations.commercial.microsoft_defender.defender import import_alerts
|
|
91
91
|
from regscale.integrations.commercial.ecr import import_ecr
|
|
92
92
|
from regscale.integrations.commercial.grype.commands import import_scans as import_grype_scans
|
|
93
93
|
from regscale.integrations.commercial.ibm import import_appscan
|
|
@@ -96,7 +96,7 @@ def import_all_scans(
|
|
|
96
96
|
from regscale.integrations.commercial.prisma import import_prisma
|
|
97
97
|
from regscale.integrations.commercial.qualys import import_scans as import_qualys
|
|
98
98
|
from regscale.integrations.commercial.snyk import import_snyk
|
|
99
|
-
from regscale.integrations.commercial.tenablev2.
|
|
99
|
+
from regscale.integrations.commercial.tenablev2.commands import import_nessus
|
|
100
100
|
from regscale.integrations.commercial.trivy import import_scans as import_trivy_scans
|
|
101
101
|
from regscale.integrations.commercial.veracode import import_veracode
|
|
102
102
|
from regscale.integrations.commercial.xray import import_xray
|
|
File without changes
|