prowler-cloud 5.14.1__py3-none-any.whl → 5.15.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 (326) hide show
  1. dashboard/assets/images/providers/alibabacloud_provider.png +0 -0
  2. dashboard/compliance/cis_2_0_alibabacloud.py +24 -0
  3. dashboard/lib/layouts.py +1 -0
  4. dashboard/pages/compliance.py +8 -2
  5. dashboard/pages/overview.py +52 -1
  6. prowler/CHANGELOG.md +59 -20
  7. prowler/__main__.py +40 -0
  8. prowler/compliance/alibabacloud/__init__.py +0 -0
  9. prowler/compliance/alibabacloud/cis_2.0_alibabacloud.json +1833 -0
  10. prowler/compliance/aws/iso27001_2013_aws.json +158 -158
  11. prowler/compliance/aws/soc2_aws.json +100 -0
  12. prowler/compliance/azure/rbi_cyber_security_framework_azure.json +248 -0
  13. prowler/compliance/azure/soc2_azure.json +87 -1
  14. prowler/compliance/gcp/soc2_gcp.json +82 -1
  15. prowler/config/config.py +2 -1
  16. prowler/lib/check/check.py +47 -1
  17. prowler/lib/check/models.py +23 -0
  18. prowler/lib/check/utils.py +1 -1
  19. prowler/lib/cli/parser.py +3 -2
  20. prowler/lib/outputs/compliance/cis/cis_alibabacloud.py +106 -0
  21. prowler/lib/outputs/compliance/cis/models.py +35 -0
  22. prowler/lib/outputs/finding.py +16 -0
  23. prowler/lib/outputs/html/html.py +67 -0
  24. prowler/lib/outputs/outputs.py +2 -0
  25. prowler/lib/outputs/summary_table.py +3 -0
  26. prowler/providers/alibabacloud/__init__.py +0 -0
  27. prowler/providers/alibabacloud/alibabacloud_provider.py +872 -0
  28. prowler/providers/alibabacloud/config.py +41 -0
  29. prowler/providers/alibabacloud/exceptions/__init__.py +0 -0
  30. prowler/providers/alibabacloud/exceptions/exceptions.py +116 -0
  31. prowler/providers/alibabacloud/lib/__init__.py +0 -0
  32. prowler/providers/alibabacloud/lib/arguments/__init__.py +0 -0
  33. prowler/providers/alibabacloud/lib/arguments/arguments.py +58 -0
  34. prowler/providers/alibabacloud/lib/mutelist/__init__.py +0 -0
  35. prowler/providers/alibabacloud/lib/mutelist/mutelist.py +175 -0
  36. prowler/providers/alibabacloud/lib/service/__init__.py +0 -0
  37. prowler/providers/alibabacloud/lib/service/service.py +113 -0
  38. prowler/providers/alibabacloud/models.py +266 -0
  39. prowler/providers/alibabacloud/services/__init__.py +0 -0
  40. prowler/providers/alibabacloud/services/actiontrail/__init__.py +0 -0
  41. prowler/providers/alibabacloud/services/actiontrail/actiontrail_client.py +6 -0
  42. prowler/providers/alibabacloud/services/actiontrail/actiontrail_multi_region_enabled/__init__.py +0 -0
  43. prowler/providers/alibabacloud/services/actiontrail/actiontrail_multi_region_enabled/actiontrail_multi_region_enabled.metadata.json +39 -0
  44. prowler/providers/alibabacloud/services/actiontrail/actiontrail_multi_region_enabled/actiontrail_multi_region_enabled.py +81 -0
  45. prowler/providers/alibabacloud/services/actiontrail/actiontrail_oss_bucket_not_publicly_accessible/__init__.py +0 -0
  46. prowler/providers/alibabacloud/services/actiontrail/actiontrail_oss_bucket_not_publicly_accessible/actiontrail_oss_bucket_not_publicly_accessible.metadata.json +40 -0
  47. prowler/providers/alibabacloud/services/actiontrail/actiontrail_oss_bucket_not_publicly_accessible/actiontrail_oss_bucket_not_publicly_accessible.py +119 -0
  48. prowler/providers/alibabacloud/services/actiontrail/actiontrail_service.py +110 -0
  49. prowler/providers/alibabacloud/services/cs/__init__.py +0 -0
  50. prowler/providers/alibabacloud/services/cs/cs_client.py +4 -0
  51. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cloudmonitor_enabled/__init__.py +0 -0
  52. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cloudmonitor_enabled/cs_kubernetes_cloudmonitor_enabled.metadata.json +38 -0
  53. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cloudmonitor_enabled/cs_kubernetes_cloudmonitor_enabled.py +26 -0
  54. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_recent/__init__.py +0 -0
  55. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_recent/cs_kubernetes_cluster_check_recent.metadata.json +38 -0
  56. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_recent/cs_kubernetes_cluster_check_recent.py +62 -0
  57. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_weekly/cs_kubernetes_cluster_check_weekly.metadata.json +38 -0
  58. prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_weekly/cs_kubernetes_cluster_check_weekly.py +62 -0
  59. prowler/providers/alibabacloud/services/cs/cs_kubernetes_dashboard_disabled/__init__.py +0 -0
  60. prowler/providers/alibabacloud/services/cs/cs_kubernetes_dashboard_disabled/cs_kubernetes_dashboard_disabled.metadata.json +39 -0
  61. prowler/providers/alibabacloud/services/cs/cs_kubernetes_dashboard_disabled/cs_kubernetes_dashboard_disabled.py +26 -0
  62. prowler/providers/alibabacloud/services/cs/cs_kubernetes_eni_multiple_ip_enabled/__init__.py +0 -0
  63. prowler/providers/alibabacloud/services/cs/cs_kubernetes_eni_multiple_ip_enabled/cs_kubernetes_eni_multiple_ip_enabled.metadata.json +39 -0
  64. prowler/providers/alibabacloud/services/cs/cs_kubernetes_eni_multiple_ip_enabled/cs_kubernetes_eni_multiple_ip_enabled.py +26 -0
  65. prowler/providers/alibabacloud/services/cs/cs_kubernetes_log_service_enabled/__init__.py +0 -0
  66. prowler/providers/alibabacloud/services/cs/cs_kubernetes_log_service_enabled/cs_kubernetes_log_service_enabled.metadata.json +40 -0
  67. prowler/providers/alibabacloud/services/cs/cs_kubernetes_log_service_enabled/cs_kubernetes_log_service_enabled.py +26 -0
  68. prowler/providers/alibabacloud/services/cs/cs_kubernetes_network_policy_enabled/__init__.py +0 -0
  69. prowler/providers/alibabacloud/services/cs/cs_kubernetes_network_policy_enabled/cs_kubernetes_network_policy_enabled.metadata.json +39 -0
  70. prowler/providers/alibabacloud/services/cs/cs_kubernetes_network_policy_enabled/cs_kubernetes_network_policy_enabled.py +26 -0
  71. prowler/providers/alibabacloud/services/cs/cs_kubernetes_private_cluster_enabled/__init__.py +0 -0
  72. prowler/providers/alibabacloud/services/cs/cs_kubernetes_private_cluster_enabled/cs_kubernetes_private_cluster_enabled.metadata.json +39 -0
  73. prowler/providers/alibabacloud/services/cs/cs_kubernetes_private_cluster_enabled/cs_kubernetes_private_cluster_enabled.py +26 -0
  74. prowler/providers/alibabacloud/services/cs/cs_kubernetes_rbac_enabled/__init__.py +0 -0
  75. prowler/providers/alibabacloud/services/cs/cs_kubernetes_rbac_enabled/cs_kubernetes_rbac_enabled.metadata.json +40 -0
  76. prowler/providers/alibabacloud/services/cs/cs_kubernetes_rbac_enabled/cs_kubernetes_rbac_enabled.py +28 -0
  77. prowler/providers/alibabacloud/services/cs/cs_service.py +354 -0
  78. prowler/providers/alibabacloud/services/ecs/__init__.py +0 -0
  79. prowler/providers/alibabacloud/services/ecs/ecs_attached_disk_encrypted/__init__.py +0 -0
  80. prowler/providers/alibabacloud/services/ecs/ecs_attached_disk_encrypted/ecs_attached_disk_encrypted.metadata.json +38 -0
  81. prowler/providers/alibabacloud/services/ecs/ecs_attached_disk_encrypted/ecs_attached_disk_encrypted.py +38 -0
  82. prowler/providers/alibabacloud/services/ecs/ecs_client.py +4 -0
  83. prowler/providers/alibabacloud/services/ecs/ecs_instance_endpoint_protection_installed/__init__.py +0 -0
  84. prowler/providers/alibabacloud/services/ecs/ecs_instance_endpoint_protection_installed/ecs_instance_endpoint_protection_installed.metadata.json +41 -0
  85. prowler/providers/alibabacloud/services/ecs/ecs_instance_endpoint_protection_installed/ecs_instance_endpoint_protection_installed.py +47 -0
  86. prowler/providers/alibabacloud/services/ecs/ecs_instance_latest_os_patches_applied/__init__.py +0 -0
  87. prowler/providers/alibabacloud/services/ecs/ecs_instance_latest_os_patches_applied/ecs_instance_latest_os_patches_applied.metadata.json +38 -0
  88. prowler/providers/alibabacloud/services/ecs/ecs_instance_latest_os_patches_applied/ecs_instance_latest_os_patches_applied.py +50 -0
  89. prowler/providers/alibabacloud/services/ecs/ecs_instance_no_legacy_network/__init__.py +0 -0
  90. prowler/providers/alibabacloud/services/ecs/ecs_instance_no_legacy_network/ecs_instance_no_legacy_network.metadata.json +38 -0
  91. prowler/providers/alibabacloud/services/ecs/ecs_instance_no_legacy_network/ecs_instance_no_legacy_network.py +34 -0
  92. prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_rdp_internet/__init__.py +0 -0
  93. prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_rdp_internet/ecs_securitygroup_restrict_rdp_internet.metadata.json +39 -0
  94. prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_rdp_internet/ecs_securitygroup_restrict_rdp_internet.py +68 -0
  95. prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_ssh_internet/__init__.py +0 -0
  96. prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_ssh_internet/ecs_securitygroup_restrict_ssh_internet.metadata.json +39 -0
  97. prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_ssh_internet/ecs_securitygroup_restrict_ssh_internet.py +68 -0
  98. prowler/providers/alibabacloud/services/ecs/ecs_service.py +380 -0
  99. prowler/providers/alibabacloud/services/ecs/ecs_unattached_disk_encrypted/__init__.py +0 -0
  100. prowler/providers/alibabacloud/services/ecs/ecs_unattached_disk_encrypted/ecs_unattached_disk_encrypted.metadata.json +38 -0
  101. prowler/providers/alibabacloud/services/ecs/ecs_unattached_disk_encrypted/ecs_unattached_disk_encrypted.py +38 -0
  102. prowler/providers/alibabacloud/services/ecs/lib/security_groups.py +23 -0
  103. prowler/providers/alibabacloud/services/oss/__init__.py +0 -0
  104. prowler/providers/alibabacloud/services/oss/oss_bucket_logging_enabled/__init__.py +0 -0
  105. prowler/providers/alibabacloud/services/oss/oss_bucket_logging_enabled/oss_bucket_logging_enabled.metadata.json +39 -0
  106. prowler/providers/alibabacloud/services/oss/oss_bucket_logging_enabled/oss_bucket_logging_enabled.py +37 -0
  107. prowler/providers/alibabacloud/services/oss/oss_bucket_not_publicly_accessible/__init__.py +0 -0
  108. prowler/providers/alibabacloud/services/oss/oss_bucket_not_publicly_accessible/oss_bucket_not_publicly_accessible.metadata.json +39 -0
  109. prowler/providers/alibabacloud/services/oss/oss_bucket_not_publicly_accessible/oss_bucket_not_publicly_accessible.py +89 -0
  110. prowler/providers/alibabacloud/services/oss/oss_bucket_secure_transport_enabled/__init__.py +0 -0
  111. prowler/providers/alibabacloud/services/oss/oss_bucket_secure_transport_enabled/oss_bucket_secure_transport_enabled.metadata.json +38 -0
  112. prowler/providers/alibabacloud/services/oss/oss_bucket_secure_transport_enabled/oss_bucket_secure_transport_enabled.py +87 -0
  113. prowler/providers/alibabacloud/services/oss/oss_client.py +4 -0
  114. prowler/providers/alibabacloud/services/oss/oss_service.py +317 -0
  115. prowler/providers/alibabacloud/services/ram/__init__.py +0 -0
  116. prowler/providers/alibabacloud/services/ram/ram_client.py +4 -0
  117. prowler/providers/alibabacloud/services/ram/ram_no_root_access_key/__init__.py +0 -0
  118. prowler/providers/alibabacloud/services/ram/ram_no_root_access_key/ram_no_root_access_key.metadata.json +39 -0
  119. prowler/providers/alibabacloud/services/ram/ram_no_root_access_key/ram_no_root_access_key.py +33 -0
  120. prowler/providers/alibabacloud/services/ram/ram_password_policy_lowercase/__init__.py +0 -0
  121. prowler/providers/alibabacloud/services/ram/ram_password_policy_lowercase/ram_password_policy_lowercase.metadata.json +39 -0
  122. prowler/providers/alibabacloud/services/ram/ram_password_policy_lowercase/ram_password_policy_lowercase.py +32 -0
  123. prowler/providers/alibabacloud/services/ram/ram_password_policy_max_login_attempts/__init__.py +0 -0
  124. prowler/providers/alibabacloud/services/ram/ram_password_policy_max_login_attempts/ram_password_policy_max_login_attempts.metadata.json +39 -0
  125. prowler/providers/alibabacloud/services/ram/ram_password_policy_max_login_attempts/ram_password_policy_max_login_attempts.py +32 -0
  126. prowler/providers/alibabacloud/services/ram/ram_password_policy_max_password_age/__init__.py +0 -0
  127. prowler/providers/alibabacloud/services/ram/ram_password_policy_max_password_age/ram_password_policy_max_password_age.metadata.json +39 -0
  128. prowler/providers/alibabacloud/services/ram/ram_password_policy_max_password_age/ram_password_policy_max_password_age.py +35 -0
  129. prowler/providers/alibabacloud/services/ram/ram_password_policy_minimum_length/__init__.py +0 -0
  130. prowler/providers/alibabacloud/services/ram/ram_password_policy_minimum_length/ram_password_policy_minimum_length.metadata.json +39 -0
  131. prowler/providers/alibabacloud/services/ram/ram_password_policy_minimum_length/ram_password_policy_minimum_length.py +30 -0
  132. prowler/providers/alibabacloud/services/ram/ram_password_policy_number/__init__.py +0 -0
  133. prowler/providers/alibabacloud/services/ram/ram_password_policy_number/ram_password_policy_number.metadata.json +39 -0
  134. prowler/providers/alibabacloud/services/ram/ram_password_policy_password_reuse_prevention/__init__.py +0 -0
  135. prowler/providers/alibabacloud/services/ram/ram_password_policy_password_reuse_prevention/ram_password_policy_password_reuse_prevention.metadata.json +39 -0
  136. prowler/providers/alibabacloud/services/ram/ram_password_policy_password_reuse_prevention/ram_password_policy_password_reuse_prevention.py +35 -0
  137. prowler/providers/alibabacloud/services/ram/ram_password_policy_symbol/__init__.py +0 -0
  138. prowler/providers/alibabacloud/services/ram/ram_password_policy_symbol/ram_password_policy_symbol.metadata.json +39 -0
  139. prowler/providers/alibabacloud/services/ram/ram_password_policy_symbol/ram_password_policy_symbol.py +34 -0
  140. prowler/providers/alibabacloud/services/ram/ram_password_policy_uppercase/__init__.py +0 -0
  141. prowler/providers/alibabacloud/services/ram/ram_password_policy_uppercase/ram_password_policy_uppercase.metadata.json +39 -0
  142. prowler/providers/alibabacloud/services/ram/ram_password_policy_uppercase/ram_password_policy_uppercase.py +32 -0
  143. prowler/providers/alibabacloud/services/ram/ram_policy_attached_only_to_group_or_roles/__init__.py +0 -0
  144. prowler/providers/alibabacloud/services/ram/ram_policy_attached_only_to_group_or_roles/ram_policy_attached_only_to_group_or_roles.metadata.json +39 -0
  145. prowler/providers/alibabacloud/services/ram/ram_policy_attached_only_to_group_or_roles/ram_policy_attached_only_to_group_or_roles.py +35 -0
  146. prowler/providers/alibabacloud/services/ram/ram_policy_no_administrative_privileges/__init__.py +0 -0
  147. prowler/providers/alibabacloud/services/ram/ram_policy_no_administrative_privileges/ram_policy_no_administrative_privileges.metadata.json +39 -0
  148. prowler/providers/alibabacloud/services/ram/ram_policy_no_administrative_privileges/ram_policy_no_administrative_privileges.py +73 -0
  149. prowler/providers/alibabacloud/services/ram/ram_rotate_access_key_90_days/__init__.py +0 -0
  150. prowler/providers/alibabacloud/services/ram/ram_rotate_access_key_90_days/ram_rotate_access_key_90_days.metadata.json +39 -0
  151. prowler/providers/alibabacloud/services/ram/ram_rotate_access_key_90_days/ram_rotate_access_key_90_days.py +58 -0
  152. prowler/providers/alibabacloud/services/ram/ram_service.py +478 -0
  153. prowler/providers/alibabacloud/services/ram/ram_user_console_access_unused/__init__.py +0 -0
  154. prowler/providers/alibabacloud/services/ram/ram_user_console_access_unused/ram_user_console_access_unused.metadata.json +39 -0
  155. prowler/providers/alibabacloud/services/ram/ram_user_console_access_unused/ram_user_console_access_unused.py +56 -0
  156. prowler/providers/alibabacloud/services/ram/ram_user_mfa_enabled_console_access/__init__.py +0 -0
  157. prowler/providers/alibabacloud/services/ram/ram_user_mfa_enabled_console_access/ram_user_mfa_enabled_console_access.metadata.json +39 -0
  158. prowler/providers/alibabacloud/services/ram/ram_user_mfa_enabled_console_access/ram_user_mfa_enabled_console_access.py +36 -0
  159. prowler/providers/alibabacloud/services/rds/__init__.py +0 -0
  160. prowler/providers/alibabacloud/services/rds/rds_client.py +4 -0
  161. prowler/providers/alibabacloud/services/rds/rds_instance_no_public_access_whitelist/__init__.py +0 -0
  162. prowler/providers/alibabacloud/services/rds/rds_instance_no_public_access_whitelist/rds_instance_no_public_access_whitelist.metadata.json +39 -0
  163. prowler/providers/alibabacloud/services/rds/rds_instance_no_public_access_whitelist/rds_instance_no_public_access_whitelist.py +36 -0
  164. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_connections_enabled/__init__.py +0 -0
  165. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_connections_enabled/rds_instance_postgresql_log_connections_enabled.metadata.json +39 -0
  166. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_connections_enabled/rds_instance_postgresql_log_connections_enabled.py +29 -0
  167. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_disconnections_enabled/__init__.py +0 -0
  168. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_disconnections_enabled/rds_instance_postgresql_log_disconnections_enabled.metadata.json +39 -0
  169. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_disconnections_enabled/rds_instance_postgresql_log_disconnections_enabled.py +29 -0
  170. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_duration_enabled/__init__.py +0 -0
  171. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_duration_enabled/rds_instance_postgresql_log_duration_enabled.metadata.json +38 -0
  172. prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_duration_enabled/rds_instance_postgresql_log_duration_enabled.py +29 -0
  173. prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_enabled/__init__.py +0 -0
  174. prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_enabled/rds_instance_sql_audit_enabled.metadata.json +39 -0
  175. prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_enabled/rds_instance_sql_audit_enabled.py +32 -0
  176. prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_retention/__init__.py +0 -0
  177. prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_retention/rds_instance_sql_audit_retention.metadata.json +39 -0
  178. prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_retention/rds_instance_sql_audit_retention.py +41 -0
  179. prowler/providers/alibabacloud/services/rds/rds_instance_ssl_enabled/__init__.py +0 -0
  180. prowler/providers/alibabacloud/services/rds/rds_instance_ssl_enabled/rds_instance_ssl_enabled.metadata.json +39 -0
  181. prowler/providers/alibabacloud/services/rds/rds_instance_ssl_enabled/rds_instance_ssl_enabled.py +30 -0
  182. prowler/providers/alibabacloud/services/rds/rds_instance_tde_enabled/__init__.py +0 -0
  183. prowler/providers/alibabacloud/services/rds/rds_instance_tde_enabled/rds_instance_tde_enabled.metadata.json +39 -0
  184. prowler/providers/alibabacloud/services/rds/rds_instance_tde_enabled/rds_instance_tde_enabled.py +32 -0
  185. prowler/providers/alibabacloud/services/rds/rds_instance_tde_key_custom/__init__.py +0 -0
  186. prowler/providers/alibabacloud/services/rds/rds_instance_tde_key_custom/rds_instance_tde_key_custom.metadata.json +39 -0
  187. prowler/providers/alibabacloud/services/rds/rds_instance_tde_key_custom/rds_instance_tde_key_custom.py +38 -0
  188. prowler/providers/alibabacloud/services/rds/rds_service.py +274 -0
  189. prowler/providers/alibabacloud/services/securitycenter/__init__.py +0 -0
  190. prowler/providers/alibabacloud/services/securitycenter/securitycenter_advanced_or_enterprise_edition/__init__.py +0 -0
  191. prowler/providers/alibabacloud/services/securitycenter/securitycenter_advanced_or_enterprise_edition/securitycenter_advanced_or_enterprise_edition.metadata.json +43 -0
  192. prowler/providers/alibabacloud/services/securitycenter/securitycenter_advanced_or_enterprise_edition/securitycenter_advanced_or_enterprise_edition.py +48 -0
  193. prowler/providers/alibabacloud/services/securitycenter/securitycenter_all_assets_agent_installed/__init__.py +0 -0
  194. prowler/providers/alibabacloud/services/securitycenter/securitycenter_all_assets_agent_installed/securitycenter_all_assets_agent_installed.metadata.json +42 -0
  195. prowler/providers/alibabacloud/services/securitycenter/securitycenter_all_assets_agent_installed/securitycenter_all_assets_agent_installed.py +48 -0
  196. prowler/providers/alibabacloud/services/securitycenter/securitycenter_client.py +6 -0
  197. prowler/providers/alibabacloud/services/securitycenter/securitycenter_notification_enabled_high_risk/__init__.py +0 -0
  198. prowler/providers/alibabacloud/services/securitycenter/securitycenter_notification_enabled_high_risk/securitycenter_notification_enabled_high_risk.metadata.json +42 -0
  199. prowler/providers/alibabacloud/services/securitycenter/securitycenter_notification_enabled_high_risk/securitycenter_notification_enabled_high_risk.py +65 -0
  200. prowler/providers/alibabacloud/services/securitycenter/securitycenter_service.py +394 -0
  201. prowler/providers/alibabacloud/services/securitycenter/securitycenter_vulnerability_scan_enabled/__init__.py +0 -0
  202. prowler/providers/alibabacloud/services/securitycenter/securitycenter_vulnerability_scan_enabled/securitycenter_vulnerability_scan_enabled.metadata.json +39 -0
  203. prowler/providers/alibabacloud/services/securitycenter/securitycenter_vulnerability_scan_enabled/securitycenter_vulnerability_scan_enabled.py +68 -0
  204. prowler/providers/alibabacloud/services/sls/__init__.py +0 -0
  205. prowler/providers/alibabacloud/services/sls/sls_client.py +4 -0
  206. prowler/providers/alibabacloud/services/sls/sls_cloud_firewall_changes_alert_enabled/__init__.py +0 -0
  207. prowler/providers/alibabacloud/services/sls/sls_cloud_firewall_changes_alert_enabled/sls_cloud_firewall_changes_alert_enabled.metadata.json +39 -0
  208. prowler/providers/alibabacloud/services/sls/sls_cloud_firewall_changes_alert_enabled/sls_cloud_firewall_changes_alert_enabled.py +50 -0
  209. prowler/providers/alibabacloud/services/sls/sls_customer_created_cmk_changes_alert_enabled/__init__.py +0 -0
  210. prowler/providers/alibabacloud/services/sls/sls_customer_created_cmk_changes_alert_enabled/sls_customer_created_cmk_changes_alert_enabled.metadata.json +39 -0
  211. prowler/providers/alibabacloud/services/sls/sls_customer_created_cmk_changes_alert_enabled/sls_customer_created_cmk_changes_alert_enabled.py +48 -0
  212. prowler/providers/alibabacloud/services/sls/sls_logstore_retention_period/__init__.py +0 -0
  213. prowler/providers/alibabacloud/services/sls/sls_logstore_retention_period/sls_logstore_retention_period.metadata.json +38 -0
  214. prowler/providers/alibabacloud/services/sls/sls_logstore_retention_period/sls_logstore_retention_period.py +32 -0
  215. prowler/providers/alibabacloud/services/sls/sls_management_console_authentication_failures_alert_enabled/__init__.py +0 -0
  216. prowler/providers/alibabacloud/services/sls/sls_management_console_authentication_failures_alert_enabled/sls_management_console_authentication_failures_alert_enabled.metadata.json +39 -0
  217. prowler/providers/alibabacloud/services/sls/sls_management_console_authentication_failures_alert_enabled/sls_management_console_authentication_failures_alert_enabled.py +44 -0
  218. prowler/providers/alibabacloud/services/sls/sls_management_console_signin_without_mfa_alert_enabled/__init__.py +0 -0
  219. prowler/providers/alibabacloud/services/sls/sls_management_console_signin_without_mfa_alert_enabled/sls_management_console_signin_without_mfa_alert_enabled.metadata.json +39 -0
  220. prowler/providers/alibabacloud/services/sls/sls_management_console_signin_without_mfa_alert_enabled/sls_management_console_signin_without_mfa_alert_enabled.py +49 -0
  221. prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/__init__.py +0 -0
  222. prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/sls_oss_bucket_policy_changes_alert_enabled.metadata.json +39 -0
  223. prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/sls_oss_bucket_policy_changes_alert_enabled.py +57 -0
  224. prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/__init__.py +0 -0
  225. prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/sls_oss_permission_changes_alert_enabled.metadata.json +39 -0
  226. prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/sls_oss_permission_changes_alert_enabled.py +48 -0
  227. prowler/providers/alibabacloud/services/sls/sls_ram_role_changes_alert_enabled/__init__.py +0 -0
  228. prowler/providers/alibabacloud/services/sls/sls_ram_role_changes_alert_enabled/sls_ram_role_changes_alert_enabled.metadata.json +39 -0
  229. prowler/providers/alibabacloud/services/sls/sls_ram_role_changes_alert_enabled/sls_ram_role_changes_alert_enabled.py +54 -0
  230. prowler/providers/alibabacloud/services/sls/sls_rds_instance_configuration_changes_alert_enabled/__init__.py +0 -0
  231. prowler/providers/alibabacloud/services/sls/sls_rds_instance_configuration_changes_alert_enabled/sls_rds_instance_configuration_changes_alert_enabled.metadata.json +39 -0
  232. prowler/providers/alibabacloud/services/sls/sls_rds_instance_configuration_changes_alert_enabled/sls_rds_instance_configuration_changes_alert_enabled.py +72 -0
  233. prowler/providers/alibabacloud/services/sls/sls_root_account_usage_alert_enabled/__init__.py +0 -0
  234. prowler/providers/alibabacloud/services/sls/sls_root_account_usage_alert_enabled/sls_root_account_usage_alert_enabled.metadata.json +39 -0
  235. prowler/providers/alibabacloud/services/sls/sls_root_account_usage_alert_enabled/sls_root_account_usage_alert_enabled.py +50 -0
  236. prowler/providers/alibabacloud/services/sls/sls_security_group_changes_alert_enabled/__init__.py +0 -0
  237. prowler/providers/alibabacloud/services/sls/sls_security_group_changes_alert_enabled/sls_security_group_changes_alert_enabled.metadata.json +39 -0
  238. prowler/providers/alibabacloud/services/sls/sls_security_group_changes_alert_enabled/sls_security_group_changes_alert_enabled.py +56 -0
  239. prowler/providers/alibabacloud/services/sls/sls_service.py +137 -0
  240. prowler/providers/alibabacloud/services/sls/sls_unauthorized_api_calls_alert_enabled/__init__.py +0 -0
  241. prowler/providers/alibabacloud/services/sls/sls_unauthorized_api_calls_alert_enabled/sls_unauthorized_api_calls_alert_enabled.metadata.json +39 -0
  242. prowler/providers/alibabacloud/services/sls/sls_unauthorized_api_calls_alert_enabled/sls_unauthorized_api_calls_alert_enabled.py +56 -0
  243. prowler/providers/alibabacloud/services/sls/sls_vpc_changes_alert_enabled/__init__.py +0 -0
  244. prowler/providers/alibabacloud/services/sls/sls_vpc_changes_alert_enabled/sls_vpc_changes_alert_enabled.metadata.json +39 -0
  245. prowler/providers/alibabacloud/services/sls/sls_vpc_changes_alert_enabled/sls_vpc_changes_alert_enabled.py +57 -0
  246. prowler/providers/alibabacloud/services/sls/sls_vpc_network_route_changes_alert_enabled/__init__.py +0 -0
  247. prowler/providers/alibabacloud/services/sls/sls_vpc_network_route_changes_alert_enabled/sls_vpc_network_route_changes_alert_enabled.metadata.json +39 -0
  248. prowler/providers/alibabacloud/services/sls/sls_vpc_network_route_changes_alert_enabled/sls_vpc_network_route_changes_alert_enabled.py +52 -0
  249. prowler/providers/alibabacloud/services/vpc/__init__.py +0 -0
  250. prowler/providers/alibabacloud/services/vpc/vpc_client.py +4 -0
  251. prowler/providers/alibabacloud/services/vpc/vpc_flow_logs_enabled/__init__.py +0 -0
  252. prowler/providers/alibabacloud/services/vpc/vpc_flow_logs_enabled/vpc_flow_logs_enabled.metadata.json +39 -0
  253. prowler/providers/alibabacloud/services/vpc/vpc_flow_logs_enabled/vpc_flow_logs_enabled.py +30 -0
  254. prowler/providers/alibabacloud/services/vpc/vpc_service.py +102 -0
  255. prowler/providers/aws/aws_regions_by_service.json +20 -0
  256. prowler/providers/aws/services/apigateway/apigateway_restapi_waf_acl_attached/apigateway_restapi_waf_acl_attached.metadata.json +1 -3
  257. prowler/providers/aws/services/cloudtrail/cloudtrail_insights_exist/cloudtrail_insights_exist.metadata.json +1 -1
  258. prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_network_acls_alarm_configured/cloudwatch_changes_to_network_acls_alarm_configured.metadata.json +1 -2
  259. prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_network_gateways_alarm_configured/cloudwatch_changes_to_network_gateways_alarm_configured.metadata.json +1 -2
  260. prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_network_route_tables_alarm_configured/cloudwatch_changes_to_network_route_tables_alarm_configured.metadata.json +1 -2
  261. prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_vpcs_alarm_configured/cloudwatch_changes_to_vpcs_alarm_configured.metadata.json +1 -2
  262. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled/cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled.metadata.json +1 -2
  263. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled/cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled.metadata.json +1 -2
  264. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_authentication_failures/cloudwatch_log_metric_filter_authentication_failures.metadata.json +1 -2
  265. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_aws_organizations_changes/cloudwatch_log_metric_filter_aws_organizations_changes.metadata.json +1 -2
  266. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_for_s3_bucket_policy_changes/cloudwatch_log_metric_filter_for_s3_bucket_policy_changes.metadata.json +1 -2
  267. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_policy_changes/cloudwatch_log_metric_filter_policy_changes.metadata.json +1 -2
  268. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_root_usage/cloudwatch_log_metric_filter_root_usage.metadata.json +1 -2
  269. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_security_group_changes/cloudwatch_log_metric_filter_security_group_changes.metadata.json +1 -2
  270. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_sign_in_without_mfa/cloudwatch_log_metric_filter_sign_in_without_mfa.metadata.json +1 -2
  271. prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_unauthorized_api_calls/cloudwatch_log_metric_filter_unauthorized_api_calls.metadata.json +0 -1
  272. prowler/providers/aws/services/guardduty/guardduty_centrally_managed/guardduty_centrally_managed.metadata.json +16 -10
  273. prowler/providers/aws/services/guardduty/guardduty_ec2_malware_protection_enabled/guardduty_ec2_malware_protection_enabled.metadata.json +23 -14
  274. prowler/providers/aws/services/guardduty/guardduty_eks_audit_log_enabled/guardduty_eks_audit_log_enabled.metadata.json +19 -13
  275. prowler/providers/aws/services/guardduty/guardduty_eks_runtime_monitoring_enabled/guardduty_eks_runtime_monitoring_enabled.metadata.json +18 -12
  276. prowler/providers/aws/services/guardduty/guardduty_is_enabled/guardduty_is_enabled.metadata.json +24 -13
  277. prowler/providers/aws/services/guardduty/guardduty_lambda_protection_enabled/guardduty_lambda_protection_enabled.metadata.json +20 -14
  278. prowler/providers/aws/services/guardduty/guardduty_no_high_severity_findings/guardduty_no_high_severity_findings.metadata.json +18 -9
  279. prowler/providers/aws/services/guardduty/guardduty_rds_protection_enabled/guardduty_rds_protection_enabled.metadata.json +18 -11
  280. prowler/providers/aws/services/guardduty/guardduty_s3_protection_enabled/guardduty_s3_protection_enabled.metadata.json +21 -12
  281. prowler/providers/aws/services/lightsail/lightsail_database_public/lightsail_database_public.metadata.json +21 -13
  282. prowler/providers/aws/services/lightsail/lightsail_instance_automated_snapshots/lightsail_instance_automated_snapshots.metadata.json +24 -13
  283. prowler/providers/aws/services/lightsail/lightsail_instance_public/lightsail_instance_public.metadata.json +21 -13
  284. prowler/providers/aws/services/lightsail/lightsail_static_ip_unused/lightsail_static_ip_unused.metadata.json +23 -14
  285. prowler/providers/aws/services/macie/macie_automated_sensitive_data_discovery_enabled/macie_automated_sensitive_data_discovery_enabled.metadata.json +20 -12
  286. prowler/providers/aws/services/macie/macie_is_enabled/macie_is_enabled.metadata.json +17 -12
  287. prowler/providers/aws/services/mq/mq_broker_active_deployment_mode/mq_broker_active_deployment_mode.metadata.json +22 -13
  288. prowler/providers/aws/services/mq/mq_broker_auto_minor_version_upgrades/mq_broker_auto_minor_version_upgrades.metadata.json +21 -12
  289. prowler/providers/aws/services/mq/mq_broker_cluster_deployment_mode/mq_broker_cluster_deployment_mode.metadata.json +23 -14
  290. prowler/providers/aws/services/mq/mq_broker_logging_enabled/mq_broker_logging_enabled.metadata.json +22 -13
  291. prowler/providers/aws/services/mq/mq_broker_not_publicly_accessible/mq_broker_not_publicly_accessible.metadata.json +20 -12
  292. prowler/providers/aws/services/networkfirewall/networkfirewall_deletion_protection/networkfirewall_deletion_protection.metadata.json +21 -13
  293. prowler/providers/aws/services/networkfirewall/networkfirewall_in_all_vpc/networkfirewall_in_all_vpc.metadata.json +23 -13
  294. prowler/providers/aws/services/networkfirewall/networkfirewall_logging_enabled/networkfirewall_logging_enabled.metadata.json +20 -13
  295. prowler/providers/aws/services/networkfirewall/networkfirewall_multi_az/networkfirewall_multi_az.metadata.json +22 -14
  296. prowler/providers/aws/services/networkfirewall/networkfirewall_policy_default_action_fragmented_packets/networkfirewall_policy_default_action_fragmented_packets.metadata.json +26 -14
  297. prowler/providers/aws/services/networkfirewall/networkfirewall_policy_default_action_full_packets/networkfirewall_policy_default_action_full_packets.metadata.json +22 -13
  298. prowler/providers/aws/services/networkfirewall/networkfirewall_policy_rule_group_associated/networkfirewall_policy_rule_group_associated.metadata.json +25 -14
  299. prowler/providers/common/provider.py +12 -0
  300. prowler/providers/gcp/services/accesscontextmanager/__init__.py +0 -0
  301. prowler/providers/gcp/services/accesscontextmanager/accesscontextmanager_client.py +6 -0
  302. prowler/providers/gcp/services/accesscontextmanager/accesscontextmanager_service.py +101 -0
  303. prowler/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service.py +10 -0
  304. prowler/providers/gcp/services/cloudstorage/cloudstorage_service.py +13 -0
  305. prowler/providers/gcp/services/cloudstorage/cloudstorage_uses_vpc_service_controls/__init__.py +0 -0
  306. prowler/providers/gcp/services/cloudstorage/cloudstorage_uses_vpc_service_controls/cloudstorage_uses_vpc_service_controls.metadata.json +36 -0
  307. prowler/providers/gcp/services/cloudstorage/cloudstorage_uses_vpc_service_controls/cloudstorage_uses_vpc_service_controls.py +67 -0
  308. prowler/providers/gcp/services/compute/compute_instance_automatic_restart_enabled/__init__.py +0 -0
  309. prowler/providers/gcp/services/compute/compute_instance_automatic_restart_enabled/compute_instance_automatic_restart_enabled.metadata.json +36 -0
  310. prowler/providers/gcp/services/compute/compute_instance_automatic_restart_enabled/compute_instance_automatic_restart_enabled.py +35 -0
  311. prowler/providers/gcp/services/compute/compute_instance_deletion_protection_enabled/__init__.py +0 -0
  312. prowler/providers/gcp/services/compute/compute_instance_deletion_protection_enabled/compute_instance_deletion_protection_enabled.metadata.json +36 -0
  313. prowler/providers/gcp/services/compute/compute_instance_deletion_protection_enabled/compute_instance_deletion_protection_enabled.py +29 -0
  314. prowler/providers/gcp/services/compute/compute_instance_preemptible_vm_disabled/__init__.py +0 -0
  315. prowler/providers/gcp/services/compute/compute_instance_preemptible_vm_disabled/compute_instance_preemptible_vm_disabled.metadata.json +37 -0
  316. prowler/providers/gcp/services/compute/compute_instance_preemptible_vm_disabled/compute_instance_preemptible_vm_disabled.py +32 -0
  317. prowler/providers/gcp/services/compute/compute_service.py +16 -0
  318. prowler/providers/github/services/repository/repository_immutable_releases_enabled/__init__.py +0 -0
  319. prowler/providers/github/services/repository/repository_immutable_releases_enabled/repository_immutable_releases_enabled.metadata.json +33 -0
  320. prowler/providers/github/services/repository/repository_immutable_releases_enabled/repository_immutable_releases_enabled.py +41 -0
  321. prowler/providers/github/services/repository/repository_service.py +52 -0
  322. {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/METADATA +40 -22
  323. {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/RECORD +326 -73
  324. {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/LICENSE +0 -0
  325. {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/WHEEL +0 -0
  326. {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,72 @@
1
+ from prowler.lib.check.models import Check, CheckReportAlibabaCloud
2
+ from prowler.providers.alibabacloud.services.sls.sls_client import sls_client
3
+
4
+
5
+ class sls_rds_instance_configuration_changes_alert_enabled(Check):
6
+ def execute(self) -> list[CheckReportAlibabaCloud]:
7
+ findings = []
8
+ found = False
9
+
10
+ for alert in sls_client.alerts:
11
+ query_list = alert.configuration.get("queryList", [])
12
+ if not query_list:
13
+ continue
14
+
15
+ for query_obj in query_list:
16
+ query = query_obj.get("query", "")
17
+ if "rds" in query and (
18
+ "ModifyHASwitchConfig" in query
19
+ or "ModifyDBInstanceHAConfig" in query
20
+ or "SwitchDBInstanceHA" in query
21
+ or "ModifyDBInstanceSpec" in query
22
+ or "MigrateSecurityIPMode" in query
23
+ or "ModifySecurityIps" in query
24
+ or "ModifyDBInstanceSSL" in query
25
+ or "MigrateToOtherZone" in query
26
+ or "UpgradeDBInstanceKernelVersion" in query
27
+ or "UpgradeDBInstanceEngineVersion" in query
28
+ or "ModifyDBInstanceMaintainTime" in query
29
+ or "ModifyDBInstanceAutoUpgradeMinorVersion" in query
30
+ or "AllocateInstancePublicConnection" in query
31
+ or "ModifyDBInstanceConnectionString" in query
32
+ or "ModifyDBInstanceNetworkExpireTime" in query
33
+ or "ReleaseInstancePublicConnection" in query
34
+ or "SwitchDBInstanceNetType" in query
35
+ or "ModifyDBInstanceNetworkType" in query
36
+ or "ModifyDTCSecurityIpHostsForSQLServer" in query
37
+ or "ModifySecurityGroupConfiguration" in query
38
+ or "CreateBackup" in query
39
+ or "ModifyBackupPolicy" in query
40
+ or "DeleteBackup" in query
41
+ or "CreateDdrInstance" in query
42
+ or "ModifyInstanceCrossBackupPolicy" in query
43
+ ):
44
+ found = True
45
+ report = CheckReportAlibabaCloud(
46
+ metadata=self.metadata(), resource=alert
47
+ )
48
+ report.status = "PASS"
49
+ report.status_extended = f"SLS Alert {alert.name} is configured for RDS instance configuration changes."
50
+ report.resource_id = alert.name
51
+ report.resource_arn = alert.arn
52
+ report.region = alert.region
53
+ findings.append(report)
54
+ break
55
+
56
+ if found:
57
+ break
58
+
59
+ if not found:
60
+ report = CheckReportAlibabaCloud(
61
+ metadata=self.metadata(), resource=sls_client.provider.identity
62
+ )
63
+ report.status = "FAIL"
64
+ report.status_extended = (
65
+ "No SLS Alert configured for RDS instance configuration changes."
66
+ )
67
+ report.resource_id = sls_client.audited_account
68
+ report.resource_arn = sls_client.provider.identity.identity_arn
69
+ report.region = sls_client.region
70
+ findings.append(report)
71
+
72
+ return findings
@@ -0,0 +1,39 @@
1
+ {
2
+ "Provider": "alibabacloud",
3
+ "CheckID": "sls_root_account_usage_alert_enabled",
4
+ "CheckTitle": "A log monitoring and alerts are set up for usage of root account",
5
+ "CheckType": [
6
+ "Unusual logon",
7
+ "Cloud threat detection"
8
+ ],
9
+ "ServiceName": "sls",
10
+ "SubServiceName": "",
11
+ "ResourceIdTemplate": "acs:log:region:account-id:project/project-name/alert/alert-name",
12
+ "Severity": "medium",
13
+ "ResourceType": "AlibabaCloudSLSAlert",
14
+ "Description": "Real-time monitoring of API calls can be achieved by directing **ActionTrail Logs** to Log Service and establishing corresponding query and alarms.\n\nIt is recommended that a query and alarm be established for **root account login** attempts.",
15
+ "Risk": "Monitoring for **root account logins** will provide visibility into the use of a fully privileged account and an opportunity to reduce its use.\n\nRoot account usage should be minimized and closely monitored.",
16
+ "RelatedUrl": "",
17
+ "AdditionalURLs": [
18
+ "https://www.alibabacloud.com/help/en/doc-detail/91784.htm",
19
+ "https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/root-account-login-frequent-alert.html"
20
+ ],
21
+ "Remediation": {
22
+ "Code": {
23
+ "CLI": "",
24
+ "NativeIaC": "",
25
+ "Other": "",
26
+ "Terraform": ""
27
+ },
28
+ "Recommendation": {
29
+ "Text": "1. Log on to the **SLS Console**\n2. Ensure **ActionTrail** is enabled\n3. Select **Alerts**\n4. Ensure alert rule has been enabled for root account usage",
30
+ "Url": "https://hub.prowler.com/check/sls_root_account_usage_alert_enabled"
31
+ }
32
+ },
33
+ "Categories": [
34
+ "logging"
35
+ ],
36
+ "DependsOn": [],
37
+ "RelatedTo": [],
38
+ "Notes": ""
39
+ }
@@ -0,0 +1,50 @@
1
+ from prowler.lib.check.models import Check, CheckReportAlibabaCloud
2
+ from prowler.providers.alibabacloud.services.sls.sls_client import sls_client
3
+
4
+
5
+ class sls_root_account_usage_alert_enabled(Check):
6
+ def execute(self) -> list[CheckReportAlibabaCloud]:
7
+ findings = []
8
+ found = False
9
+
10
+ for alert in sls_client.alerts:
11
+ query_list = alert.configuration.get("queryList", [])
12
+ if not query_list:
13
+ continue
14
+
15
+ for query_obj in query_list:
16
+ query = query_obj.get("query", "")
17
+ if (
18
+ "ConsoleSignin" in query
19
+ and "event.userIdentity.type" in query
20
+ and "root-account" in query
21
+ ):
22
+ found = True
23
+ report = CheckReportAlibabaCloud(
24
+ metadata=self.metadata(), resource=alert
25
+ )
26
+ report.status = "PASS"
27
+ report.status_extended = (
28
+ f"SLS Alert {alert.name} is configured for root account usage."
29
+ )
30
+ report.resource_id = alert.name
31
+ report.resource_arn = alert.arn
32
+ report.region = alert.region
33
+ findings.append(report)
34
+ break
35
+
36
+ if found:
37
+ break
38
+
39
+ if not found:
40
+ report = CheckReportAlibabaCloud(
41
+ metadata=self.metadata(), resource=sls_client.provider.identity
42
+ )
43
+ report.status = "FAIL"
44
+ report.status_extended = "No SLS Alert configured for root account usage."
45
+ report.resource_id = sls_client.audited_account
46
+ report.resource_arn = sls_client.provider.identity.identity_arn
47
+ report.region = sls_client.region
48
+ findings.append(report)
49
+
50
+ return findings
@@ -0,0 +1,39 @@
1
+ {
2
+ "Provider": "alibabacloud",
3
+ "CheckID": "sls_security_group_changes_alert_enabled",
4
+ "CheckTitle": "A log monitoring and alerts are set up for security group changes",
5
+ "CheckType": [
6
+ "Suspicious network connection",
7
+ "Cloud threat detection"
8
+ ],
9
+ "ServiceName": "sls",
10
+ "SubServiceName": "",
11
+ "ResourceIdTemplate": "acs:log:region:account-id:project/project-name/alert/alert-name",
12
+ "Severity": "medium",
13
+ "ResourceType": "AlibabaCloudSLSAlert",
14
+ "Description": "Real-time monitoring of API calls can be achieved by directing **ActionTrail Logs** to Log Service and establishing corresponding query and alarms.\n\n**Security Groups** are a stateful packet filter that controls ingress and egress traffic within a VPC. It is recommended that a query and alarm be established for changes to Security Groups.",
15
+ "Risk": "Monitoring changes to **security groups** will help ensure that resources and services are not unintentionally exposed.\n\nUnauthorized security group modifications could lead to **network exposure** and **unauthorized access**.",
16
+ "RelatedUrl": "",
17
+ "AdditionalURLs": [
18
+ "https://www.alibabacloud.com/help/en/doc-detail/91784.htm",
19
+ "https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/security-group-config-changes-alert.html"
20
+ ],
21
+ "Remediation": {
22
+ "Code": {
23
+ "CLI": "",
24
+ "NativeIaC": "",
25
+ "Other": "",
26
+ "Terraform": ""
27
+ },
28
+ "Recommendation": {
29
+ "Text": "1. Log on to the **SLS Console**\n2. Ensure **ActionTrail** is enabled\n3. Select **Alerts**\n4. Ensure alert rule has been enabled for security group changes",
30
+ "Url": "https://hub.prowler.com/check/sls_security_group_changes_alert_enabled"
31
+ }
32
+ },
33
+ "Categories": [
34
+ "logging"
35
+ ],
36
+ "DependsOn": [],
37
+ "RelatedTo": [],
38
+ "Notes": ""
39
+ }
@@ -0,0 +1,56 @@
1
+ from prowler.lib.check.models import Check, CheckReportAlibabaCloud
2
+ from prowler.providers.alibabacloud.services.sls.sls_client import sls_client
3
+
4
+
5
+ class sls_security_group_changes_alert_enabled(Check):
6
+ def execute(self) -> list[CheckReportAlibabaCloud]:
7
+ findings = []
8
+ found = False
9
+
10
+ for alert in sls_client.alerts:
11
+ query_list = alert.configuration.get("queryList", [])
12
+ if not query_list:
13
+ continue
14
+
15
+ for query_obj in query_list:
16
+ query = query_obj.get("query", "")
17
+ if (
18
+ "CreateSecurityGroup" in query
19
+ or "AuthorizeSecurityGroup" in query
20
+ or "AuthorizeSecurityGroupEgress" in query
21
+ or "RevokeSecurityGroup" in query
22
+ or "RevokeSecurityGroupEgress" in query
23
+ or "JoinSecurityGroup" in query
24
+ or "LeaveSecurityGroup" in query
25
+ or "DeleteSecurityGroup" in query
26
+ or "ModifySecurityGroupPolicy" in query
27
+ ):
28
+ found = True
29
+ report = CheckReportAlibabaCloud(
30
+ metadata=self.metadata(), resource=alert
31
+ )
32
+ report.status = "PASS"
33
+ report.status_extended = f"SLS Alert {alert.name} is configured for security group changes."
34
+ report.resource_id = alert.name
35
+ report.resource_arn = alert.arn
36
+ report.region = alert.region
37
+ findings.append(report)
38
+ break
39
+
40
+ if found:
41
+ break
42
+
43
+ if not found:
44
+ report = CheckReportAlibabaCloud(
45
+ metadata=self.metadata(), resource=sls_client.provider.identity
46
+ )
47
+ report.status = "FAIL"
48
+ report.status_extended = (
49
+ "No SLS Alert configured for security group changes."
50
+ )
51
+ report.resource_id = sls_client.audited_account
52
+ report.resource_arn = sls_client.provider.identity.identity_arn
53
+ report.region = sls_client.region
54
+ findings.append(report)
55
+
56
+ return findings
@@ -0,0 +1,137 @@
1
+ from alibabacloud_sls20201230 import models as sls_models
2
+ from pydantic.v1 import BaseModel
3
+
4
+ from prowler.lib.logger import logger
5
+ from prowler.providers.alibabacloud.lib.service.service import AlibabaCloudService
6
+
7
+
8
+ class Alert(BaseModel):
9
+ name: str
10
+ display_name: str
11
+ state: str
12
+ schedule: dict
13
+ configuration: dict
14
+ project: str
15
+ region: str
16
+ arn: str = ""
17
+
18
+
19
+ class LogStore(BaseModel):
20
+ name: str
21
+ project: str
22
+ retention_forever: bool
23
+ retention_days: int
24
+ region: str
25
+ arn: str = ""
26
+
27
+
28
+ class Sls(AlibabaCloudService):
29
+ def __init__(self, provider):
30
+ super().__init__("sls", provider)
31
+ self.alerts = []
32
+ self.log_stores = []
33
+ self._get_alerts()
34
+ self._get_log_stores()
35
+
36
+ def _get_alerts(self):
37
+ for region in self.regional_clients:
38
+ client = self.regional_clients[region]
39
+ try:
40
+ # List Projects
41
+ list_project_request = sls_models.ListProjectRequest(offset=0, size=500)
42
+ projects_resp = client.list_project(list_project_request)
43
+
44
+ if projects_resp.body and projects_resp.body.projects:
45
+ for project in projects_resp.body.projects:
46
+ project_name = project.project_name
47
+
48
+ # List Alerts for each project
49
+ list_alert_request = sls_models.ListAlertsRequest(
50
+ offset=0, size=500
51
+ )
52
+ try:
53
+ alerts_resp = client.list_alerts(
54
+ project_name, list_alert_request
55
+ )
56
+ if alerts_resp.body and alerts_resp.body.results:
57
+ for alert in alerts_resp.body.results:
58
+ self.alerts.append(
59
+ Alert(
60
+ name=alert.name,
61
+ display_name=alert.display_name,
62
+ state=alert.state,
63
+ schedule=(
64
+ alert.schedule.to_map()
65
+ if alert.schedule
66
+ else {}
67
+ ),
68
+ configuration=(
69
+ alert.configuration.to_map()
70
+ if alert.configuration
71
+ else {}
72
+ ),
73
+ project=project_name,
74
+ region=region,
75
+ arn=f"acs:log:{region}:{self.audited_account}:project/{project_name}/alert/{alert.name}",
76
+ )
77
+ )
78
+ except Exception as e:
79
+ logger.error(
80
+ f"{region} -- {e.__class__.__name__}[{e.__traceback__.tb_lineno}]: {e}"
81
+ )
82
+ except Exception as error:
83
+ logger.error(
84
+ f"{region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
85
+ )
86
+
87
+ def _get_log_stores(self):
88
+ for region in self.regional_clients:
89
+ client = self.regional_clients[region]
90
+ try:
91
+ # List Projects
92
+ list_project_request = sls_models.ListProjectRequest(offset=0, size=500)
93
+ projects_resp = client.list_project(list_project_request)
94
+
95
+ if projects_resp.body and projects_resp.body.projects:
96
+ for project in projects_resp.body.projects:
97
+ project_name = project.project_name
98
+
99
+ # List LogStores for each project
100
+ list_logstores_request = sls_models.ListLogStoresRequest(
101
+ offset=0, size=500
102
+ )
103
+ try:
104
+ logstores_resp = client.list_log_stores(
105
+ project_name, list_logstores_request
106
+ )
107
+ if logstores_resp.body and logstores_resp.body.logstores:
108
+ for logstore_name in logstores_resp.body.logstores:
109
+ try:
110
+ logstore_resp = client.get_log_store(
111
+ project_name, logstore_name
112
+ )
113
+ if logstore_resp.body:
114
+ self.log_stores.append(
115
+ LogStore(
116
+ name=logstore_name,
117
+ project=project_name,
118
+ retention_forever=False,
119
+ retention_days=logstore_resp.body.ttl,
120
+ region=region,
121
+ arn=f"acs:log:{region}:{self.audited_account}:project/{project_name}/logstore/{logstore_name}",
122
+ )
123
+ )
124
+ except Exception as e:
125
+ logger.error(
126
+ f"{region} -- {e.__class__.__name__}[{e.__traceback__.tb_lineno}]: {e}"
127
+ )
128
+
129
+ except Exception as e:
130
+ logger.error(
131
+ f"{region} -- {e.__class__.__name__}[{e.__traceback__.tb_lineno}]: {e}"
132
+ )
133
+
134
+ except Exception as error:
135
+ logger.error(
136
+ f"{region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
137
+ )
@@ -0,0 +1,39 @@
1
+ {
2
+ "Provider": "alibabacloud",
3
+ "CheckID": "sls_unauthorized_api_calls_alert_enabled",
4
+ "CheckTitle": "A log monitoring and alerts are set up for unauthorized API calls",
5
+ "CheckType": [
6
+ "Unusual logon",
7
+ "Cloud threat detection"
8
+ ],
9
+ "ServiceName": "sls",
10
+ "SubServiceName": "",
11
+ "ResourceIdTemplate": "acs:log:region:account-id:project/project-name/alert/alert-name",
12
+ "Severity": "medium",
13
+ "ResourceType": "AlibabaCloudSLSAlert",
14
+ "Description": "Real-time monitoring of API calls can be achieved by directing **ActionTrail Logs** to Log Service and establishing corresponding query and alarms.\n\nIt is recommended that a query and alarm be established for **unauthorized API calls**.",
15
+ "Risk": "Monitoring **unauthorized API calls** will help reveal application errors and may reduce time to detect **malicious activity**.\n\nThis is essential for early detection of potential security breaches.",
16
+ "RelatedUrl": "",
17
+ "AdditionalURLs": [
18
+ "https://www.alibabacloud.com/help/en/doc-detail/91784.htm",
19
+ "https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/unauthorized-api-calls-alert.html"
20
+ ],
21
+ "Remediation": {
22
+ "Code": {
23
+ "CLI": "",
24
+ "NativeIaC": "",
25
+ "Other": "",
26
+ "Terraform": ""
27
+ },
28
+ "Recommendation": {
29
+ "Text": "1. Log on to the **SLS Console**\n2. Ensure **ActionTrail** is enabled\n3. Select **Alerts**\n4. Ensure alert rule has been enabled for unauthorized API calls",
30
+ "Url": "https://hub.prowler.com/check/sls_unauthorized_api_calls_alert_enabled"
31
+ }
32
+ },
33
+ "Categories": [
34
+ "logging"
35
+ ],
36
+ "DependsOn": [],
37
+ "RelatedTo": [],
38
+ "Notes": ""
39
+ }
@@ -0,0 +1,56 @@
1
+ from prowler.lib.check.models import Check, CheckReportAlibabaCloud
2
+ from prowler.providers.alibabacloud.services.sls.sls_client import sls_client
3
+
4
+
5
+ class sls_unauthorized_api_calls_alert_enabled(Check):
6
+ def execute(self) -> list[CheckReportAlibabaCloud]:
7
+ findings = []
8
+ found = False
9
+
10
+ for alert in sls_client.alerts:
11
+ query_list = alert.configuration.get("queryList", [])
12
+ if not query_list:
13
+ continue
14
+
15
+ for query_obj in query_list:
16
+ query = query_obj.get("query", "")
17
+ if "ApiCall" in query and (
18
+ "NoPermission" in query
19
+ or "Forbidden" in query
20
+ or "Forbbiden" in query
21
+ or "InvalidAccessKeyId" in query
22
+ or "InvalidSecurityToken" in query
23
+ or "SignatureDoesNotMatch" in query
24
+ or "InvalidAuthorization" in query
25
+ or "AccessForbidden" in query
26
+ or "NotAuthorized" in query
27
+ ):
28
+ found = True
29
+ report = CheckReportAlibabaCloud(
30
+ metadata=self.metadata(), resource=alert
31
+ )
32
+ report.status = "PASS"
33
+ report.status_extended = f"SLS Alert {alert.name} is configured for unauthorized API calls."
34
+ report.resource_id = alert.name
35
+ report.resource_arn = alert.arn
36
+ report.region = alert.region
37
+ findings.append(report)
38
+ break
39
+
40
+ if found:
41
+ break
42
+
43
+ if not found:
44
+ report = CheckReportAlibabaCloud(
45
+ metadata=self.metadata(), resource=sls_client.provider.identity
46
+ )
47
+ report.status = "FAIL"
48
+ report.status_extended = (
49
+ "No SLS Alert configured for unauthorized API calls."
50
+ )
51
+ report.resource_id = sls_client.audited_account
52
+ report.resource_arn = sls_client.provider.identity.identity_arn
53
+ report.region = sls_client.region
54
+ findings.append(report)
55
+
56
+ return findings
@@ -0,0 +1,39 @@
1
+ {
2
+ "Provider": "alibabacloud",
3
+ "CheckID": "sls_vpc_changes_alert_enabled",
4
+ "CheckTitle": "Log monitoring and alerts are set up for VPC changes",
5
+ "CheckType": [
6
+ "Suspicious network connection",
7
+ "Cloud threat detection"
8
+ ],
9
+ "ServiceName": "sls",
10
+ "SubServiceName": "",
11
+ "ResourceIdTemplate": "acs:log:region:account-id:project/project-name/alert/alert-name",
12
+ "Severity": "medium",
13
+ "ResourceType": "AlibabaCloudSLSAlert",
14
+ "Description": "It is recommended that a **log search/analysis query and alarm** be established for **VPC changes**.",
15
+ "Risk": "Monitoring changes to **VPC** will help ensure VPC traffic flow is not getting impacted.\n\nUnauthorized VPC modifications could disrupt network connectivity or create security vulnerabilities.",
16
+ "RelatedUrl": "",
17
+ "AdditionalURLs": [
18
+ "https://www.alibabacloud.com/help/en/doc-detail/91784.htm",
19
+ "https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/vpc-config-changes-alert.html"
20
+ ],
21
+ "Remediation": {
22
+ "Code": {
23
+ "CLI": "",
24
+ "NativeIaC": "",
25
+ "Other": "",
26
+ "Terraform": ""
27
+ },
28
+ "Recommendation": {
29
+ "Text": "1. Log on to the **SLS Console**\n2. Ensure **ActionTrail** is enabled\n3. Select **Alerts**\n4. Ensure alert rule has been enabled for VPC changes",
30
+ "Url": "https://hub.prowler.com/check/sls_vpc_changes_alert_enabled"
31
+ }
32
+ },
33
+ "Categories": [
34
+ "logging"
35
+ ],
36
+ "DependsOn": [],
37
+ "RelatedTo": [],
38
+ "Notes": ""
39
+ }
@@ -0,0 +1,57 @@
1
+ from prowler.lib.check.models import Check, CheckReportAlibabaCloud
2
+ from prowler.providers.alibabacloud.services.sls.sls_client import sls_client
3
+
4
+
5
+ class sls_vpc_changes_alert_enabled(Check):
6
+ def execute(self) -> list[CheckReportAlibabaCloud]:
7
+ findings = []
8
+ found = False
9
+
10
+ for alert in sls_client.alerts:
11
+ query_list = alert.configuration.get("queryList", [])
12
+ if not query_list:
13
+ continue
14
+
15
+ for query_obj in query_list:
16
+ query = query_obj.get("query", "")
17
+ if ("Ecs" in query or "Vpc" in query) and (
18
+ "CreateVpc" in query
19
+ or "DeleteVpc" in query
20
+ or "DisableVpcClassicLink" in query
21
+ or "EnableVpcClassicLink" in query
22
+ or "DeletionProtection" in query
23
+ or "AssociateVpcCidrBlock" in query
24
+ or "UnassociateVpcCidrBlock" in query
25
+ or "RevokeInstanceFromCen" in query
26
+ or "CreateVSwitch" in query
27
+ or "DeleteVSwitch" in query
28
+ ):
29
+ found = True
30
+ report = CheckReportAlibabaCloud(
31
+ metadata=self.metadata(), resource=alert
32
+ )
33
+ report.status = "PASS"
34
+ report.status_extended = (
35
+ f"SLS Alert {alert.name} is configured for VPC changes."
36
+ )
37
+ report.resource_id = alert.name
38
+ report.resource_arn = alert.arn
39
+ report.region = alert.region
40
+ findings.append(report)
41
+ break
42
+
43
+ if found:
44
+ break
45
+
46
+ if not found:
47
+ report = CheckReportAlibabaCloud(
48
+ metadata=self.metadata(), resource=sls_client.provider.identity
49
+ )
50
+ report.status = "FAIL"
51
+ report.status_extended = "No SLS Alert configured for VPC changes."
52
+ report.resource_id = sls_client.audited_account
53
+ report.resource_arn = sls_client.provider.identity.identity_arn
54
+ report.region = sls_client.region
55
+ findings.append(report)
56
+
57
+ return findings
@@ -0,0 +1,39 @@
1
+ {
2
+ "Provider": "alibabacloud",
3
+ "CheckID": "sls_vpc_network_route_changes_alert_enabled",
4
+ "CheckTitle": "Log monitoring and alerts are set up for VPC network route changes",
5
+ "CheckType": [
6
+ "Suspicious network connection",
7
+ "Cloud threat detection"
8
+ ],
9
+ "ServiceName": "sls",
10
+ "SubServiceName": "",
11
+ "ResourceIdTemplate": "acs:log:region:account-id:project/project-name/alert/alert-name",
12
+ "Severity": "medium",
13
+ "ResourceType": "AlibabaCloudSLSAlert",
14
+ "Description": "It is recommended that a **metric filter and alarm** be established for **VPC network route** changes.",
15
+ "Risk": "Monitoring changes to **route tables** will help ensure that all VPC traffic flows through an expected path.\n\nUnauthorized route changes could redirect traffic through malicious intermediaries.",
16
+ "RelatedUrl": "",
17
+ "AdditionalURLs": [
18
+ "https://www.alibabacloud.com/help/en/doc-detail/91784.htm",
19
+ "https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/vpc-network-route-changes-alert.html"
20
+ ],
21
+ "Remediation": {
22
+ "Code": {
23
+ "CLI": "",
24
+ "NativeIaC": "",
25
+ "Other": "",
26
+ "Terraform": ""
27
+ },
28
+ "Recommendation": {
29
+ "Text": "1. Log on to the **SLS Console**\n2. Ensure **ActionTrail** is enabled\n3. Select **Alerts**\n4. Ensure alert rule has been enabled for VPC network route changes",
30
+ "Url": "https://hub.prowler.com/check/sls_vpc_network_route_changes_alert_enabled"
31
+ }
32
+ },
33
+ "Categories": [
34
+ "logging"
35
+ ],
36
+ "DependsOn": [],
37
+ "RelatedTo": [],
38
+ "Notes": ""
39
+ }