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.
- dashboard/assets/images/providers/alibabacloud_provider.png +0 -0
- dashboard/compliance/cis_2_0_alibabacloud.py +24 -0
- dashboard/lib/layouts.py +1 -0
- dashboard/pages/compliance.py +8 -2
- dashboard/pages/overview.py +52 -1
- prowler/CHANGELOG.md +59 -20
- prowler/__main__.py +40 -0
- prowler/compliance/alibabacloud/__init__.py +0 -0
- prowler/compliance/alibabacloud/cis_2.0_alibabacloud.json +1833 -0
- prowler/compliance/aws/iso27001_2013_aws.json +158 -158
- prowler/compliance/aws/soc2_aws.json +100 -0
- prowler/compliance/azure/rbi_cyber_security_framework_azure.json +248 -0
- prowler/compliance/azure/soc2_azure.json +87 -1
- prowler/compliance/gcp/soc2_gcp.json +82 -1
- prowler/config/config.py +2 -1
- prowler/lib/check/check.py +47 -1
- prowler/lib/check/models.py +23 -0
- prowler/lib/check/utils.py +1 -1
- prowler/lib/cli/parser.py +3 -2
- prowler/lib/outputs/compliance/cis/cis_alibabacloud.py +106 -0
- prowler/lib/outputs/compliance/cis/models.py +35 -0
- prowler/lib/outputs/finding.py +16 -0
- prowler/lib/outputs/html/html.py +67 -0
- prowler/lib/outputs/outputs.py +2 -0
- prowler/lib/outputs/summary_table.py +3 -0
- prowler/providers/alibabacloud/__init__.py +0 -0
- prowler/providers/alibabacloud/alibabacloud_provider.py +872 -0
- prowler/providers/alibabacloud/config.py +41 -0
- prowler/providers/alibabacloud/exceptions/__init__.py +0 -0
- prowler/providers/alibabacloud/exceptions/exceptions.py +116 -0
- prowler/providers/alibabacloud/lib/__init__.py +0 -0
- prowler/providers/alibabacloud/lib/arguments/__init__.py +0 -0
- prowler/providers/alibabacloud/lib/arguments/arguments.py +58 -0
- prowler/providers/alibabacloud/lib/mutelist/__init__.py +0 -0
- prowler/providers/alibabacloud/lib/mutelist/mutelist.py +175 -0
- prowler/providers/alibabacloud/lib/service/__init__.py +0 -0
- prowler/providers/alibabacloud/lib/service/service.py +113 -0
- prowler/providers/alibabacloud/models.py +266 -0
- prowler/providers/alibabacloud/services/__init__.py +0 -0
- prowler/providers/alibabacloud/services/actiontrail/__init__.py +0 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_client.py +6 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_multi_region_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_multi_region_enabled/actiontrail_multi_region_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_multi_region_enabled/actiontrail_multi_region_enabled.py +81 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_oss_bucket_not_publicly_accessible/__init__.py +0 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_oss_bucket_not_publicly_accessible/actiontrail_oss_bucket_not_publicly_accessible.metadata.json +40 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_oss_bucket_not_publicly_accessible/actiontrail_oss_bucket_not_publicly_accessible.py +119 -0
- prowler/providers/alibabacloud/services/actiontrail/actiontrail_service.py +110 -0
- prowler/providers/alibabacloud/services/cs/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_client.py +4 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cloudmonitor_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cloudmonitor_enabled/cs_kubernetes_cloudmonitor_enabled.metadata.json +38 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cloudmonitor_enabled/cs_kubernetes_cloudmonitor_enabled.py +26 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_recent/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_recent/cs_kubernetes_cluster_check_recent.metadata.json +38 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_recent/cs_kubernetes_cluster_check_recent.py +62 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_weekly/cs_kubernetes_cluster_check_weekly.metadata.json +38 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_cluster_check_weekly/cs_kubernetes_cluster_check_weekly.py +62 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_dashboard_disabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_dashboard_disabled/cs_kubernetes_dashboard_disabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_dashboard_disabled/cs_kubernetes_dashboard_disabled.py +26 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_eni_multiple_ip_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_eni_multiple_ip_enabled/cs_kubernetes_eni_multiple_ip_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_eni_multiple_ip_enabled/cs_kubernetes_eni_multiple_ip_enabled.py +26 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_log_service_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_log_service_enabled/cs_kubernetes_log_service_enabled.metadata.json +40 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_log_service_enabled/cs_kubernetes_log_service_enabled.py +26 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_network_policy_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_network_policy_enabled/cs_kubernetes_network_policy_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_network_policy_enabled/cs_kubernetes_network_policy_enabled.py +26 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_private_cluster_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_private_cluster_enabled/cs_kubernetes_private_cluster_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_private_cluster_enabled/cs_kubernetes_private_cluster_enabled.py +26 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_rbac_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_rbac_enabled/cs_kubernetes_rbac_enabled.metadata.json +40 -0
- prowler/providers/alibabacloud/services/cs/cs_kubernetes_rbac_enabled/cs_kubernetes_rbac_enabled.py +28 -0
- prowler/providers/alibabacloud/services/cs/cs_service.py +354 -0
- prowler/providers/alibabacloud/services/ecs/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_attached_disk_encrypted/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_attached_disk_encrypted/ecs_attached_disk_encrypted.metadata.json +38 -0
- prowler/providers/alibabacloud/services/ecs/ecs_attached_disk_encrypted/ecs_attached_disk_encrypted.py +38 -0
- prowler/providers/alibabacloud/services/ecs/ecs_client.py +4 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_endpoint_protection_installed/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_endpoint_protection_installed/ecs_instance_endpoint_protection_installed.metadata.json +41 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_endpoint_protection_installed/ecs_instance_endpoint_protection_installed.py +47 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_latest_os_patches_applied/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_latest_os_patches_applied/ecs_instance_latest_os_patches_applied.metadata.json +38 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_latest_os_patches_applied/ecs_instance_latest_os_patches_applied.py +50 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_no_legacy_network/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_no_legacy_network/ecs_instance_no_legacy_network.metadata.json +38 -0
- prowler/providers/alibabacloud/services/ecs/ecs_instance_no_legacy_network/ecs_instance_no_legacy_network.py +34 -0
- prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_rdp_internet/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_rdp_internet/ecs_securitygroup_restrict_rdp_internet.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_rdp_internet/ecs_securitygroup_restrict_rdp_internet.py +68 -0
- prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_ssh_internet/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_ssh_internet/ecs_securitygroup_restrict_ssh_internet.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ecs/ecs_securitygroup_restrict_ssh_internet/ecs_securitygroup_restrict_ssh_internet.py +68 -0
- prowler/providers/alibabacloud/services/ecs/ecs_service.py +380 -0
- prowler/providers/alibabacloud/services/ecs/ecs_unattached_disk_encrypted/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ecs/ecs_unattached_disk_encrypted/ecs_unattached_disk_encrypted.metadata.json +38 -0
- prowler/providers/alibabacloud/services/ecs/ecs_unattached_disk_encrypted/ecs_unattached_disk_encrypted.py +38 -0
- prowler/providers/alibabacloud/services/ecs/lib/security_groups.py +23 -0
- prowler/providers/alibabacloud/services/oss/__init__.py +0 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_logging_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_logging_enabled/oss_bucket_logging_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_logging_enabled/oss_bucket_logging_enabled.py +37 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_not_publicly_accessible/__init__.py +0 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_not_publicly_accessible/oss_bucket_not_publicly_accessible.metadata.json +39 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_not_publicly_accessible/oss_bucket_not_publicly_accessible.py +89 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_secure_transport_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_secure_transport_enabled/oss_bucket_secure_transport_enabled.metadata.json +38 -0
- prowler/providers/alibabacloud/services/oss/oss_bucket_secure_transport_enabled/oss_bucket_secure_transport_enabled.py +87 -0
- prowler/providers/alibabacloud/services/oss/oss_client.py +4 -0
- prowler/providers/alibabacloud/services/oss/oss_service.py +317 -0
- prowler/providers/alibabacloud/services/ram/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_client.py +4 -0
- prowler/providers/alibabacloud/services/ram/ram_no_root_access_key/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_no_root_access_key/ram_no_root_access_key.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_no_root_access_key/ram_no_root_access_key.py +33 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_lowercase/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_lowercase/ram_password_policy_lowercase.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_lowercase/ram_password_policy_lowercase.py +32 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_max_login_attempts/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_max_login_attempts/ram_password_policy_max_login_attempts.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_max_login_attempts/ram_password_policy_max_login_attempts.py +32 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_max_password_age/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_max_password_age/ram_password_policy_max_password_age.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_max_password_age/ram_password_policy_max_password_age.py +35 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_minimum_length/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_minimum_length/ram_password_policy_minimum_length.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_minimum_length/ram_password_policy_minimum_length.py +30 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_number/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_number/ram_password_policy_number.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_password_reuse_prevention/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_password_reuse_prevention/ram_password_policy_password_reuse_prevention.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_password_reuse_prevention/ram_password_policy_password_reuse_prevention.py +35 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_symbol/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_symbol/ram_password_policy_symbol.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_symbol/ram_password_policy_symbol.py +34 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_uppercase/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_uppercase/ram_password_policy_uppercase.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_password_policy_uppercase/ram_password_policy_uppercase.py +32 -0
- prowler/providers/alibabacloud/services/ram/ram_policy_attached_only_to_group_or_roles/__init__.py +0 -0
- 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
- prowler/providers/alibabacloud/services/ram/ram_policy_attached_only_to_group_or_roles/ram_policy_attached_only_to_group_or_roles.py +35 -0
- prowler/providers/alibabacloud/services/ram/ram_policy_no_administrative_privileges/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_policy_no_administrative_privileges/ram_policy_no_administrative_privileges.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_policy_no_administrative_privileges/ram_policy_no_administrative_privileges.py +73 -0
- prowler/providers/alibabacloud/services/ram/ram_rotate_access_key_90_days/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_rotate_access_key_90_days/ram_rotate_access_key_90_days.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_rotate_access_key_90_days/ram_rotate_access_key_90_days.py +58 -0
- prowler/providers/alibabacloud/services/ram/ram_service.py +478 -0
- prowler/providers/alibabacloud/services/ram/ram_user_console_access_unused/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_user_console_access_unused/ram_user_console_access_unused.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_user_console_access_unused/ram_user_console_access_unused.py +56 -0
- prowler/providers/alibabacloud/services/ram/ram_user_mfa_enabled_console_access/__init__.py +0 -0
- prowler/providers/alibabacloud/services/ram/ram_user_mfa_enabled_console_access/ram_user_mfa_enabled_console_access.metadata.json +39 -0
- prowler/providers/alibabacloud/services/ram/ram_user_mfa_enabled_console_access/ram_user_mfa_enabled_console_access.py +36 -0
- prowler/providers/alibabacloud/services/rds/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_client.py +4 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_no_public_access_whitelist/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_no_public_access_whitelist/rds_instance_no_public_access_whitelist.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_no_public_access_whitelist/rds_instance_no_public_access_whitelist.py +36 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_connections_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_connections_enabled/rds_instance_postgresql_log_connections_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_connections_enabled/rds_instance_postgresql_log_connections_enabled.py +29 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_disconnections_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_disconnections_enabled/rds_instance_postgresql_log_disconnections_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_disconnections_enabled/rds_instance_postgresql_log_disconnections_enabled.py +29 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_duration_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_duration_enabled/rds_instance_postgresql_log_duration_enabled.metadata.json +38 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_postgresql_log_duration_enabled/rds_instance_postgresql_log_duration_enabled.py +29 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_enabled/rds_instance_sql_audit_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_enabled/rds_instance_sql_audit_enabled.py +32 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_retention/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_retention/rds_instance_sql_audit_retention.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_sql_audit_retention/rds_instance_sql_audit_retention.py +41 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_ssl_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_ssl_enabled/rds_instance_ssl_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_ssl_enabled/rds_instance_ssl_enabled.py +30 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_tde_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_tde_enabled/rds_instance_tde_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_tde_enabled/rds_instance_tde_enabled.py +32 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_tde_key_custom/__init__.py +0 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_tde_key_custom/rds_instance_tde_key_custom.metadata.json +39 -0
- prowler/providers/alibabacloud/services/rds/rds_instance_tde_key_custom/rds_instance_tde_key_custom.py +38 -0
- prowler/providers/alibabacloud/services/rds/rds_service.py +274 -0
- prowler/providers/alibabacloud/services/securitycenter/__init__.py +0 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_advanced_or_enterprise_edition/__init__.py +0 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_advanced_or_enterprise_edition/securitycenter_advanced_or_enterprise_edition.metadata.json +43 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_advanced_or_enterprise_edition/securitycenter_advanced_or_enterprise_edition.py +48 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_all_assets_agent_installed/__init__.py +0 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_all_assets_agent_installed/securitycenter_all_assets_agent_installed.metadata.json +42 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_all_assets_agent_installed/securitycenter_all_assets_agent_installed.py +48 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_client.py +6 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_notification_enabled_high_risk/__init__.py +0 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_notification_enabled_high_risk/securitycenter_notification_enabled_high_risk.metadata.json +42 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_notification_enabled_high_risk/securitycenter_notification_enabled_high_risk.py +65 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_service.py +394 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_vulnerability_scan_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_vulnerability_scan_enabled/securitycenter_vulnerability_scan_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/securitycenter/securitycenter_vulnerability_scan_enabled/securitycenter_vulnerability_scan_enabled.py +68 -0
- prowler/providers/alibabacloud/services/sls/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_client.py +4 -0
- prowler/providers/alibabacloud/services/sls/sls_cloud_firewall_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_cloud_firewall_changes_alert_enabled/sls_cloud_firewall_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_cloud_firewall_changes_alert_enabled/sls_cloud_firewall_changes_alert_enabled.py +50 -0
- prowler/providers/alibabacloud/services/sls/sls_customer_created_cmk_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_customer_created_cmk_changes_alert_enabled/sls_customer_created_cmk_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_customer_created_cmk_changes_alert_enabled/sls_customer_created_cmk_changes_alert_enabled.py +48 -0
- prowler/providers/alibabacloud/services/sls/sls_logstore_retention_period/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_logstore_retention_period/sls_logstore_retention_period.metadata.json +38 -0
- prowler/providers/alibabacloud/services/sls/sls_logstore_retention_period/sls_logstore_retention_period.py +32 -0
- prowler/providers/alibabacloud/services/sls/sls_management_console_authentication_failures_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_management_console_authentication_failures_alert_enabled/sls_management_console_authentication_failures_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_management_console_authentication_failures_alert_enabled/sls_management_console_authentication_failures_alert_enabled.py +44 -0
- prowler/providers/alibabacloud/services/sls/sls_management_console_signin_without_mfa_alert_enabled/__init__.py +0 -0
- 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
- prowler/providers/alibabacloud/services/sls/sls_management_console_signin_without_mfa_alert_enabled/sls_management_console_signin_without_mfa_alert_enabled.py +49 -0
- prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/sls_oss_bucket_policy_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/sls_oss_bucket_policy_changes_alert_enabled.py +57 -0
- prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/sls_oss_permission_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/sls_oss_permission_changes_alert_enabled.py +48 -0
- prowler/providers/alibabacloud/services/sls/sls_ram_role_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_ram_role_changes_alert_enabled/sls_ram_role_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_ram_role_changes_alert_enabled/sls_ram_role_changes_alert_enabled.py +54 -0
- prowler/providers/alibabacloud/services/sls/sls_rds_instance_configuration_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_rds_instance_configuration_changes_alert_enabled/sls_rds_instance_configuration_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_rds_instance_configuration_changes_alert_enabled/sls_rds_instance_configuration_changes_alert_enabled.py +72 -0
- prowler/providers/alibabacloud/services/sls/sls_root_account_usage_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_root_account_usage_alert_enabled/sls_root_account_usage_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_root_account_usage_alert_enabled/sls_root_account_usage_alert_enabled.py +50 -0
- prowler/providers/alibabacloud/services/sls/sls_security_group_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_security_group_changes_alert_enabled/sls_security_group_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_security_group_changes_alert_enabled/sls_security_group_changes_alert_enabled.py +56 -0
- prowler/providers/alibabacloud/services/sls/sls_service.py +137 -0
- prowler/providers/alibabacloud/services/sls/sls_unauthorized_api_calls_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_unauthorized_api_calls_alert_enabled/sls_unauthorized_api_calls_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_unauthorized_api_calls_alert_enabled/sls_unauthorized_api_calls_alert_enabled.py +56 -0
- prowler/providers/alibabacloud/services/sls/sls_vpc_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_vpc_changes_alert_enabled/sls_vpc_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_vpc_changes_alert_enabled/sls_vpc_changes_alert_enabled.py +57 -0
- prowler/providers/alibabacloud/services/sls/sls_vpc_network_route_changes_alert_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/sls/sls_vpc_network_route_changes_alert_enabled/sls_vpc_network_route_changes_alert_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/sls/sls_vpc_network_route_changes_alert_enabled/sls_vpc_network_route_changes_alert_enabled.py +52 -0
- prowler/providers/alibabacloud/services/vpc/__init__.py +0 -0
- prowler/providers/alibabacloud/services/vpc/vpc_client.py +4 -0
- prowler/providers/alibabacloud/services/vpc/vpc_flow_logs_enabled/__init__.py +0 -0
- prowler/providers/alibabacloud/services/vpc/vpc_flow_logs_enabled/vpc_flow_logs_enabled.metadata.json +39 -0
- prowler/providers/alibabacloud/services/vpc/vpc_flow_logs_enabled/vpc_flow_logs_enabled.py +30 -0
- prowler/providers/alibabacloud/services/vpc/vpc_service.py +102 -0
- prowler/providers/aws/aws_regions_by_service.json +20 -0
- prowler/providers/aws/services/apigateway/apigateway_restapi_waf_acl_attached/apigateway_restapi_waf_acl_attached.metadata.json +1 -3
- prowler/providers/aws/services/cloudtrail/cloudtrail_insights_exist/cloudtrail_insights_exist.metadata.json +1 -1
- prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_network_acls_alarm_configured/cloudwatch_changes_to_network_acls_alarm_configured.metadata.json +1 -2
- prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_network_gateways_alarm_configured/cloudwatch_changes_to_network_gateways_alarm_configured.metadata.json +1 -2
- 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
- prowler/providers/aws/services/cloudwatch/cloudwatch_changes_to_vpcs_alarm_configured/cloudwatch_changes_to_vpcs_alarm_configured.metadata.json +1 -2
- 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
- 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
- prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_authentication_failures/cloudwatch_log_metric_filter_authentication_failures.metadata.json +1 -2
- prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_aws_organizations_changes/cloudwatch_log_metric_filter_aws_organizations_changes.metadata.json +1 -2
- 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
- prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_policy_changes/cloudwatch_log_metric_filter_policy_changes.metadata.json +1 -2
- prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_root_usage/cloudwatch_log_metric_filter_root_usage.metadata.json +1 -2
- prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_security_group_changes/cloudwatch_log_metric_filter_security_group_changes.metadata.json +1 -2
- 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
- prowler/providers/aws/services/cloudwatch/cloudwatch_log_metric_filter_unauthorized_api_calls/cloudwatch_log_metric_filter_unauthorized_api_calls.metadata.json +0 -1
- prowler/providers/aws/services/guardduty/guardduty_centrally_managed/guardduty_centrally_managed.metadata.json +16 -10
- prowler/providers/aws/services/guardduty/guardduty_ec2_malware_protection_enabled/guardduty_ec2_malware_protection_enabled.metadata.json +23 -14
- prowler/providers/aws/services/guardduty/guardduty_eks_audit_log_enabled/guardduty_eks_audit_log_enabled.metadata.json +19 -13
- prowler/providers/aws/services/guardduty/guardduty_eks_runtime_monitoring_enabled/guardduty_eks_runtime_monitoring_enabled.metadata.json +18 -12
- prowler/providers/aws/services/guardduty/guardduty_is_enabled/guardduty_is_enabled.metadata.json +24 -13
- prowler/providers/aws/services/guardduty/guardduty_lambda_protection_enabled/guardduty_lambda_protection_enabled.metadata.json +20 -14
- prowler/providers/aws/services/guardduty/guardduty_no_high_severity_findings/guardduty_no_high_severity_findings.metadata.json +18 -9
- prowler/providers/aws/services/guardduty/guardduty_rds_protection_enabled/guardduty_rds_protection_enabled.metadata.json +18 -11
- prowler/providers/aws/services/guardduty/guardduty_s3_protection_enabled/guardduty_s3_protection_enabled.metadata.json +21 -12
- prowler/providers/aws/services/lightsail/lightsail_database_public/lightsail_database_public.metadata.json +21 -13
- prowler/providers/aws/services/lightsail/lightsail_instance_automated_snapshots/lightsail_instance_automated_snapshots.metadata.json +24 -13
- prowler/providers/aws/services/lightsail/lightsail_instance_public/lightsail_instance_public.metadata.json +21 -13
- prowler/providers/aws/services/lightsail/lightsail_static_ip_unused/lightsail_static_ip_unused.metadata.json +23 -14
- prowler/providers/aws/services/macie/macie_automated_sensitive_data_discovery_enabled/macie_automated_sensitive_data_discovery_enabled.metadata.json +20 -12
- prowler/providers/aws/services/macie/macie_is_enabled/macie_is_enabled.metadata.json +17 -12
- prowler/providers/aws/services/mq/mq_broker_active_deployment_mode/mq_broker_active_deployment_mode.metadata.json +22 -13
- prowler/providers/aws/services/mq/mq_broker_auto_minor_version_upgrades/mq_broker_auto_minor_version_upgrades.metadata.json +21 -12
- prowler/providers/aws/services/mq/mq_broker_cluster_deployment_mode/mq_broker_cluster_deployment_mode.metadata.json +23 -14
- prowler/providers/aws/services/mq/mq_broker_logging_enabled/mq_broker_logging_enabled.metadata.json +22 -13
- prowler/providers/aws/services/mq/mq_broker_not_publicly_accessible/mq_broker_not_publicly_accessible.metadata.json +20 -12
- prowler/providers/aws/services/networkfirewall/networkfirewall_deletion_protection/networkfirewall_deletion_protection.metadata.json +21 -13
- prowler/providers/aws/services/networkfirewall/networkfirewall_in_all_vpc/networkfirewall_in_all_vpc.metadata.json +23 -13
- prowler/providers/aws/services/networkfirewall/networkfirewall_logging_enabled/networkfirewall_logging_enabled.metadata.json +20 -13
- prowler/providers/aws/services/networkfirewall/networkfirewall_multi_az/networkfirewall_multi_az.metadata.json +22 -14
- prowler/providers/aws/services/networkfirewall/networkfirewall_policy_default_action_fragmented_packets/networkfirewall_policy_default_action_fragmented_packets.metadata.json +26 -14
- prowler/providers/aws/services/networkfirewall/networkfirewall_policy_default_action_full_packets/networkfirewall_policy_default_action_full_packets.metadata.json +22 -13
- prowler/providers/aws/services/networkfirewall/networkfirewall_policy_rule_group_associated/networkfirewall_policy_rule_group_associated.metadata.json +25 -14
- prowler/providers/common/provider.py +12 -0
- prowler/providers/gcp/services/accesscontextmanager/__init__.py +0 -0
- prowler/providers/gcp/services/accesscontextmanager/accesscontextmanager_client.py +6 -0
- prowler/providers/gcp/services/accesscontextmanager/accesscontextmanager_service.py +101 -0
- prowler/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service.py +10 -0
- prowler/providers/gcp/services/cloudstorage/cloudstorage_service.py +13 -0
- prowler/providers/gcp/services/cloudstorage/cloudstorage_uses_vpc_service_controls/__init__.py +0 -0
- prowler/providers/gcp/services/cloudstorage/cloudstorage_uses_vpc_service_controls/cloudstorage_uses_vpc_service_controls.metadata.json +36 -0
- prowler/providers/gcp/services/cloudstorage/cloudstorage_uses_vpc_service_controls/cloudstorage_uses_vpc_service_controls.py +67 -0
- prowler/providers/gcp/services/compute/compute_instance_automatic_restart_enabled/__init__.py +0 -0
- prowler/providers/gcp/services/compute/compute_instance_automatic_restart_enabled/compute_instance_automatic_restart_enabled.metadata.json +36 -0
- prowler/providers/gcp/services/compute/compute_instance_automatic_restart_enabled/compute_instance_automatic_restart_enabled.py +35 -0
- prowler/providers/gcp/services/compute/compute_instance_deletion_protection_enabled/__init__.py +0 -0
- prowler/providers/gcp/services/compute/compute_instance_deletion_protection_enabled/compute_instance_deletion_protection_enabled.metadata.json +36 -0
- prowler/providers/gcp/services/compute/compute_instance_deletion_protection_enabled/compute_instance_deletion_protection_enabled.py +29 -0
- prowler/providers/gcp/services/compute/compute_instance_preemptible_vm_disabled/__init__.py +0 -0
- prowler/providers/gcp/services/compute/compute_instance_preemptible_vm_disabled/compute_instance_preemptible_vm_disabled.metadata.json +37 -0
- prowler/providers/gcp/services/compute/compute_instance_preemptible_vm_disabled/compute_instance_preemptible_vm_disabled.py +32 -0
- prowler/providers/gcp/services/compute/compute_service.py +16 -0
- prowler/providers/github/services/repository/repository_immutable_releases_enabled/__init__.py +0 -0
- prowler/providers/github/services/repository/repository_immutable_releases_enabled/repository_immutable_releases_enabled.metadata.json +33 -0
- prowler/providers/github/services/repository/repository_immutable_releases_enabled/repository_immutable_releases_enabled.py +41 -0
- prowler/providers/github/services/repository/repository_service.py +52 -0
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/METADATA +40 -22
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/RECORD +326 -73
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/LICENSE +0 -0
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/WHEEL +0 -0
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.15.0.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
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_customer_created_cmk_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 "Kms" in query and (
|
|
18
|
+
"DisableKey" in query
|
|
19
|
+
or "ScheduleKeyDeletion" in query
|
|
20
|
+
or "DeleteKeyMaterial" in query
|
|
21
|
+
):
|
|
22
|
+
found = True
|
|
23
|
+
report = CheckReportAlibabaCloud(
|
|
24
|
+
metadata=self.metadata(), resource=alert
|
|
25
|
+
)
|
|
26
|
+
report.status = "PASS"
|
|
27
|
+
report.status_extended = f"SLS Alert {alert.name} is configured for disabling or deletion of customer created CMKs."
|
|
28
|
+
report.resource_id = alert.name
|
|
29
|
+
report.resource_arn = alert.arn
|
|
30
|
+
report.region = alert.region
|
|
31
|
+
findings.append(report)
|
|
32
|
+
break
|
|
33
|
+
|
|
34
|
+
if found:
|
|
35
|
+
break
|
|
36
|
+
|
|
37
|
+
if not found:
|
|
38
|
+
report = CheckReportAlibabaCloud(
|
|
39
|
+
metadata=self.metadata(), resource=sls_client.provider.identity
|
|
40
|
+
)
|
|
41
|
+
report.status = "FAIL"
|
|
42
|
+
report.status_extended = "No SLS Alert configured for disabling or deletion of customer created CMKs."
|
|
43
|
+
report.resource_id = sls_client.audited_account
|
|
44
|
+
report.resource_arn = sls_client.provider.identity.identity_arn
|
|
45
|
+
report.region = sls_client.region
|
|
46
|
+
findings.append(report)
|
|
47
|
+
|
|
48
|
+
return findings
|
|
File without changes
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_logstore_retention_period",
|
|
4
|
+
"CheckTitle": "Logstore data retention period is set to the recommended period (default 365 days)",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Cloud threat detection"
|
|
7
|
+
],
|
|
8
|
+
"ServiceName": "sls",
|
|
9
|
+
"SubServiceName": "",
|
|
10
|
+
"ResourceIdTemplate": "acs:log:region:account-id:project/project-name/logstore/logstore-name",
|
|
11
|
+
"Severity": "medium",
|
|
12
|
+
"ResourceType": "AlibabaCloudSLSLogStore",
|
|
13
|
+
"Description": "Ensure **Activity Log Retention** is set for **365 days** or greater.",
|
|
14
|
+
"Risk": "Logstore lifecycle controls how your activity log is exported and retained. It is recommended to retain your activity log for **365 days or more** to have time to respond to any incidents.\n\nShort retention periods may result in loss of **forensic evidence** needed for security investigations.",
|
|
15
|
+
"RelatedUrl": "",
|
|
16
|
+
"AdditionalURLs": [
|
|
17
|
+
"https://www.alibabacloud.com/help/doc-detail/48990.htm",
|
|
18
|
+
"https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/sufficient-logstore-data-retention-period.html"
|
|
19
|
+
],
|
|
20
|
+
"Remediation": {
|
|
21
|
+
"Code": {
|
|
22
|
+
"CLI": "",
|
|
23
|
+
"NativeIaC": "",
|
|
24
|
+
"Other": "",
|
|
25
|
+
"Terraform": ""
|
|
26
|
+
},
|
|
27
|
+
"Recommendation": {
|
|
28
|
+
"Text": "1. Log on to the **SLS Console**\n2. Find the project in the Projects section\n3. Click **Modify** icon next to the Logstore\n4. Modify the `Data Retention Period` to `365` or greater",
|
|
29
|
+
"Url": "https://hub.prowler.com/check/sls_logstore_retention_period"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"Categories": [
|
|
33
|
+
"logging"
|
|
34
|
+
],
|
|
35
|
+
"DependsOn": [],
|
|
36
|
+
"RelatedTo": [],
|
|
37
|
+
"Notes": ""
|
|
38
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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_logstore_retention_period(Check):
|
|
6
|
+
def execute(self) -> list[CheckReportAlibabaCloud]:
|
|
7
|
+
findings = []
|
|
8
|
+
|
|
9
|
+
# Get configurable max days from audit config (default: 365 days)
|
|
10
|
+
min_log_retention_days = sls_client.audit_config.get(
|
|
11
|
+
"min_log_retention_days", 365
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
for log_store in sls_client.log_stores:
|
|
15
|
+
report = CheckReportAlibabaCloud(
|
|
16
|
+
metadata=self.metadata(), resource=log_store
|
|
17
|
+
)
|
|
18
|
+
report.resource_id = log_store.name
|
|
19
|
+
report.resource_arn = log_store.arn
|
|
20
|
+
report.region = log_store.region
|
|
21
|
+
|
|
22
|
+
# Check retention
|
|
23
|
+
if log_store.retention_days >= min_log_retention_days:
|
|
24
|
+
report.status = "PASS"
|
|
25
|
+
report.status_extended = f"SLS LogStore {log_store.name} in project {log_store.project} has retention set to {log_store.retention_days} days (>= {min_log_retention_days} days)."
|
|
26
|
+
else:
|
|
27
|
+
report.status = "FAIL"
|
|
28
|
+
report.status_extended = f"SLS LogStore {log_store.name} in project {log_store.project} has retention set to {log_store.retention_days} days (less than {min_log_retention_days} days)."
|
|
29
|
+
|
|
30
|
+
findings.append(report)
|
|
31
|
+
|
|
32
|
+
return findings
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_management_console_authentication_failures_alert_enabled",
|
|
4
|
+
"CheckTitle": "A log monitoring and alerts are set up for Management Console authentication failures",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Unusual logon",
|
|
7
|
+
"Abnormal account"
|
|
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 **failed console authentication attempts**.",
|
|
15
|
+
"Risk": "Monitoring **failed console logins** may decrease lead time to detect an attempt to **brute force** a credential, which may provide an indicator (such as source IP) that can be used in other event correlation.",
|
|
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/account-continuous-login-failures-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 Management Console authentication failures",
|
|
30
|
+
"Url": "https://hub.prowler.com/check/sls_management_console_authentication_failures_alert_enabled"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"Categories": [
|
|
34
|
+
"logging"
|
|
35
|
+
],
|
|
36
|
+
"DependsOn": [],
|
|
37
|
+
"RelatedTo": [],
|
|
38
|
+
"Notes": ""
|
|
39
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
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_management_console_authentication_failures_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 "ConsoleSignin" in query and "event.errorCode" in query:
|
|
18
|
+
found = True
|
|
19
|
+
report = CheckReportAlibabaCloud(
|
|
20
|
+
metadata=self.metadata(), resource=alert
|
|
21
|
+
)
|
|
22
|
+
report.status = "PASS"
|
|
23
|
+
report.status_extended = f"SLS Alert {alert.name} is configured for Management Console authentication failures."
|
|
24
|
+
report.resource_id = alert.name
|
|
25
|
+
report.resource_arn = alert.arn
|
|
26
|
+
report.region = alert.region
|
|
27
|
+
findings.append(report)
|
|
28
|
+
break
|
|
29
|
+
|
|
30
|
+
if found:
|
|
31
|
+
break
|
|
32
|
+
|
|
33
|
+
if not found:
|
|
34
|
+
report = CheckReportAlibabaCloud(
|
|
35
|
+
metadata=self.metadata(), resource=sls_client.provider.identity
|
|
36
|
+
)
|
|
37
|
+
report.status = "FAIL"
|
|
38
|
+
report.status_extended = "No SLS Alert configured for Management Console authentication failures."
|
|
39
|
+
report.resource_id = sls_client.audited_account
|
|
40
|
+
report.resource_arn = sls_client.provider.identity.identity_arn
|
|
41
|
+
report.region = sls_client.region
|
|
42
|
+
findings.append(report)
|
|
43
|
+
|
|
44
|
+
return findings
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_management_console_signin_without_mfa_alert_enabled",
|
|
4
|
+
"CheckTitle": "A log monitoring and alerts are set up for Management Console sign-in without MFA",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Unusual logon",
|
|
7
|
+
"Abnormal account"
|
|
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 console logins that are not protected by **multi-factor authentication (MFA)**.",
|
|
15
|
+
"Risk": "Monitoring for **single-factor console logins** will increase visibility into accounts that are not protected by MFA.\n\nThis helps identify potential security gaps in authentication enforcement.",
|
|
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/single-factor-console-logins-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 Management Console sign-in without MFA",
|
|
30
|
+
"Url": "https://hub.prowler.com/check/sls_management_console_signin_without_mfa_alert_enabled"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"Categories": [
|
|
34
|
+
"logging"
|
|
35
|
+
],
|
|
36
|
+
"DependsOn": [],
|
|
37
|
+
"RelatedTo": [],
|
|
38
|
+
"Notes": ""
|
|
39
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
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_management_console_signin_without_mfa_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 "addionalEventData.loginAccount" in query
|
|
20
|
+
):
|
|
21
|
+
found = True
|
|
22
|
+
report = CheckReportAlibabaCloud(
|
|
23
|
+
metadata=self.metadata(), resource=alert
|
|
24
|
+
)
|
|
25
|
+
report.status = "PASS"
|
|
26
|
+
report.status_extended = f"SLS Alert {alert.name} is configured for Management Console sign-in without MFA."
|
|
27
|
+
report.resource_id = alert.name
|
|
28
|
+
report.resource_arn = alert.arn
|
|
29
|
+
report.region = alert.region
|
|
30
|
+
findings.append(report)
|
|
31
|
+
break
|
|
32
|
+
|
|
33
|
+
if found:
|
|
34
|
+
break
|
|
35
|
+
|
|
36
|
+
if not found:
|
|
37
|
+
report = CheckReportAlibabaCloud(
|
|
38
|
+
metadata=self.metadata(), resource=sls_client.provider.identity
|
|
39
|
+
)
|
|
40
|
+
report.status = "FAIL"
|
|
41
|
+
report.status_extended = (
|
|
42
|
+
"No SLS Alert configured for Management Console sign-in without MFA."
|
|
43
|
+
)
|
|
44
|
+
report.resource_id = sls_client.audited_account
|
|
45
|
+
report.resource_arn = sls_client.provider.identity.identity_arn
|
|
46
|
+
report.region = sls_client.region
|
|
47
|
+
findings.append(report)
|
|
48
|
+
|
|
49
|
+
return findings
|
prowler/providers/alibabacloud/services/sls/sls_oss_bucket_policy_changes_alert_enabled/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_oss_bucket_policy_changes_alert_enabled",
|
|
4
|
+
"CheckTitle": "A log monitoring and alerts are set up for OSS bucket policy changes",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Sensitive file tampering",
|
|
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 changes to **OSS bucket policies**.",
|
|
15
|
+
"Risk": "Monitoring changes to **OSS bucket policies** may reduce time to detect and correct **permissive policies** on sensitive OSS buckets.\n\nThis helps prevent unintended data exposure.",
|
|
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/oss-bucket-authority-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 OSS bucket policy changes",
|
|
30
|
+
"Url": "https://hub.prowler.com/check/sls_oss_bucket_policy_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_oss_bucket_policy_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
|
+
"PutBucketLifecycle" in query
|
|
19
|
+
or "PutBucketPolicy" in query
|
|
20
|
+
or "PutBucketCors" in query
|
|
21
|
+
or "PutBucketEncryption" in query
|
|
22
|
+
or "PutBucketReplication" in query
|
|
23
|
+
or "DeleteBucketPolicy" in query
|
|
24
|
+
or "DeleteBucketCors" in query
|
|
25
|
+
or "DeleteBucketLifecycle" in query
|
|
26
|
+
or "DeleteBucketEncryption" in query
|
|
27
|
+
or "DeleteBucketReplication" in query
|
|
28
|
+
):
|
|
29
|
+
found = True
|
|
30
|
+
report = CheckReportAlibabaCloud(
|
|
31
|
+
metadata=self.metadata(), resource=alert
|
|
32
|
+
)
|
|
33
|
+
report.status = "PASS"
|
|
34
|
+
report.status_extended = f"SLS Alert {alert.name} is configured for OSS bucket policy changes."
|
|
35
|
+
report.resource_id = alert.name
|
|
36
|
+
report.resource_arn = alert.arn
|
|
37
|
+
report.region = alert.region
|
|
38
|
+
findings.append(report)
|
|
39
|
+
break
|
|
40
|
+
|
|
41
|
+
if found:
|
|
42
|
+
break
|
|
43
|
+
|
|
44
|
+
if not found:
|
|
45
|
+
report = CheckReportAlibabaCloud(
|
|
46
|
+
metadata=self.metadata(), resource=sls_client.provider.identity
|
|
47
|
+
)
|
|
48
|
+
report.status = "FAIL"
|
|
49
|
+
report.status_extended = (
|
|
50
|
+
"No SLS Alert configured for OSS bucket policy changes."
|
|
51
|
+
)
|
|
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
|
prowler/providers/alibabacloud/services/sls/sls_oss_permission_changes_alert_enabled/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_oss_permission_changes_alert_enabled",
|
|
4
|
+
"CheckTitle": "Log monitoring and alerts are set up for OSS permission changes",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Sensitive file tampering",
|
|
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 **OSS Bucket RAM** changes.",
|
|
15
|
+
"Risk": "Monitoring changes to **OSS permissions** may reduce time to detect and correct permissions on sensitive OSS buckets and objects inside the bucket.\n\nThis helps prevent **unauthorized access** to stored data.",
|
|
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/oss-bucket-permission-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 **OSS logging** is enabled\n3. Select **Alerts**\n4. Ensure alert rule has been enabled for OSS permission changes",
|
|
30
|
+
"Url": "https://hub.prowler.com/check/sls_oss_permission_changes_alert_enabled"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"Categories": [
|
|
34
|
+
"logging"
|
|
35
|
+
],
|
|
36
|
+
"DependsOn": [],
|
|
37
|
+
"RelatedTo": [],
|
|
38
|
+
"Notes": ""
|
|
39
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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_oss_permission_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 ("PutBucket" in query and "acl" in query) or (
|
|
18
|
+
"PutObjectAcl" in query
|
|
19
|
+
):
|
|
20
|
+
found = True
|
|
21
|
+
report = CheckReportAlibabaCloud(
|
|
22
|
+
metadata=self.metadata(), resource=alert
|
|
23
|
+
)
|
|
24
|
+
report.status = "PASS"
|
|
25
|
+
report.status_extended = f"SLS Alert {alert.name} is configured for OSS permission changes."
|
|
26
|
+
report.resource_id = alert.name
|
|
27
|
+
report.resource_arn = alert.arn
|
|
28
|
+
report.region = alert.region
|
|
29
|
+
findings.append(report)
|
|
30
|
+
break
|
|
31
|
+
|
|
32
|
+
if found:
|
|
33
|
+
break
|
|
34
|
+
|
|
35
|
+
if not found:
|
|
36
|
+
report = CheckReportAlibabaCloud(
|
|
37
|
+
metadata=self.metadata(), resource=sls_client.provider.identity
|
|
38
|
+
)
|
|
39
|
+
report.status = "FAIL"
|
|
40
|
+
report.status_extended = (
|
|
41
|
+
"No SLS Alert configured for OSS permission changes."
|
|
42
|
+
)
|
|
43
|
+
report.resource_id = sls_client.audited_account
|
|
44
|
+
report.resource_arn = sls_client.provider.identity.identity_arn
|
|
45
|
+
report.region = sls_client.region
|
|
46
|
+
findings.append(report)
|
|
47
|
+
|
|
48
|
+
return findings
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_ram_role_changes_alert_enabled",
|
|
4
|
+
"CheckTitle": "Log monitoring and alerts are set up for RAM Role changes",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Abnormal account",
|
|
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 query and alarm be established for **RAM Role** creation, deletion, and updating activities.",
|
|
15
|
+
"Risk": "Monitoring **role creation**, **deletion**, and **updating** activities will help in identifying potential **malicious actions** at an early stage.\n\nUnauthorized role changes could lead to privilege escalation.",
|
|
16
|
+
"RelatedUrl": "",
|
|
17
|
+
"AdditionalURLs": [
|
|
18
|
+
"https://www.alibabacloud.com/help/doc-detail/91784.htm",
|
|
19
|
+
"https://www.trendmicro.com/cloudoneconformity/knowledge-base/alibaba-cloud/AlibabaCloud-SLS/ram-policy-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 RAM/ResourceManager policy changes",
|
|
30
|
+
"Url": "https://hub.prowler.com/check/sls_ram_role_changes_alert_enabled"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"Categories": [
|
|
34
|
+
"logging"
|
|
35
|
+
],
|
|
36
|
+
"DependsOn": [],
|
|
37
|
+
"RelatedTo": [],
|
|
38
|
+
"Notes": ""
|
|
39
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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_ram_role_changes_alert_enabled(Check):
|
|
6
|
+
def execute(self) -> list[CheckReportAlibabaCloud]:
|
|
7
|
+
findings = []
|
|
8
|
+
found = False
|
|
9
|
+
|
|
10
|
+
for alert in sls_client.alerts:
|
|
11
|
+
# Check configuration for query
|
|
12
|
+
# alert.configuration is a dict. configuration['queryList'] is a list of dicts with 'query'
|
|
13
|
+
query_list = alert.configuration.get("queryList", [])
|
|
14
|
+
if not query_list:
|
|
15
|
+
continue
|
|
16
|
+
|
|
17
|
+
for query_obj in query_list:
|
|
18
|
+
query = query_obj.get("query", "")
|
|
19
|
+
# Check for key terms
|
|
20
|
+
# Query: ("event.serviceName": ResourceManager or "event.serviceName": Ram) ...
|
|
21
|
+
if (
|
|
22
|
+
("ResourceManager" in query or "Ram" in query)
|
|
23
|
+
and "CreatePolicy" in query
|
|
24
|
+
and "DeletePolicy" in query
|
|
25
|
+
):
|
|
26
|
+
found = True
|
|
27
|
+
report = CheckReportAlibabaCloud(
|
|
28
|
+
metadata=self.metadata(), resource=alert
|
|
29
|
+
)
|
|
30
|
+
report.status = "PASS"
|
|
31
|
+
report.status_extended = (
|
|
32
|
+
f"SLS Alert {alert.name} is configured for RAM Role changes."
|
|
33
|
+
)
|
|
34
|
+
report.resource_id = alert.name
|
|
35
|
+
report.resource_arn = alert.arn
|
|
36
|
+
report.region = alert.region
|
|
37
|
+
findings.append(report)
|
|
38
|
+
break # Found one query in this alert
|
|
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 = "No SLS Alert configured for RAM Role changes."
|
|
49
|
+
report.resource_id = sls_client.audited_account
|
|
50
|
+
report.resource_arn = sls_client.provider.identity.identity_arn
|
|
51
|
+
report.region = sls_client.region
|
|
52
|
+
findings.append(report)
|
|
53
|
+
|
|
54
|
+
return findings
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider": "alibabacloud",
|
|
3
|
+
"CheckID": "sls_rds_instance_configuration_changes_alert_enabled",
|
|
4
|
+
"CheckTitle": "Log monitoring and alerts are set up for RDS instance configuration changes",
|
|
5
|
+
"CheckType": [
|
|
6
|
+
"Intrusion into applications",
|
|
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 **RDS Instance** configuration changes.",
|
|
15
|
+
"Risk": "Monitoring changes to **RDS Instance configuration** may reduce time to detect and correct **misconfigurations** done on database servers.\n\nThis helps prevent security gaps in database deployments.",
|
|
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/rds-instance-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 RDS instance configuration changes",
|
|
30
|
+
"Url": "https://hub.prowler.com/check/sls_rds_instance_configuration_changes_alert_enabled"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"Categories": [
|
|
34
|
+
"logging"
|
|
35
|
+
],
|
|
36
|
+
"DependsOn": [],
|
|
37
|
+
"RelatedTo": [],
|
|
38
|
+
"Notes": ""
|
|
39
|
+
}
|