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.
core_minimize_hostNetwork_containers
Kubernetes Pods configured with hostNetwork: true are identified, meaning they share the node's network namespace and use the host's IP stack, interfaces, and ports.
core_minimize_hostpath_volume_mounts
Kubernetes Pods are evaluated for volumes of type hostPath, which mount paths from the node filesystem into a pod.
core_minimize_hostPID_containers
Kubernetes Pods configured with hostPID: true are identified, indicating the container shares the node's host PID namespace.
core_minimize_net_raw_capability_admission
Kubernetes pods where any container's security context adds the NET_RAW Linux capability are identified.
The inspection evaluates container securityContext.capabilities.add entries to detect explicit requests for NET_RAW.
core_minimize_privileged_containers
Kubernetes Pods are evaluated for containers configured with securityContext.privileged: true, indicating execution in privileged mode.
core_minimize_root_containers_admission
Kubernetes Pods are assessed for containers configured to run as the root user. The evaluation identifies containers whose security context sets runAsUser: 0.
core_no_secrets_envs
Kubernetes Pods containers define environment variables sourced from Secrets via secretKeyRef instead of mounting them as files.
core_readiness_probe_configured
Ensure each regular pod container has a readiness probe configured to signal when it is ready to serve traffic.
core_readonly_root_filesystem_enabled
Kubernetes Pods are evaluated to ensure every container sets readOnlyRootFilesystem: true in its securityContext. A writable root filesystem lets an attacker who gains code execution modify binaries, drop tools, or persist malicious files inside the container.
core_seccomp_profile_docker_default
Kubernetes Pods and their containers specify the runtime default seccomp profile using seccompProfile.type: RuntimeDefault in the security context.
The evaluation looks for this setting at the Pod level or per container.
etcd_client_cert_auth
Etcd is configured to require TLS client certificate authentication when the etcd container includes --client-cert-auth, so client access is validated with trusted certificates.
etcd_no_auto_tls
Etcd configuration is reviewed for the --auto-tls option, which enables automatically generated self-signed certificates for client TLS.
Presence of this flag indicates self-signed TLS is used; absence indicates client TLS relies on externally managed certificates.
Etcd peer TLS configuration is evaluated by checking etcd containers for the --peer-auto-tls flag. Presence of --peer-auto-tls indicates peers use automatically generated self-signed certificates for inter-peer connections.
etcd_peer_client_cert_auth
Etcd requires peer client certificate authentication for inter-member traffic via --peer-client-cert-auth=true set in the etcd container command
etcd_peer_tls_config
Etcd peer communication is treated as secure when TLS is configured with a peer certificate and key (e.g., --peer-cert-file and --peer-key-file). The assessment inspects etcd containers for these options to determine whether server-to-server traffic is encrypted and authenticated.
etcd_tls_encryption
Etcd pods are assessed for TLS-enabled client communication, indicated by --cert-file and --key-file in container arguments, showing that Kubernetes API state traffic is encrypted in transit.
Etcd configuration is assessed to ensure it trusts a unique Certificate Authority via --trusted-ca-file, distinct from the API server's --client-ca-file. If the same CA file is used, etcd shares the cluster CA; differing files imply separation, though CA content should still be verified.
kubelet_authorization_mode
Kubernetes Kubelet authorization configuration is inspected to confirm the mode is not AlwaysAllow.
If authorization settings are absent, the effective mode requires manual verification.
kubelet_client_ca_file_set
Kubernetes Kubelet is evaluated for X.509 client certificate authentication by checking if its config sets authentication.x509.clientCAFile to validate clients on the HTTPS endpoint.
kubelet_conf_file_ownership
Kubernetes Node kubeconfig at /etc/kubernetes/kubelet.conf is evaluated for file ownership root:root. The check focuses on who owns the file that defines the kubelet's API client settings and certificates.
kubelet_conf_file_permissions
Kubernetes Kubelet kubeconfig at /etc/kubernetes/kubelet.conf must have owner-only permissions (0600 or stricter). The check evaluates the file mode to ensure it is not more permissive than 0600.
kubelet_config_yaml_ownership
Kubernetes Kubelet configuration file config.yaml (e.g., /var/lib/kubelet/config.yaml) is evaluated to confirm ownership by root:root when the kubelet uses a config file via --config.
kubelet_config_yaml_permissions
Kubernetes Kubelet configuration file (/var/lib/kubelet/config.yaml) is evaluated for restrictive file permissions. When kubelet uses --config, the file is expected to be owner-only readable/writable (600) or more restrictive.
kubelet_disable_anonymous_auth
Kubernetes Kubelet configuration for its HTTPS endpoint is evaluated to ensure anonymous authentication is disabled, requiring authenticated requests (authentication.anonymous.enabled=false).