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.
Files changed (54) hide show
  1. regscale/_version.py +1 -1
  2. regscale/core/app/application.py +7 -0
  3. regscale/integrations/commercial/__init__.py +9 -10
  4. regscale/integrations/commercial/amazon/common.py +79 -2
  5. regscale/integrations/commercial/aws/cli.py +183 -9
  6. regscale/integrations/commercial/aws/scanner.py +544 -9
  7. regscale/integrations/commercial/cpe.py +18 -1
  8. regscale/integrations/commercial/import_all/import_all_cmd.py +2 -2
  9. regscale/integrations/commercial/microsoft_defender/__init__.py +0 -0
  10. regscale/integrations/commercial/{defender.py → microsoft_defender/defender.py} +38 -612
  11. regscale/integrations/commercial/microsoft_defender/defender_api.py +286 -0
  12. regscale/integrations/commercial/microsoft_defender/defender_constants.py +80 -0
  13. regscale/integrations/commercial/microsoft_defender/defender_scanner.py +168 -0
  14. regscale/integrations/commercial/qualys/__init__.py +24 -86
  15. regscale/integrations/commercial/qualys/containers.py +2 -0
  16. regscale/integrations/commercial/qualys/scanner.py +7 -2
  17. regscale/integrations/commercial/sonarcloud.py +110 -71
  18. regscale/integrations/commercial/tenablev2/jsonl_scanner.py +2 -1
  19. regscale/integrations/commercial/wizv2/async_client.py +10 -3
  20. regscale/integrations/commercial/wizv2/click.py +105 -26
  21. regscale/integrations/commercial/wizv2/constants.py +249 -1
  22. regscale/integrations/commercial/wizv2/data_fetcher.py +401 -0
  23. regscale/integrations/commercial/wizv2/finding_processor.py +295 -0
  24. regscale/integrations/commercial/wizv2/issue.py +2 -2
  25. regscale/integrations/commercial/wizv2/parsers.py +3 -2
  26. regscale/integrations/commercial/wizv2/policy_compliance.py +3057 -0
  27. regscale/integrations/commercial/wizv2/policy_compliance_helpers.py +564 -0
  28. regscale/integrations/commercial/wizv2/scanner.py +19 -25
  29. regscale/integrations/commercial/wizv2/utils.py +258 -85
  30. regscale/integrations/commercial/wizv2/variables.py +4 -3
  31. regscale/integrations/compliance_integration.py +1607 -0
  32. regscale/integrations/public/fedramp/fedramp_five.py +93 -8
  33. regscale/integrations/public/fedramp/markdown_parser.py +7 -1
  34. regscale/integrations/scanner_integration.py +57 -6
  35. regscale/models/__init__.py +1 -1
  36. regscale/models/app_models/__init__.py +1 -0
  37. regscale/models/integration_models/cisa_kev_data.json +103 -4
  38. regscale/models/integration_models/synqly_models/capabilities.json +1 -1
  39. regscale/{integrations/commercial/wizv2/models.py → models/integration_models/wizv2.py} +4 -12
  40. regscale/models/regscale_models/file.py +4 -0
  41. regscale/models/regscale_models/issue.py +151 -8
  42. regscale/models/regscale_models/regscale_model.py +4 -2
  43. regscale/models/regscale_models/security_plan.py +1 -1
  44. regscale/utils/graphql_client.py +3 -1
  45. {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/METADATA +9 -9
  46. {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/RECORD +52 -44
  47. tests/regscale/core/test_version_regscale.py +5 -3
  48. tests/regscale/integrations/test_wiz_policy_compliance_affected_controls.py +154 -0
  49. tests/regscale/test_authorization.py +0 -65
  50. tests/regscale/test_init.py +0 -96
  51. {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/LICENSE +0 -0
  52. {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/WHEEL +0 -0
  53. {regscale_cli-6.21.0.0.dist-info → regscale_cli-6.21.2.0.dist-info}/entry_points.txt +0 -0
  54. {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.click import import_nessus
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