regscale-cli 6.21.2.0__py3-none-any.whl → 6.28.2.1__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 (314) hide show
  1. regscale/_version.py +1 -1
  2. regscale/airflow/hierarchy.py +2 -2
  3. regscale/core/app/api.py +5 -2
  4. regscale/core/app/application.py +36 -6
  5. regscale/core/app/internal/control_editor.py +73 -21
  6. regscale/core/app/internal/evidence.py +727 -204
  7. regscale/core/app/internal/login.py +4 -2
  8. regscale/core/app/internal/model_editor.py +219 -64
  9. regscale/core/app/utils/app_utils.py +86 -12
  10. regscale/core/app/utils/catalog_utils/common.py +1 -1
  11. regscale/core/login.py +21 -4
  12. regscale/core/utils/async_graphql_client.py +363 -0
  13. regscale/core/utils/date.py +77 -1
  14. regscale/dev/cli.py +26 -0
  15. regscale/dev/code_gen.py +109 -24
  16. regscale/dev/version.py +72 -0
  17. regscale/integrations/commercial/__init__.py +30 -2
  18. regscale/integrations/commercial/aws/audit_manager_compliance.py +3908 -0
  19. regscale/integrations/commercial/aws/cli.py +3107 -54
  20. regscale/integrations/commercial/aws/cloudtrail_control_mappings.py +333 -0
  21. regscale/integrations/commercial/aws/cloudtrail_evidence.py +501 -0
  22. regscale/integrations/commercial/aws/cloudwatch_control_mappings.py +357 -0
  23. regscale/integrations/commercial/aws/cloudwatch_evidence.py +490 -0
  24. regscale/integrations/commercial/{amazon → aws}/common.py +71 -19
  25. regscale/integrations/commercial/aws/config_compliance.py +914 -0
  26. regscale/integrations/commercial/aws/conformance_pack_mappings.py +198 -0
  27. regscale/integrations/commercial/aws/control_compliance_analyzer.py +439 -0
  28. regscale/integrations/commercial/aws/evidence_generator.py +283 -0
  29. regscale/integrations/commercial/aws/guardduty_control_mappings.py +340 -0
  30. regscale/integrations/commercial/aws/guardduty_evidence.py +1053 -0
  31. regscale/integrations/commercial/aws/iam_control_mappings.py +368 -0
  32. regscale/integrations/commercial/aws/iam_evidence.py +574 -0
  33. regscale/integrations/commercial/aws/inventory/__init__.py +338 -22
  34. regscale/integrations/commercial/aws/inventory/base.py +107 -5
  35. regscale/integrations/commercial/aws/inventory/resources/analytics.py +390 -0
  36. regscale/integrations/commercial/aws/inventory/resources/applications.py +234 -0
  37. regscale/integrations/commercial/aws/inventory/resources/audit_manager.py +513 -0
  38. regscale/integrations/commercial/aws/inventory/resources/cloudtrail.py +315 -0
  39. regscale/integrations/commercial/aws/inventory/resources/cloudtrail_logs_metadata.py +476 -0
  40. regscale/integrations/commercial/aws/inventory/resources/cloudwatch.py +191 -0
  41. regscale/integrations/commercial/aws/inventory/resources/compute.py +328 -9
  42. regscale/integrations/commercial/aws/inventory/resources/config.py +464 -0
  43. regscale/integrations/commercial/aws/inventory/resources/containers.py +74 -9
  44. regscale/integrations/commercial/aws/inventory/resources/database.py +481 -31
  45. regscale/integrations/commercial/aws/inventory/resources/developer_tools.py +253 -0
  46. regscale/integrations/commercial/aws/inventory/resources/guardduty.py +286 -0
  47. regscale/integrations/commercial/aws/inventory/resources/iam.py +470 -0
  48. regscale/integrations/commercial/aws/inventory/resources/inspector.py +476 -0
  49. regscale/integrations/commercial/aws/inventory/resources/integration.py +175 -61
  50. regscale/integrations/commercial/aws/inventory/resources/kms.py +447 -0
  51. regscale/integrations/commercial/aws/inventory/resources/machine_learning.py +358 -0
  52. regscale/integrations/commercial/aws/inventory/resources/networking.py +390 -67
  53. regscale/integrations/commercial/aws/inventory/resources/s3.py +394 -0
  54. regscale/integrations/commercial/aws/inventory/resources/security.py +268 -72
  55. regscale/integrations/commercial/aws/inventory/resources/securityhub.py +473 -0
  56. regscale/integrations/commercial/aws/inventory/resources/storage.py +288 -29
  57. regscale/integrations/commercial/aws/inventory/resources/systems_manager.py +657 -0
  58. regscale/integrations/commercial/aws/inventory/resources/vpc.py +655 -0
  59. regscale/integrations/commercial/aws/kms_control_mappings.py +288 -0
  60. regscale/integrations/commercial/aws/kms_evidence.py +879 -0
  61. regscale/integrations/commercial/aws/ocsf/__init__.py +7 -0
  62. regscale/integrations/commercial/aws/ocsf/constants.py +115 -0
  63. regscale/integrations/commercial/aws/ocsf/mapper.py +435 -0
  64. regscale/integrations/commercial/aws/org_control_mappings.py +286 -0
  65. regscale/integrations/commercial/aws/org_evidence.py +666 -0
  66. regscale/integrations/commercial/aws/s3_control_mappings.py +356 -0
  67. regscale/integrations/commercial/aws/s3_evidence.py +632 -0
  68. regscale/integrations/commercial/aws/scanner.py +1072 -205
  69. regscale/integrations/commercial/aws/security_hub.py +319 -0
  70. regscale/integrations/commercial/aws/session_manager.py +282 -0
  71. regscale/integrations/commercial/aws/ssm_control_mappings.py +291 -0
  72. regscale/integrations/commercial/aws/ssm_evidence.py +492 -0
  73. regscale/integrations/commercial/jira.py +489 -153
  74. regscale/integrations/commercial/microsoft_defender/defender.py +326 -5
  75. regscale/integrations/commercial/microsoft_defender/defender_api.py +348 -14
  76. regscale/integrations/commercial/microsoft_defender/defender_constants.py +157 -0
  77. regscale/integrations/commercial/qualys/__init__.py +167 -68
  78. regscale/integrations/commercial/qualys/scanner.py +305 -39
  79. regscale/integrations/commercial/sarif/sairf_importer.py +432 -0
  80. regscale/integrations/commercial/sarif/sarif_converter.py +67 -0
  81. regscale/integrations/commercial/sicura/api.py +79 -42
  82. regscale/integrations/commercial/sicura/commands.py +8 -2
  83. regscale/integrations/commercial/sicura/scanner.py +83 -44
  84. regscale/integrations/commercial/stigv2/ckl_parser.py +5 -5
  85. regscale/integrations/commercial/synqly/assets.py +133 -16
  86. regscale/integrations/commercial/synqly/edr.py +2 -8
  87. regscale/integrations/commercial/synqly/query_builder.py +536 -0
  88. regscale/integrations/commercial/synqly/ticketing.py +27 -0
  89. regscale/integrations/commercial/synqly/vulnerabilities.py +165 -28
  90. regscale/integrations/commercial/tenablev2/cis_parsers.py +453 -0
  91. regscale/integrations/commercial/tenablev2/cis_scanner.py +447 -0
  92. regscale/integrations/commercial/tenablev2/commands.py +146 -5
  93. regscale/integrations/commercial/tenablev2/scanner.py +1 -3
  94. regscale/integrations/commercial/tenablev2/stig_parsers.py +113 -57
  95. regscale/integrations/commercial/wizv2/WizDataMixin.py +1 -1
  96. regscale/integrations/commercial/wizv2/click.py +191 -76
  97. regscale/integrations/commercial/wizv2/compliance/__init__.py +15 -0
  98. regscale/integrations/commercial/wizv2/{policy_compliance_helpers.py → compliance/helpers.py} +78 -60
  99. regscale/integrations/commercial/wizv2/compliance_report.py +1592 -0
  100. regscale/integrations/commercial/wizv2/core/__init__.py +133 -0
  101. regscale/integrations/commercial/wizv2/{async_client.py → core/client.py} +7 -3
  102. regscale/integrations/commercial/wizv2/{constants.py → core/constants.py} +92 -89
  103. regscale/integrations/commercial/wizv2/core/file_operations.py +237 -0
  104. regscale/integrations/commercial/wizv2/fetchers/__init__.py +11 -0
  105. regscale/integrations/commercial/wizv2/{data_fetcher.py → fetchers/policy_assessment.py} +66 -9
  106. regscale/integrations/commercial/wizv2/file_cleanup.py +104 -0
  107. regscale/integrations/commercial/wizv2/issue.py +776 -28
  108. regscale/integrations/commercial/wizv2/models/__init__.py +0 -0
  109. regscale/integrations/commercial/wizv2/parsers/__init__.py +34 -0
  110. regscale/integrations/commercial/wizv2/{parsers.py → parsers/main.py} +1 -1
  111. regscale/integrations/commercial/wizv2/processors/__init__.py +11 -0
  112. regscale/integrations/commercial/wizv2/{finding_processor.py → processors/finding.py} +1 -1
  113. regscale/integrations/commercial/wizv2/reports.py +243 -0
  114. regscale/integrations/commercial/wizv2/sbom.py +1 -1
  115. regscale/integrations/commercial/wizv2/scanner.py +1031 -441
  116. regscale/integrations/commercial/wizv2/utils/__init__.py +48 -0
  117. regscale/integrations/commercial/wizv2/{utils.py → utils/main.py} +116 -61
  118. regscale/integrations/commercial/wizv2/variables.py +89 -3
  119. regscale/integrations/compliance_integration.py +1036 -151
  120. regscale/integrations/control_matcher.py +432 -0
  121. regscale/integrations/due_date_handler.py +333 -0
  122. regscale/integrations/milestone_manager.py +291 -0
  123. regscale/integrations/public/__init__.py +14 -0
  124. regscale/integrations/public/cci_importer.py +834 -0
  125. regscale/integrations/public/csam/__init__.py +0 -0
  126. regscale/integrations/public/csam/csam.py +938 -0
  127. regscale/integrations/public/csam/csam_agency_defined.py +179 -0
  128. regscale/integrations/public/csam/csam_common.py +154 -0
  129. regscale/integrations/public/csam/csam_controls.py +432 -0
  130. regscale/integrations/public/csam/csam_poam.py +124 -0
  131. regscale/integrations/public/fedramp/click.py +77 -6
  132. regscale/integrations/public/fedramp/docx_parser.py +10 -1
  133. regscale/integrations/public/fedramp/fedramp_cis_crm.py +675 -289
  134. regscale/integrations/public/fedramp/fedramp_five.py +1 -1
  135. regscale/integrations/public/fedramp/poam/scanner.py +75 -7
  136. regscale/integrations/public/fedramp/poam_export_v5.py +888 -0
  137. regscale/integrations/scanner_integration.py +1961 -430
  138. regscale/models/integration_models/CCI_List.xml +1 -0
  139. regscale/models/integration_models/aqua.py +2 -2
  140. regscale/models/integration_models/cisa_kev_data.json +805 -11
  141. regscale/models/integration_models/flat_file_importer/__init__.py +5 -8
  142. regscale/models/integration_models/nexpose.py +36 -10
  143. regscale/models/integration_models/qualys.py +3 -4
  144. regscale/models/integration_models/synqly_models/capabilities.json +1 -1
  145. regscale/models/integration_models/synqly_models/connectors/vulnerabilities.py +87 -18
  146. regscale/models/integration_models/synqly_models/filter_parser.py +332 -0
  147. regscale/models/integration_models/synqly_models/ocsf_mapper.py +124 -25
  148. regscale/models/integration_models/synqly_models/synqly_model.py +89 -16
  149. regscale/models/locking.py +12 -8
  150. regscale/models/platform.py +4 -2
  151. regscale/models/regscale_models/__init__.py +7 -0
  152. regscale/models/regscale_models/assessment.py +2 -1
  153. regscale/models/regscale_models/catalog.py +1 -1
  154. regscale/models/regscale_models/compliance_settings.py +251 -1
  155. regscale/models/regscale_models/component.py +1 -0
  156. regscale/models/regscale_models/control_implementation.py +236 -41
  157. regscale/models/regscale_models/control_objective.py +74 -5
  158. regscale/models/regscale_models/file.py +2 -0
  159. regscale/models/regscale_models/form_field_value.py +5 -3
  160. regscale/models/regscale_models/inheritance.py +44 -0
  161. regscale/models/regscale_models/issue.py +301 -102
  162. regscale/models/regscale_models/milestone.py +33 -14
  163. regscale/models/regscale_models/organization.py +3 -0
  164. regscale/models/regscale_models/regscale_model.py +310 -73
  165. regscale/models/regscale_models/security_plan.py +4 -2
  166. regscale/models/regscale_models/vulnerability.py +3 -3
  167. regscale/regscale.py +25 -4
  168. regscale/templates/__init__.py +0 -0
  169. regscale/utils/threading/threadhandler.py +20 -15
  170. regscale/validation/record.py +23 -1
  171. {regscale_cli-6.21.2.0.dist-info → regscale_cli-6.28.2.1.dist-info}/METADATA +17 -33
  172. {regscale_cli-6.21.2.0.dist-info → regscale_cli-6.28.2.1.dist-info}/RECORD +310 -111
  173. tests/core/__init__.py +0 -0
  174. tests/core/utils/__init__.py +0 -0
  175. tests/core/utils/test_async_graphql_client.py +472 -0
  176. tests/fixtures/test_fixture.py +13 -8
  177. tests/regscale/core/test_login.py +171 -4
  178. tests/regscale/integrations/commercial/__init__.py +0 -0
  179. tests/regscale/integrations/commercial/aws/__init__.py +0 -0
  180. tests/regscale/integrations/commercial/aws/test_audit_manager_compliance.py +1304 -0
  181. tests/regscale/integrations/commercial/aws/test_audit_manager_evidence_aggregation.py +341 -0
  182. tests/regscale/integrations/commercial/aws/test_aws_analytics_collector.py +260 -0
  183. tests/regscale/integrations/commercial/aws/test_aws_applications_collector.py +242 -0
  184. tests/regscale/integrations/commercial/aws/test_aws_audit_manager_collector.py +1155 -0
  185. tests/regscale/integrations/commercial/aws/test_aws_cloudtrail_collector.py +534 -0
  186. tests/regscale/integrations/commercial/aws/test_aws_config_collector.py +400 -0
  187. tests/regscale/integrations/commercial/aws/test_aws_developer_tools_collector.py +203 -0
  188. tests/regscale/integrations/commercial/aws/test_aws_guardduty_collector.py +315 -0
  189. tests/regscale/integrations/commercial/aws/test_aws_iam_collector.py +458 -0
  190. tests/regscale/integrations/commercial/aws/test_aws_inspector_collector.py +353 -0
  191. tests/regscale/integrations/commercial/aws/test_aws_inventory_integration.py +530 -0
  192. tests/regscale/integrations/commercial/aws/test_aws_kms_collector.py +919 -0
  193. tests/regscale/integrations/commercial/aws/test_aws_machine_learning_collector.py +237 -0
  194. tests/regscale/integrations/commercial/aws/test_aws_s3_collector.py +722 -0
  195. tests/regscale/integrations/commercial/aws/test_aws_scanner_integration.py +722 -0
  196. tests/regscale/integrations/commercial/aws/test_aws_securityhub_collector.py +792 -0
  197. tests/regscale/integrations/commercial/aws/test_aws_systems_manager_collector.py +918 -0
  198. tests/regscale/integrations/commercial/aws/test_aws_vpc_collector.py +996 -0
  199. tests/regscale/integrations/commercial/aws/test_cli_evidence.py +431 -0
  200. tests/regscale/integrations/commercial/aws/test_cloudtrail_control_mappings.py +452 -0
  201. tests/regscale/integrations/commercial/aws/test_cloudtrail_evidence.py +788 -0
  202. tests/regscale/integrations/commercial/aws/test_config_compliance.py +298 -0
  203. tests/regscale/integrations/commercial/aws/test_conformance_pack_mappings.py +200 -0
  204. tests/regscale/integrations/commercial/aws/test_control_compliance_analyzer.py +375 -0
  205. tests/regscale/integrations/commercial/aws/test_datetime_parsing.py +223 -0
  206. tests/regscale/integrations/commercial/aws/test_evidence_generator.py +386 -0
  207. tests/regscale/integrations/commercial/aws/test_guardduty_control_mappings.py +564 -0
  208. tests/regscale/integrations/commercial/aws/test_guardduty_evidence.py +1041 -0
  209. tests/regscale/integrations/commercial/aws/test_iam_control_mappings.py +718 -0
  210. tests/regscale/integrations/commercial/aws/test_iam_evidence.py +1375 -0
  211. tests/regscale/integrations/commercial/aws/test_kms_control_mappings.py +656 -0
  212. tests/regscale/integrations/commercial/aws/test_kms_evidence.py +1163 -0
  213. tests/regscale/integrations/commercial/aws/test_ocsf_mapper.py +370 -0
  214. tests/regscale/integrations/commercial/aws/test_org_control_mappings.py +546 -0
  215. tests/regscale/integrations/commercial/aws/test_org_evidence.py +1240 -0
  216. tests/regscale/integrations/commercial/aws/test_s3_control_mappings.py +672 -0
  217. tests/regscale/integrations/commercial/aws/test_s3_evidence.py +987 -0
  218. tests/regscale/integrations/commercial/aws/test_scanner_evidence.py +373 -0
  219. tests/regscale/integrations/commercial/aws/test_security_hub_config_filtering.py +539 -0
  220. tests/regscale/integrations/commercial/aws/test_session_manager.py +516 -0
  221. tests/regscale/integrations/commercial/aws/test_ssm_control_mappings.py +588 -0
  222. tests/regscale/integrations/commercial/aws/test_ssm_evidence.py +735 -0
  223. tests/regscale/integrations/commercial/conftest.py +28 -0
  224. tests/regscale/integrations/commercial/microsoft_defender/__init__.py +1 -0
  225. tests/regscale/integrations/commercial/microsoft_defender/test_defender.py +1517 -0
  226. tests/regscale/integrations/commercial/microsoft_defender/test_defender_api.py +1748 -0
  227. tests/regscale/integrations/commercial/microsoft_defender/test_defender_constants.py +327 -0
  228. tests/regscale/integrations/commercial/microsoft_defender/test_defender_scanner.py +487 -0
  229. tests/regscale/integrations/commercial/test_aws.py +3742 -0
  230. tests/regscale/integrations/commercial/test_burp.py +48 -0
  231. tests/regscale/integrations/commercial/test_crowdstrike.py +49 -0
  232. tests/regscale/integrations/commercial/test_dependabot.py +341 -0
  233. tests/regscale/integrations/commercial/test_gcp.py +1543 -0
  234. tests/regscale/integrations/commercial/test_gitlab.py +549 -0
  235. tests/regscale/integrations/commercial/test_ip_mac_address_length.py +84 -0
  236. tests/regscale/integrations/commercial/test_jira.py +2204 -0
  237. tests/regscale/integrations/commercial/test_npm_audit.py +42 -0
  238. tests/regscale/integrations/commercial/test_okta.py +1228 -0
  239. tests/regscale/integrations/commercial/test_sarif_converter.py +251 -0
  240. tests/regscale/integrations/commercial/test_sicura.py +349 -0
  241. tests/regscale/integrations/commercial/test_snow.py +423 -0
  242. tests/regscale/integrations/commercial/test_sonarcloud.py +394 -0
  243. tests/regscale/integrations/commercial/test_sqlserver.py +186 -0
  244. tests/regscale/integrations/commercial/test_stig.py +33 -0
  245. tests/regscale/integrations/commercial/test_stig_mapper.py +153 -0
  246. tests/regscale/integrations/commercial/test_stigv2.py +406 -0
  247. tests/regscale/integrations/commercial/test_wiz.py +1365 -0
  248. tests/regscale/integrations/commercial/test_wiz_inventory.py +256 -0
  249. tests/regscale/integrations/commercial/wizv2/__init__.py +339 -0
  250. tests/regscale/integrations/commercial/wizv2/compliance/__init__.py +1 -0
  251. tests/regscale/integrations/commercial/wizv2/compliance/test_helpers.py +903 -0
  252. tests/regscale/integrations/commercial/wizv2/core/__init__.py +1 -0
  253. tests/regscale/integrations/commercial/wizv2/core/test_auth.py +701 -0
  254. tests/regscale/integrations/commercial/wizv2/core/test_client.py +1037 -0
  255. tests/regscale/integrations/commercial/wizv2/core/test_file_operations.py +989 -0
  256. tests/regscale/integrations/commercial/wizv2/fetchers/__init__.py +1 -0
  257. tests/regscale/integrations/commercial/wizv2/fetchers/test_policy_assessment.py +805 -0
  258. tests/regscale/integrations/commercial/wizv2/parsers/__init__.py +1 -0
  259. tests/regscale/integrations/commercial/wizv2/parsers/test_main.py +1153 -0
  260. tests/regscale/integrations/commercial/wizv2/processors/__init__.py +1 -0
  261. tests/regscale/integrations/commercial/wizv2/processors/test_finding.py +671 -0
  262. tests/regscale/integrations/commercial/wizv2/test_WizDataMixin.py +537 -0
  263. tests/regscale/integrations/commercial/wizv2/test_click_comprehensive.py +851 -0
  264. tests/regscale/integrations/commercial/wizv2/test_compliance_report_comprehensive.py +910 -0
  265. tests/regscale/integrations/commercial/wizv2/test_compliance_report_normalization.py +138 -0
  266. tests/regscale/integrations/commercial/wizv2/test_file_cleanup.py +283 -0
  267. tests/regscale/integrations/commercial/wizv2/test_file_operations.py +260 -0
  268. tests/regscale/integrations/commercial/wizv2/test_issue.py +343 -0
  269. tests/regscale/integrations/commercial/wizv2/test_issue_comprehensive.py +1203 -0
  270. tests/regscale/integrations/commercial/wizv2/test_reports.py +497 -0
  271. tests/regscale/integrations/commercial/wizv2/test_sbom.py +643 -0
  272. tests/regscale/integrations/commercial/wizv2/test_scanner_comprehensive.py +805 -0
  273. tests/regscale/integrations/commercial/wizv2/test_wiz_click_client_id.py +165 -0
  274. tests/regscale/integrations/commercial/wizv2/test_wiz_compliance_report.py +1394 -0
  275. tests/regscale/integrations/commercial/wizv2/test_wiz_compliance_unit.py +341 -0
  276. tests/regscale/integrations/commercial/wizv2/test_wiz_control_normalization.py +138 -0
  277. tests/regscale/integrations/commercial/wizv2/test_wiz_findings_comprehensive.py +364 -0
  278. tests/regscale/integrations/commercial/wizv2/test_wiz_inventory_comprehensive.py +644 -0
  279. tests/regscale/integrations/commercial/wizv2/test_wiz_status_mapping.py +149 -0
  280. tests/regscale/integrations/commercial/wizv2/test_wizv2.py +1218 -0
  281. tests/regscale/integrations/commercial/wizv2/test_wizv2_utils.py +519 -0
  282. tests/regscale/integrations/commercial/wizv2/utils/__init__.py +1 -0
  283. tests/regscale/integrations/commercial/wizv2/utils/test_main.py +1523 -0
  284. tests/regscale/integrations/public/__init__.py +0 -0
  285. tests/regscale/integrations/public/fedramp/__init__.py +1 -0
  286. tests/regscale/integrations/public/fedramp/test_gen_asset_list.py +150 -0
  287. tests/regscale/integrations/public/fedramp/test_poam_export_v5.py +1293 -0
  288. tests/regscale/integrations/public/test_alienvault.py +220 -0
  289. tests/regscale/integrations/public/test_cci.py +1053 -0
  290. tests/regscale/integrations/public/test_cisa.py +1021 -0
  291. tests/regscale/integrations/public/test_emass.py +518 -0
  292. tests/regscale/integrations/public/test_fedramp.py +1152 -0
  293. tests/regscale/integrations/public/test_fedramp_cis_crm.py +3661 -0
  294. tests/regscale/integrations/public/test_file_uploads.py +506 -0
  295. tests/regscale/integrations/public/test_oscal.py +453 -0
  296. tests/regscale/integrations/test_compliance_status_mapping.py +406 -0
  297. tests/regscale/integrations/test_control_matcher.py +1421 -0
  298. tests/regscale/integrations/test_control_matching.py +155 -0
  299. tests/regscale/integrations/test_milestone_manager.py +408 -0
  300. tests/regscale/models/test_control_implementation.py +118 -3
  301. tests/regscale/models/test_form_field_value_integration.py +304 -0
  302. tests/regscale/models/test_issue.py +378 -1
  303. tests/regscale/models/test_module_integration.py +582 -0
  304. tests/regscale/models/test_tenable_integrations.py +811 -105
  305. regscale/integrations/commercial/wizv2/policy_compliance.py +0 -3057
  306. regscale/integrations/public/fedramp/mappings/fedramp_r4_parts.json +0 -7388
  307. regscale/integrations/public/fedramp/mappings/fedramp_r5_parts.json +0 -9605
  308. regscale/integrations/public/fedramp/parts_mapper.py +0 -107
  309. /regscale/integrations/commercial/{amazon → sarif}/__init__.py +0 -0
  310. /regscale/integrations/commercial/wizv2/{wiz_auth.py → core/auth.py} +0 -0
  311. {regscale_cli-6.21.2.0.dist-info → regscale_cli-6.28.2.1.dist-info}/LICENSE +0 -0
  312. {regscale_cli-6.21.2.0.dist-info → regscale_cli-6.28.2.1.dist-info}/WHEEL +0 -0
  313. {regscale_cli-6.21.2.0.dist-info → regscale_cli-6.28.2.1.dist-info}/entry_points.txt +0 -0
  314. {regscale_cli-6.21.2.0.dist-info → regscale_cli-6.28.2.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,256 @@
1
+ import json
2
+ import pytest
3
+
4
+ from regscale.models.regscale_models import Asset, Component
5
+ from tests.fixtures.test_fixture import CLITestFixture
6
+
7
+
8
+ class TestWizInventory(CLITestFixture):
9
+ """
10
+ Unit tests for the WizInventory class methods.
11
+ """
12
+
13
+ SSP_ID = 51
14
+ SSP_MODULE = "securityplans"
15
+
16
+ wiz_projects = [
17
+ "e4cf6809-734e-4b7c-8456-3eb7bd179bc8",
18
+ "abeabc53-8774-4edf-91c0-61f228bedb1b",
19
+ ]
20
+ filter_by = {
21
+ "projectId": wiz_projects,
22
+ }
23
+ full_inventory = True
24
+ wiz_url = "https://api.us27.app.wiz.io/graphql"
25
+
26
+ @pytest.fixture
27
+ def test_wiz_data(self):
28
+ """
29
+ Load the test Wiz inventory data.
30
+ """
31
+ nodes = json.loads(
32
+ """[
33
+ {
34
+ "id": "23035da6-a1bd-4779-ab04-e3adbdec5947",
35
+ "name": "Mock Software Asset Linux Alpine",
36
+ "type": "HOSTED_TECHNOLOGY",
37
+ "subscriptionId": "c558b4cf-e0d7-49f5-a916-da8d8cd1b116",
38
+ "subscriptionExternalId": "23035da6-a1bd-4779-ab04-e3adbdec5947",
39
+ "graphEntity": {
40
+ "id": "23035da6-a1bd-4779-ab04-e3adbdec5947",
41
+ "providerUniqueId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummystorage/blobservices/default/containers/1-test-asset-1",
42
+ "name": "Mock Software Asset Linux Alpine",
43
+ "type": "HOSTED_TECHNOLOGY",
44
+ "projects": [
45
+ {
46
+ "id": "608016f5-742b-4ea8-a70a-c95ba6eb6c29"
47
+ }
48
+ ],
49
+ "properties": {
50
+ "_environments": "test",
51
+ "_productIDs": "78e7e216-34c5-4871-a301-48e9322c9b89",
52
+ "_techIDs": "5555",
53
+ "_vertexID": "23d89702-28a7-4988-9864-bb3dc795b735",
54
+ "alternativeRegions": "westus",
55
+ "azurePublicAccess": false,
56
+ "cloudPlatform": "Azure",
57
+ "cloudProviderURL": "https://dummy-domain.com/#@domain.com/resource//subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummystorage/blobservices/default/containers/1-test-asset-1",
58
+ "creationDate": "2023-01-10T23:30:36.8921214Z",
59
+ "encrypted": true,
60
+ "encryptionInTransit": true,
61
+ "externalId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummytorage/blobservices/default/containers/1-test-asset-1",
62
+ "isPublic": false,
63
+ "loggingEnabled": true,
64
+ "name": "test-fixture-assets-1",
65
+ "nativeType": "Microsoft.Storage/storageAccounts/blobServices/containers",
66
+ "providerUniqueId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummytorage/blobservices/default/containers/1-test-asset-1",
67
+ "publicExposure": "PublicExposureInvalid",
68
+ "region": "eastus",
69
+ "regionLocation": "US",
70
+ "regionType": "BucketRegionTypeDualRegion",
71
+ "resourceGroupExternalId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test",
72
+ "retentionPeriod": 2592000,
73
+ "status": "Active",
74
+ "subscriptionExternalId": "23035da6-a1bd-4779-ab04-e3adbdec5947",
75
+ "uniformACL": true,
76
+ "updateDate": "2023-12-08T00:39:54Z",
77
+ "updatedAt": "2024-01-09T17:40:12Z",
78
+ "versioningEnabled": true,
79
+ "webHostingEnabled": false,
80
+ "zone": null,
81
+ "port": 80,
82
+ "portEnd": 80,
83
+ "portRange": false,
84
+ "portStart": 80,
85
+ "portValidationResult": "Open",
86
+ "protocol": null,
87
+ "protocols": "HTTP",
88
+ "cpe": "cpe:/o:alpinelinux:alpine_linux:3.18.6",
89
+ "installedPackages": [
90
+ "alpine-baselayout (3.4.3-r1)",
91
+ "alpine-baselayout-data (3.4.3-r1)",
92
+ "alpine-keys (2.4-r1)"
93
+ ],
94
+ "techId": "1121",
95
+ "techName": "Linux Alpine",
96
+ "latestVersion": "3.18.6"
97
+ },
98
+ "firstSeen": "2024-02-01T06:15:10Z",
99
+ "lastSeen": "2024-02-15T13:04:10Z"
100
+ }
101
+ },
102
+ {
103
+ "id": "3056dce6-f1ae-4b94-a448-9de591e6f8a5",
104
+ "name": "Mock Software Asset Linux Alpine 2",
105
+ "type": "HOSTED_TECHNOLOGY",
106
+ "subscriptionId": "c558b4cf-e0d7-49f5-a916-da8d8cd1b116",
107
+ "subscriptionExternalId": "23035da6-a1bd-4779-ab04-e3adbdec5947",
108
+ "graphEntity": {
109
+ "id": "23035da6-a1bd-4779-ab04-e3adbdec5947",
110
+ "providerUniqueId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummystorage/blobservices/default/containers/1-test-asset-1",
111
+ "name": "Mock Software Asset Linux Alpine",
112
+ "type": "HOSTED_TECHNOLOGY",
113
+ "projects": [
114
+ {
115
+ "id": "608016f5-742b-4ea8-a70a-c95ba6eb6c29"
116
+ }
117
+ ],
118
+ "properties": {
119
+ "_environments": "test",
120
+ "_productIDs": "78e7e216-34c5-4871-a301-48e9322c9b89",
121
+ "_techIDs": "5555",
122
+ "_vertexID": "23d89702-28a7-4988-9864-bb3dc795b735",
123
+ "alternativeRegions": "westus",
124
+ "azurePublicAccess": false,
125
+ "cloudPlatform": "Azure",
126
+ "cloudProviderURL": "https://dummy-domain.com/#@domain.com/resource//subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummystorage/blobservices/default/containers/1-test-asset-1",
127
+ "creationDate": "2023-01-10T23:30:36.8921214Z",
128
+ "encrypted": true,
129
+ "encryptionInTransit": true,
130
+ "externalId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummytorage/blobservices/default/containers/1-test-asset-1",
131
+ "isPublic": false,
132
+ "loggingEnabled": true,
133
+ "name": "test-fixture-assets-1",
134
+ "nativeType": "Microsoft.Storage/storageAccounts/blobServices/containers",
135
+ "providerUniqueId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummytorage/blobservices/default/containers/1-test-asset-1",
136
+ "publicExposure": "PublicExposureInvalid",
137
+ "region": "eastus",
138
+ "regionLocation": "US",
139
+ "regionType": "BucketRegionTypeDualRegion",
140
+ "resourceGroupExternalId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test",
141
+ "retentionPeriod": 2592000,
142
+ "status": "Active",
143
+ "subscriptionExternalId": "23035da6-a1bd-4779-ab04-e3adbdec5947",
144
+ "uniformACL": true,
145
+ "updateDate": "2023-12-08T00:39:54Z",
146
+ "updatedAt": "2024-01-09T17:40:12Z",
147
+ "versioningEnabled": true,
148
+ "webHostingEnabled": false,
149
+ "zone": null,
150
+ "port": 80,
151
+ "portEnd": 80,
152
+ "portRange": false,
153
+ "portStart": 80,
154
+ "portValidationResult": "Open",
155
+ "protocol": null,
156
+ "protocols": "HTTP",
157
+ "cpe": "cpe:/o:alpinelinux:alpine_linux:3.18.6",
158
+ "installedPackages": [
159
+ "alpine-baselayout (3.4.3-r1)",
160
+ "alpine-baselayout-data (3.4.3-r1)",
161
+ "alpine-keys (2.4-r1)"
162
+ ],
163
+ "techId": "1121",
164
+ "techName": "Linux Alpine",
165
+ "latestVersion": "3.18.6"
166
+ },
167
+ "firstSeen": "2024-02-01T06:15:10Z",
168
+ "lastSeen": "2024-02-15T13:04:10Z"
169
+ }
170
+ },
171
+ {
172
+ "id": "d31f37cc-61e8-4b2a-be64-c078b9abdfa6",
173
+ "name": "Mock Software Asset Linux Alpine 3",
174
+ "type": "HOSTED_TECHNOLOGY",
175
+ "subscriptionId": "c558b4cf-e0d7-49f5-a916-da8d8cd1b116",
176
+ "subscriptionExternalId": "23035da6-a1bd-4779-ab04-e3adbdec5947",
177
+ "graphEntity": {
178
+ "id": "23035da6-a1bd-4779-ab04-e3adbdec5947",
179
+ "providerUniqueId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummystorage/blobservices/default/containers/1-test-asset-1",
180
+ "name": "Mock Software Asset Linux Alpine",
181
+ "type": "HOSTED_TECHNOLOGY",
182
+ "projects": [
183
+ {
184
+ "id": "608016f5-742b-4ea8-a70a-c95ba6eb6c29"
185
+ }
186
+ ],
187
+ "properties": {
188
+ "_environments": "test",
189
+ "_productIDs": "78e7e216-34c5-4871-a301-48e9322c9b89",
190
+ "_techIDs": "5555",
191
+ "_vertexID": "23d89702-28a7-4988-9864-bb3dc795b735",
192
+ "alternativeRegions": "westus",
193
+ "azurePublicAccess": false,
194
+ "cloudPlatform": "Azure",
195
+ "cloudProviderURL": "https://dummy-domain.com/#@domain.com/resource//subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummystorage/blobservices/default/containers/1-test-asset-1",
196
+ "creationDate": "2023-01-10T23:30:36.8921214Z",
197
+ "encrypted": true,
198
+ "encryptionInTransit": true,
199
+ "externalId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummytorage/blobservices/default/containers/1-test-asset-1",
200
+ "isPublic": false,
201
+ "loggingEnabled": true,
202
+ "name": "test-fixture-assets-1",
203
+ "nativeType": "Microsoft.Storage/storageAccounts/blobServices/containers",
204
+ "providerUniqueId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test/providers/microsoft.storage/storageaccounts/dummytorage/blobservices/default/containers/1-test-asset-1",
205
+ "publicExposure": "PublicExposureInvalid",
206
+ "region": "eastus",
207
+ "regionLocation": "US",
208
+ "regionType": "BucketRegionTypeDualRegion",
209
+ "resourceGroupExternalId": "/subscriptions/23035da6-a1bd-4779-ab04-e3adbdec5947/resourcegroups/rg_tenantapp_test",
210
+ "retentionPeriod": 2592000,
211
+ "status": "Active",
212
+ "subscriptionExternalId": "23035da6-a1bd-4779-ab04-e3adbdec5947",
213
+ "uniformACL": true,
214
+ "updateDate": "2023-12-08T00:39:54Z",
215
+ "updatedAt": "2024-01-09T17:40:12Z",
216
+ "versioningEnabled": true,
217
+ "webHostingEnabled": false,
218
+ "zone": null,
219
+ "port": 80,
220
+ "portEnd": 80,
221
+ "portRange": false,
222
+ "portStart": 80,
223
+ "portValidationResult": "Open",
224
+ "protocol": null,
225
+ "protocols": "HTTP",
226
+ "cpe": "cpe:/o:alpinelinux:alpine_linux:3.18.6",
227
+ "installedPackages": [
228
+ "alpine-baselayout (3.4.3-r1)",
229
+ "alpine-baselayout-data (3.4.3-r1)",
230
+ "alpine-keys (2.4-r1)"
231
+ ],
232
+ "techId": "1121",
233
+ "techName": "Linux Alpine",
234
+ "latestVersion": "3.18.6"
235
+ },
236
+ "firstSeen": "2024-02-01T06:15:10Z",
237
+ "lastSeen": "2024-02-15T13:04:10Z"
238
+ }
239
+ }
240
+ ]"""
241
+ )
242
+ return nodes
243
+
244
+ def test_cleanup_inventory(self, test_wiz_data):
245
+ """
246
+ Test the cleanup_inventory method to ensure it removes any inventory items that are no longer present in Wiz.
247
+ """
248
+
249
+ assets = Asset.get_all_by_parent(parent_id=self.SSP_ID, parent_module=self.SSP_MODULE)
250
+ components = Component.get_all_by_parent(parent_id=self.SSP_ID, parent_module=self.SSP_MODULE)
251
+ for asset in assets:
252
+ if asset.wizId != "23035da6-a1bd-4779-ab04-e3adbdec5947":
253
+ asset.delete()
254
+ asset.delete()
255
+ for component in components:
256
+ component.delete()
@@ -0,0 +1,339 @@
1
+ """
2
+ Test data for the WizV2 integration
3
+ """
4
+
5
+ PLAN_ID = 3
6
+ PROJECT_ID = "406bb94b-b8ae-5700-8fa0-c4c529d1d53f" # Match the project ID in vuln_nodes
7
+ IMAGE_NAME = "docker.io/regscale/regscale:5.41.0"
8
+ SHA_7b5f = "sha256:2fe823f07445e9ab5b126f19f31770a62740eff8f2b0135a5a184772181d7b5f"
9
+ SHA_375b = "sha256:f6b8d5292dd90c81bdedf7a81b1379b9c6e935938e1a46b75427a3ba8d35375b"
10
+ JULY_16_2024 = "2024-07-16T19:51:33Z"
11
+ JULY_09_2024 = "2024-07-09T17:15:00Z"
12
+ REGSCALE_DOCKER_URL = "docker.io/regscale/regscale"
13
+
14
+ asset_nodes = [
15
+ {
16
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351b",
17
+ "name": IMAGE_NAME,
18
+ "type": "CONTAINER_IMAGE",
19
+ "subscriptionId": None,
20
+ "subscriptionExternalId": None,
21
+ "graphEntity": {
22
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351b",
23
+ "providerUniqueId": None,
24
+ "name": IMAGE_NAME,
25
+ "type": "CONTAINER_IMAGE",
26
+ "projects": [{"id": "406bb94b-b8ae-5700-8fa0-c4c529d1d53f"}],
27
+ "properties": {
28
+ "_productIDs": ["406bb94b-b8ae-5700-8fa0-c4c529d1d53f"],
29
+ "_vertexID": "52c50c20-3d07-58ac-ab2e-c412bf35351b",
30
+ "architecture": "amd64",
31
+ "cloudPlatform": None,
32
+ "cloudProviderURL": None,
33
+ "digest": None,
34
+ "externalId": "docker.io##regscale/regscale:5.41.0",
35
+ "imageTags": "5.41.0",
36
+ "name": IMAGE_NAME,
37
+ "nativeType": "dockerHubImage",
38
+ "providerUniqueId": None,
39
+ "region": None,
40
+ "resourceGroupExternalId": None,
41
+ "status": "Active",
42
+ "subscriptionExternalId": None,
43
+ "uniqueUnorderedLayerIds": [
44
+ "sha256:d4fc045c9e3a848011de66f34b81f052d4f2c15a17bb196d637e526349601820",
45
+ "sha256:5eda52074615a611da6247776046258a553e90c6450368f50e2e20d125f4fca2",
46
+ "sha256:79b503757f21dd6e1fbf3883f3c170a29ebac82e1d0ab4298467c36e79f9b4c4",
47
+ "sha256:3a2446b9f9a730513eb6e998a56d11af2dfa02e1d46fa9966026429919bf0be8",
48
+ "sha256:c64131071bac812b52d4c2f515fba7e5d252ad2dc1ec7b7cd3882cc4aa4c9266",
49
+ "sha256:555e17ce64e7fd12035fb1bf7eecbf0f63b7776653f488d4fd9cff35ff10f392",
50
+ "sha256:df5dc9c1dcac3a2043fc44f68d5efbd4aa255d273826c16de4a0da5a7f91b569",
51
+ "sha256:5fb3b84a424a47e181cc8a4de1f78afa5f347b2ca6c14d5dd5cd5c320332e6f8",
52
+ "sha256:3ce05f582886f743f497269cebed1d7876fe7c4e794fd70b0a9968182a722d4a",
53
+ "sha256:c092c4c4051d32b62d7ab7d734b322d4959239517f2994593dfbec61a55b555e",
54
+ SHA_7b5f,
55
+ "sha256:c72712e86e45ac99e34ca3f60df02345fb4bdfb171c7ffb3e3cda409c77c7c6c",
56
+ "sha256:d6123721a15aa5ddd5b8a62744109f956342f4a48adfb1ff73566e7d482abf0e",
57
+ SHA_375b,
58
+ ],
59
+ "updatedAt": "2024-07-16T21:37:42Z",
60
+ "zone": None,
61
+ },
62
+ "technologies": [
63
+ {
64
+ "name": "Client Application",
65
+ "deploymentModel": "CLIENT_APPLICATION",
66
+ }
67
+ ],
68
+ "firstSeen": "2024-05-07T02:12:09.330868Z",
69
+ "lastSeen": "2024-07-17T05:21:08Z",
70
+ },
71
+ },
72
+ {
73
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351c",
74
+ "name": IMAGE_NAME,
75
+ "type": "CONTAINER_IMAGE",
76
+ "subscriptionId": None,
77
+ "subscriptionExternalId": None,
78
+ "graphEntity": {
79
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351c",
80
+ "providerUniqueId": None,
81
+ "name": "docker.io/regscale/regscale:5.43.0",
82
+ "type": "CONTAINER_IMAGE",
83
+ "projects": [{"id": "406bb94b-b8ae-5700-8fa0-c4c529d1d53f"}],
84
+ "properties": {
85
+ "_productIDs": ["406bb94b-b8ae-5700-8fa0-c4c529d1d53f"],
86
+ "_vertexID": "52c50c20-3d07-58ac-ab2e-c412bf35351c",
87
+ "architecture": "amd64",
88
+ "cloudPlatform": None,
89
+ "cloudProviderURL": None,
90
+ "digest": None,
91
+ "externalId": "docker.io##regscale/regscale:5.41.0",
92
+ "imageTags": "5.41.0",
93
+ "name": IMAGE_NAME,
94
+ "nativeType": "dockerHubImage",
95
+ "providerUniqueId": None,
96
+ "region": None,
97
+ "resourceGroupExternalId": None,
98
+ "status": "Active",
99
+ "subscriptionExternalId": None,
100
+ "uniqueUnorderedLayerIds": [
101
+ "sha256:d4fc045c9e3a848011de66f34b81f052d4f2c15a17bb196d637e526349601820",
102
+ "sha256:5eda52074615a611da6247776046258a553e90c6450368f50e2e20d125f4fca2",
103
+ "sha256:79b503757f21dd6e1fbf3883f3c170a29ebac82e1d0ab4298467c36e79f9b4c4",
104
+ "sha256:3a2446b9f9a730513eb6e998a56d11af2dfa02e1d46fa9966026429919bf0be8",
105
+ "sha256:c64131071bac812b52d4c2f515fba7e5d252ad2dc1ec7b7cd3882cc4aa4c9266",
106
+ "sha256:555e17ce64e7fd12035fb1bf7eecbf0f63b7776653f488d4fd9cff35ff10f392",
107
+ "sha256:df5dc9c1dcac3a2043fc44f68d5efbd4aa255d273826c16de4a0da5a7f91b569",
108
+ "sha256:5fb3b84a424a47e181cc8a4de1f78afa5f347b2ca6c14d5dd5cd5c320332e6f8",
109
+ "sha256:3ce05f582886f743f497269cebed1d7876fe7c4e794fd70b0a9968182a722d4a",
110
+ "sha256:c092c4c4051d32b62d7ab7d734b322d4959239517f2994593dfbec61a55b555e",
111
+ SHA_7b5f,
112
+ "sha256:c72712e86e45ac99e34ca3f60df02345fb4bdfb171c7ffb3e3cda409c77c7c6c",
113
+ "sha256:d6123721a15aa5ddd5b8a62744109f956342f4a48adfb1ff73566e7d482abf0e",
114
+ SHA_375b,
115
+ ],
116
+ "updatedAt": "2024-07-16T21:37:42Z",
117
+ "zone": None,
118
+ },
119
+ "technologies": [
120
+ {
121
+ "name": "Client Application",
122
+ "deploymentModel": "CLIENT_APPLICATION",
123
+ }
124
+ ],
125
+ "firstSeen": "2024-05-07T02:12:09.330868Z",
126
+ "lastSeen": "2024-07-17T05:21:08Z",
127
+ },
128
+ },
129
+ ]
130
+
131
+ vuln_nodes = [
132
+ {
133
+ "id": "695c47de-ca55-5e49-bc90-880578f2d7aa",
134
+ "name": "CVE-2024-38095",
135
+ "detailedName": ".NET Runtime",
136
+ "description": "File `/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.4/System.Core.dll` version `8.0.4` is vulnerable to `CVE-2024-38095`, which exists in versions `>= 8.0.0, < 8.0.7`.\n\nThe vulnerability was found in the [National Vulnerability Database (NVD)](https://nvd.nist.gov/vuln/detail/CVE-2024-38095) based on the CPE `cpe:2.3:a:microsoft:.net` with NVD severity: `High`.\n\nThe file is associated with the technology `.NET Runtime`.\n\nThe vulnerability can be remediated by updating `.NET Runtime` to `8.0.7` or higher.",
137
+ "severity": "HIGH",
138
+ "weightedSeverity": None,
139
+ "status": "OPEN",
140
+ "fixedVersion": "8.0.7",
141
+ "detectionMethod": "FILE_PATH",
142
+ "hasExploit": False,
143
+ "hasCisaKevExploit": False,
144
+ "cisaKevReleaseDate": None,
145
+ "cisaKevDueDate": None,
146
+ "firstDetectedAt": "2024-07-15T10:52:16.475997Z",
147
+ "lastDetectedAt": JULY_16_2024,
148
+ "resolvedAt": None,
149
+ "score": 7.5,
150
+ "validatedInRuntime": None,
151
+ "epssSeverity": "LOW",
152
+ "epssPercentile": 27.5,
153
+ "epssProbability": 0.1,
154
+ "dataSourceName": None,
155
+ "fixDate": "2024-07-09T00:00:00Z",
156
+ "fixDateBefore": None,
157
+ "publishedDate": JULY_09_2024,
158
+ "projects": [{"id": "406bb94b-b8ae-5700-8fa0-c4c529d1d53f"}],
159
+ "cvssv2": {
160
+ "attackVector": None,
161
+ "attackComplexity": None,
162
+ "confidentialityImpact": None,
163
+ "integrityImpact": None,
164
+ "privilegesRequired": None,
165
+ "userInteractionRequired": False,
166
+ },
167
+ "cvssv3": {
168
+ "attackVector": "NETWORK",
169
+ "attackComplexity": "LOW",
170
+ "confidentialityImpact": "NONE",
171
+ "integrityImpact": "NONE",
172
+ "privilegesRequired": "NONE",
173
+ "userInteractionRequired": False,
174
+ },
175
+ "ignoreRules": None,
176
+ "layerMetadata": {
177
+ "id": SHA_375b,
178
+ "details": 'RUN |1 BUILD_VERSION=5.41.0 /bin/sh -c echo {\\"version\\":\\"$BUILD_VERSION\\"} > /app/ClientApp/dist/assets/json/version.json # buildkit',
179
+ "isBaseLayer": False,
180
+ },
181
+ "vulnerableAsset": {
182
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351b",
183
+ "type": "CONTAINER_IMAGE",
184
+ "name": IMAGE_NAME,
185
+ "cloudPlatform": None,
186
+ "subscriptionName": None,
187
+ "subscriptionExternalId": None,
188
+ "subscriptionId": None,
189
+ "tags": {},
190
+ "hasLimitedInternetExposure": None,
191
+ "hasWideInternetExposure": None,
192
+ "isAccessibleFromVPN": None,
193
+ "isAccessibleFromOtherVnets": None,
194
+ "isAccessibleFromOtherSubscriptions": None,
195
+ "repository": {"vertexId": "59200ae8-c121-5927-af98-d0e85a24edb2", "name": REGSCALE_DOCKER_URL},
196
+ "registry": {"vertexId": "45d2e5c2-d0ad-5031-8d31-e4109a2dcd6a", "name": None},
197
+ "scanSource": ["WORKLOAD"],
198
+ "executionControllers": [],
199
+ },
200
+ },
201
+ {
202
+ "id": "b0cbdc0c-5ad5-5a6a-acc8-f696f97742cf",
203
+ "name": "CVE-2024-35264",
204
+ "detailedName": "Microsoft.AspNetCore.App.Runtime.linux-musl-x64",
205
+ "description": "The library `Microsoft.AspNetCore.App.Runtime.linux-musl-x64` version `8.0.4` was detected in `Nuget library manager` located at `/app/System.Threading.RateLimiting.dll` and is vulnerable to `CVE-2024-35264`, which exists in versions `>= 8.0.0, <= 8.0.6`.\n\nThe vulnerability was found in the [Github Security Advisory](https://github.com/advisories/GHSA-chfc-9w6m-75rf) with vendor severity: `High` ([NVD](https://nvd.nist.gov/vuln/detail/CVE-2024-35264) severity: `High`).\n\nThe vulnerability can be remediated by updating the library to version `8.0.7` or higher, using `dotnet add package Microsoft.AspNetCore.App.Runtime.linux-musl-x64`.",
206
+ "severity": "CRITICAL",
207
+ "weightedSeverity": None,
208
+ "status": "OPEN",
209
+ "fixedVersion": "8.0.7",
210
+ "detectionMethod": "LIBRARY",
211
+ "hasExploit": False,
212
+ "hasCisaKevExploit": False,
213
+ "cisaKevReleaseDate": None,
214
+ "cisaKevDueDate": None,
215
+ "firstDetectedAt": "2024-07-11T19:14:18.389391Z",
216
+ "lastDetectedAt": JULY_16_2024,
217
+ "resolvedAt": None,
218
+ "score": 8.1,
219
+ "validatedInRuntime": None,
220
+ "epssSeverity": "LOW",
221
+ "epssPercentile": 39.4,
222
+ "epssProbability": 0.1,
223
+ "dataSourceName": None,
224
+ "fixDate": "2024-07-10T01:02:48Z",
225
+ "fixDateBefore": None,
226
+ "publishedDate": JULY_09_2024,
227
+ "projects": [{"id": "406bb94b-b8ae-5700-8fa0-c4c529d1d53f"}],
228
+ "cvssv2": {
229
+ "attackVector": None,
230
+ "attackComplexity": None,
231
+ "confidentialityImpact": None,
232
+ "integrityImpact": None,
233
+ "privilegesRequired": None,
234
+ "userInteractionRequired": False,
235
+ },
236
+ "cvssv3": {
237
+ "attackVector": "NETWORK",
238
+ "attackComplexity": "HIGH",
239
+ "confidentialityImpact": "HIGH",
240
+ "integrityImpact": "HIGH",
241
+ "privilegesRequired": "NONE",
242
+ "userInteractionRequired": False,
243
+ },
244
+ "ignoreRules": None,
245
+ "layerMetadata": {
246
+ "id": SHA_7b5f,
247
+ "details": "COPY /app . # buildkit",
248
+ "isBaseLayer": False,
249
+ },
250
+ "vulnerableAsset": {
251
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351b",
252
+ "type": "CONTAINER_IMAGE",
253
+ "name": IMAGE_NAME,
254
+ "cloudPlatform": None,
255
+ "subscriptionName": None,
256
+ "subscriptionExternalId": None,
257
+ "subscriptionId": None,
258
+ "tags": {},
259
+ "hasLimitedInternetExposure": None,
260
+ "hasWideInternetExposure": None,
261
+ "isAccessibleFromVPN": None,
262
+ "isAccessibleFromOtherVnets": None,
263
+ "isAccessibleFromOtherSubscriptions": None,
264
+ "repository": {"vertexId": "59200ae8-c121-5927-af98-d0e85a24edb2", "name": REGSCALE_DOCKER_URL},
265
+ "registry": {"vertexId": "45d2e5c2-d0ad-5031-8d31-e4109a2dcd6a", "name": None},
266
+ "scanSource": ["WORKLOAD"],
267
+ "executionControllers": [],
268
+ },
269
+ },
270
+ {
271
+ "id": "b0cbdc0c-5ad5-5a6a-acc8-f696f97742cf",
272
+ "name": "CVE-2024-35264",
273
+ "detailedName": "Microsoft.AspNetCore.App.Runtime.linux-musl-x64",
274
+ "description": "The library `Microsoft.AspNetCore.App.Runtime.linux-musl-x64` version `8.0.4` was detected in `Nuget library manager` located at `/app/System.Threading.RateLimiting.dll` and is vulnerable to `CVE-2024-35264`, which exists in versions `>= 8.0.0, <= 8.0.6`.\n\nThe vulnerability was found in the [Github Security Advisory](https://github.com/advisories/GHSA-chfc-9w6m-75rf) with vendor severity: `High` ([NVD](https://nvd.nist.gov/vuln/detail/CVE-2024-35264) severity: `High`).\n\nThe vulnerability can be remediated by updating the library to version `8.0.7` or higher, using `dotnet add package Microsoft.AspNetCore.App.Runtime.linux-musl-x64`.",
275
+ "severity": "MEDIUM",
276
+ "weightedSeverity": None,
277
+ "status": "OPEN",
278
+ "fixedVersion": "8.0.7",
279
+ "detectionMethod": "LIBRARY",
280
+ "hasExploit": False,
281
+ "hasCisaKevExploit": False,
282
+ "cisaKevReleaseDate": None,
283
+ "cisaKevDueDate": None,
284
+ "firstDetectedAt": "2024-07-11T19:14:18.389391Z",
285
+ "lastDetectedAt": JULY_16_2024,
286
+ "resolvedAt": None,
287
+ "score": 8.1,
288
+ "validatedInRuntime": None,
289
+ "epssSeverity": "LOW",
290
+ "epssPercentile": 39.4,
291
+ "epssProbability": 0.1,
292
+ "dataSourceName": None,
293
+ "fixDate": "2024-07-10T01:02:48Z",
294
+ "fixDateBefore": None,
295
+ "publishedDate": JULY_09_2024,
296
+ "projects": [{"id": "406bb94b-b8ae-5700-8fa0-c4c529d1d53f"}],
297
+ "cvssv2": {
298
+ "attackVector": None,
299
+ "attackComplexity": None,
300
+ "confidentialityImpact": None,
301
+ "integrityImpact": None,
302
+ "privilegesRequired": None,
303
+ "userInteractionRequired": False,
304
+ },
305
+ "cvssv3": {
306
+ "attackVector": "NETWORK",
307
+ "attackComplexity": "HIGH",
308
+ "confidentialityImpact": "HIGH",
309
+ "integrityImpact": "HIGH",
310
+ "privilegesRequired": "NONE",
311
+ "userInteractionRequired": False,
312
+ },
313
+ "ignoreRules": None,
314
+ "layerMetadata": {
315
+ "id": SHA_7b5f,
316
+ "details": "COPY /app . # buildkit",
317
+ "isBaseLayer": False,
318
+ },
319
+ "vulnerableAsset": {
320
+ "id": "52c50c20-3d07-58ac-ab2e-c412bf35351c",
321
+ "type": "CONTAINER_IMAGE",
322
+ "name": IMAGE_NAME,
323
+ "cloudPlatform": None,
324
+ "subscriptionName": None,
325
+ "subscriptionExternalId": None,
326
+ "subscriptionId": None,
327
+ "tags": {},
328
+ "hasLimitedInternetExposure": None,
329
+ "hasWideInternetExposure": None,
330
+ "isAccessibleFromVPN": None,
331
+ "isAccessibleFromOtherVnets": None,
332
+ "isAccessibleFromOtherSubscriptions": None,
333
+ "repository": {"vertexId": "59200ae8-c121-5927-af98-d0e85a24edb2", "name": REGSCALE_DOCKER_URL},
334
+ "registry": {"vertexId": "45d2e5c2-d0ad-5031-8d31-e4109a2dcd6a", "name": None},
335
+ "scanSource": ["WORKLOAD"],
336
+ "executionControllers": [],
337
+ },
338
+ },
339
+ ]
@@ -0,0 +1 @@
1
+ """Tests for Wiz compliance helper classes."""