Checks
Browse individual security checks available in the Prowler Registry. Filter by cloud provider, severity, or search by check ID.
Browse individual security checks available in the Prowler Registry. Filter by cloud provider, severity, or search by check ID.
storage_ensure_encryption_with_customer_managed_keys
Azure Storage accounts use customer-managed keys (CMK) from Key Vault/Managed HSM for service-side encryption of data at rest, rather than platform-managed keys (encryption_type=Microsoft.Keyvault).
storage_ensure_file_shares_soft_delete_is_enabled
Azure Storage file shares have soft delete with a retention period (days). The evaluation determines if the storage account's file service has this setting enabled and records the retention duration applied to all shares.
storage_ensure_minimum_tls_version_12
Azure Storage accounts enforce a minimum TLS version of 1.2 for client connections to data services
storage_ensure_private_endpoints_in_storage_accounts
Azure Storage accounts are evaluated for the presence of Private Endpoint connections. When configured, traffic flows over a VNet private IP via Private Link; when absent, access occurs through the storage account's public endpoint.
storage_ensure_soft_delete_is_enabled
Azure Storage accounts have container soft delete enabled via a retention policy that keeps deleted containers for a set period.
storage_geo_redundant_enabled
Azure Storage accounts configured for geo-redundant replication via Standard_GRS, Standard_GZRS, Standard_RAGRS, or Standard_RAGZRS.
The setting indicates data is copied to a paired secondary region, with RA-* allowing read access during primary-region unavailability.
storage_infrastructure_encryption_is_enabled
Azure Storage accounts have infrastructure encryption enabled, providing double encryption at rest alongside service-level encryption (requireInfrastructureEncryption=true).
storage_key_rotation_90_days
Azure Storage accounts must define a key expiration period for access-key rotation, with a maximum of 90 days. The evaluation looks for accounts lacking this setting or exceeding that limit.
storage_secure_transfer_required_is_enabled
Azure Storage accounts are evaluated for secure transfer enforcement, requiring all client requests to use HTTPS only (enableHttpsTrafficOnly) and blocking HTTP.
storage_smb_channel_encryption_with_secure_algorithm
Azure Storage file shares (SMB) are evaluated for SMB channel encryption and whether the allowed ciphers include the recommended AES-256-GCM.
This identifies if encryption is configured and a secure algorithm is present in the SMB settings for file shares within the storage account.
storage_smb_protocol_version_is_latest
Azure Storage file shares (SMB) are configured to allow only the latest SMB protocol version, blocking legacy SMB versions at the storage account level
vm_backup_enabled
Azure VMs are evaluated for protection by Azure Backup by confirming they exist as VM backup items in a Recovery Services vault.
VMs absent from any vault item indicate no configured backup coverage.
vm_desired_sku_size
Azure virtual machines are compared against an organization allowlist of VM size SKUs defined in desired_vm_sku_sizes.
Instances using sizes outside this list are flagged as non-standard.
vm_ensure_attached_disks_encrypted_with_cmk
Attached Azure managed disks (OS and data) are assessed to confirm encryption uses customer-managed keys (CMK) via disk encryption sets rather than platform-managed keys. Scope includes disks currently attached to VMs, evaluating their encryption type to verify CMK is applied.
vm_ensure_unattached_disks_encrypted_with_cmk
Unattached Azure managed disks use Customer-Managed Keys (CMK) for server-side encryption rather than platform-managed keys. Only disks not currently attached to a VM are in scope.
vm_ensure_using_approved_images
Azure VMs are evaluated for use of an approved custom image by inspecting the VM image reference. The expected format is a subscription-scoped ID like /subscriptions/.../providers/Microsoft.Compute/images/<image>, not marketplace, gallery, or community sources.
vm_ensure_using_managed_disks
Azure virtual machines use managed disks for the OS disk and every data disk, rather than page blob VHDs in storage accounts.
The evaluation confirms that all attached VM disks are managed.
vm_jit_access_enabled
Azure virtual machines are associated with a Just-in-Time (JIT) network access policy that opens management ports only for approved, time-bound requests from specified source IPs.
vm_linux_enforce_ssh_authentication
Azure Linux virtual machines are assessed for SSH configuration where disablePasswordAuthentication is set to true, allowing only public key authentication and disallowing interactive passwords.
vm_scaleset_associated_with_load_balancer
Azure VM scale sets are associated with at least one load balancer backend pool.
The evaluation looks for a backend pool link on each scale set's network configuration.
vm_scaleset_not_empty
Azure VM scale sets with 0 VM instances are identified as empty.
vm_sufficient_daily_backup_retention_period
Azure virtual machines are evaluated for a backup policy in a Recovery Services vault with a daily retention period that meets the configured minimum. VMs lacking protection or using a shorter retention window are identified for review.
vm_trusted_launch_enabled
Azure VMs are evaluated for Trusted Launch with both Secure Boot and vTPM enabled.
Identifies VMs not set to TrustedLaunch or missing secureBootEnabled and vTpmEnabled together.