Skip to content

Latest commit

 

History

History
605 lines (603 loc) · 409 KB

benchmark-checks.md

File metadata and controls

605 lines (603 loc) · 409 KB

Benchmark Checks

  • Check Id: The ID of the check for the benchmark
  • Name: The name of the check
  • Expected: The expected Result from a scanner. This should be either alert or pass
  • Description: A description for the relevancy of the check
  • Path To Check: The path(s) to the field(s) on the resource which must be evaulated for this check
  • Implemented: boolean flag, if this check is actually implemented for the benchmark
  • Category: The general category to which this checks belongs to.

Check Id Name Expected Description Path To Check Implemented
207 CM-001 cm-001-sensitive-key-referenced-in-configmap alert Attackers can retrieve and use sensitive information provided via config maps .data.aws_access_key_id yes
.data.aws_secret_access_key
.data.azure_batchai_storage_account
.data.azure_batchai_storage_key
.data.azure_batch_account
.data.azure_batch_key
.data.secret
.data.key
.data.password
.data.pwd
.data.token
.data.jwt
.data.bearer
.data.credential
15 CM-002 Prevent ConfigMap security vulnerability (CVE-2021-25742) alert users with limited access to a Kubernetes cluster, but with the ability to create an Ingress object based on the NGINX Ingress Controller, could elevate privilege and access full cluster secrets (NVD severity of this issue: High). Configmap.data.allow-snippet-annotation no
21 ING-001 Set HTTP security headers on the Kubernetes Ingress controller alert Ingress.metadata.annotations["nginx.ingress.kubernetes.io/configuration-snippet"] no
ConfigMap.data["proxy-set-headers"]
22 ING-002 enable TLS for Ingress alert Configure tls in ingress. specifying a Secret that contains a TLS private key and certificate Ingress.spec.tls no
Secret.data["tls.crt"]
Secret.data["tls.key"]
23 ING-003 ensure ingress targets a Service alert Ingress.spec.rules[].paths[].backend.service no
24 ING-004 prevent ingress from forwarding all traffic to a single container alert Misconfiguring the ingress host can unintended forward all traffic to a single pod instead of leveraging the load balancing capabilities. By verifying that ingress traffic is targeted by multiple pods, you will achieve higher application availability because you won't be dependent upon a single pod to serve all ingress traffic. (From https://hub.datree.io/built-in-rules/prevent-ingress-forwarding-traffic-to-single-containerdatree) Ingress.spec.rules[].host no
25 ING-005 CVE-2021-25742 nginx-ingress snippet annotation vulnerability alert Security issue in ingress-nginx where a user that can create or update ingress objects can use the custom snippets feature to obtain all secrets in the cluster (see more at https://github.com/kubernetes/ingress-nginx/issues/7837) To mitigate this vulnerabilitySet allow-snippet-annotations to false in your ingress-nginx ConfigMap Ingress.metadata.annotations["nginx.ingress.kubernetes.io/server-snippet"] no
78 NP-001 np-001-namespace-without-network-policy alert NetworkPolicy.metadata.namespace yes
.metadata.namespace
79 NP-002-1 np-002-1-only-ingress-is-blocked alert NetworkPolicy.spec.policyTypes[] yes
.spec.policyTypes[]
80 NP-002-2 np-002-2-only-egress-is-blocked alert NetworkPolicy.spec.policyTypes[] yes
.spec.policyTypes[]
81 NP-003 np-003-network-policy-allows-access-to-cloud-metadata-api alert NetworkPolicy.egress[].to[].ipBlock yes
.egress[].to[].ipBlock
82 NP-004 np-004-network-policy-allows-access-to-kubelet alert NetworkPolicy.spec.egress[].ports[].port yes
.spec.egress[].ports[].port
83 NP-005 np-005-network-policy-refers-no-valid-workload alert NetworkPolicy.spec.podSelector yes
.spec.podSelector
16 NP-006 ensure all workloads are referenced by a Network Policy alert NetworkPolicy.spec.podSelector.matchLabels no
NetworkPolicy.ingress[].from[].podSelector
NetworkPolicy.egress[].from[].podSelector
208 NS-001 ns-001-use-default-namespace alert not setting memory limit can lead to the pod suffocating the node by using all available memory .metadata.namespace yes
209 NS-002-1 ns-002-1-place-pod-in-kube-system alert azure should not be used for custom workloads .metadata.namespace yes
210 NS-002-2 ns-002-2-place-pod-in-kube-public alert azure should not be used for custom workloads .metadata.namespace yes
13 NS-003 ensure that components in a Namespace are restricted to only the necessary alert Limiting the scope of user permissions can reduce the impact of mistakes or malicious activities. A Kubernetes namespace allows you to partition created resources into logically named groups. .metadata.namespace no
14 NS-004 No owner for namespace affects the operations alert Limiting the scope of user permissions can reduce the impact of mistakes or malicious activities. .metadata.namespace no
85 POD-002-1 pod-002-1-explicit-default-sa alert default ServiceAccount should never be used. Create a dedicated ServiceAccount when access to API server is needed when access to API server is needed. .spec.serviceAccountName yes
86 POD-002-2 pod-002-2-no-sa-specified alert if no service account is specified it defaults to the default ServiceAccount, which should be avoided. Create a dedicated ServiceAccount without any permissions instead. .spec.serviceAccountName yes
87 POD-003-1 pod-003-1-default-pod-and-sa alert relying on default on both pod and SA level leads to token being needlessly mounted .spec.automountServiceAccountToken yes
.automountServiceAccountToken
88 POD-003-2 pod-003-2-default-pod-automount-sa alert allowing automounting on SA leads to all pods without explicit setting to mount it automatically .spec.automountServiceAccountToken yes
.automountServiceAccountToken
89 POD-003-3 pod-003-3-default-pod-no-automount-sa pass disabling automounting at SA level will be the default for pods as well .spec.automountServiceAccountToken yes
.automountServiceAccountToken
90 POD-003-4 pod-003-4-automount-pod-default-sa alert enabling automounting at Pod level takes precedence over SA .spec.automountServiceAccountToken yes
.automountServiceAccountToken
91 POD-003-5 pod-003-5-automount-pod-and-sa alert enabling automounting at Pod level takes precedence over SA .spec.automountServiceAccountToken yes
.automountServiceAccountToken
92 POD-003-6 pod-003-6-automount-pod-no-automount-sa alert enabling automounting at Pod level takes precedence over SA .spec.automountServiceAccountToken yes
.automountServiceAccountToken
93 POD-003-7 pod-003-7-no-automount-pod-default-sa pass disabling automounting at Pod level takes precedence over SA .spec.automountServiceAccountToken yes
.automountServiceAccountToken
94 POD-003-8 pod-003-8-no-automount-pod-automount-sa pass disabling automounting at Pod level takes precedence over SA .spec.automountServiceAccountToken yes
.automountServiceAccountToken
95 POD-003-9 pod-003-9-no-automount-pod-and-sa pass disabling automounting at Pod level takes precedence over SA .spec.automountServiceAccountToken yes
.automountServiceAccountToken
3 POD-004 dont share service account between workloads alert .spec.serviceAccountName no
4 POD-005 don't reference non-existing SA alert .spec.serviceAccountName no
ServiceAccount.metadata.name
102 POD-008-1 pod-008-1-use-no-hostpid pass The hostPID defaults to false and thus should be okay .spec.hostPID yes
103 POD-008-2 pod-008-2-pod-has-hostpid-set alert Containers should be isolated from the host machine as much as possible. hostPID pods may allow cross-container influence and may expose the host itself to potentially malicious or destructive actions .spec.hostPID yes
104 POD-009-1 pod-009-1-use-no-hostipc pass The hostIPC defaults to false and thus should be okay .spec.hostIPC yes
105 POD-009-2 pod-009-2-has-hostipc-set alert Containers should be isolated from the host machine as much as possible. hostIPC on pods may allow cross-container influence and may expose the host itself to potentially malicious or destructive actions .spec.hostIPC yes
106 POD-010-1 pod-010-1-use-no-hostnetwork pass The hostNetwork defaults to false and thus should be okay .spec.hostNetwork yes
107 POD-010-2 pod-010-2-has-hostnetwork-set alert Containers should be isolated from the host machine as much as possible. .spec.hostNetwork yes
108 POD-011 pod-011-uses-hostport alert When you bind a Pod to a hostPort, it limits the number of places the Pod can be scheduled, because each <hostIP, hostPort, protocol> combination must be unique. .spec.containers[].ports[].hostPort yes
109 POD-012 pod-012-use-hostaliases-to-modify-pods--etc-hosts alert Managing /etc/hosts aliases can prevent Docker from modifying the file after a pod's containers have already been started .spec.hostAliases yes
110 POD-013 pod-013-use-serviceaccount-field alert ServiceAccount field is deprecated, ServiceAccountName should be used instead .spec.serviceAccount yes
111 POD-014 pod-014-no-apparmor-profile alert AppArmor can be configured for any application to reduce its potential attack surface and provide greater in-depth defense. .metadata.annotations yes
.metadata.annotations.container.apparmor.security.beta.kubernetes.io.metadata.annotations[container.apparmor.security.beta.kubernetes.io]
5 POD-015 enable Seccomp alert annotation can be either a pod annotation, or a container annotation .spec.serviceAccountName no
ServiceAccount.metadata.name
112 POD-016 pod-016-no-podsecuritycontext-defined alert not providing a podSecurityContext leads to the use of too permissive settings for the pod .spec.securityContext yes
113 POD-017-1 pod-017-1-default-to-root-user alert Having neither runAsNonRoot nor runAsUser>1000 means a user has elevated privileges .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
114 POD-017-2 pod-017-2-use-runasnonroot-flag-on-pod pass Using runAsNonRoot is a viable alternative to runAsUser>1000 .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
115 POD-017-3 pod-017-3-runasnonroot-is-optional pass Using runAsNonRoot is a viable alternative to runAsUser>1000 .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
116 POD-017-4 pod-017-4-use-root-user-in-pod alert Having neither runAsNonRoot nor runAsUser>1000 means a user has elevated privileges .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
117 POD-017-5 pod-017-5-use-runasnonroot-flag-on-container pass Using runAsNonRoot is a viable alternative to runAsUser>1000 .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
118 POD-017-6 pod-017-6-runasnonroot-is-optional-on-container pass Using runAsNonRoot is a viable alternative to runAsUser>1000 .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
119 POD-017-7 pod-017-7-use-root-user-on-container alert Having neither runAsNonRoot nor runAsUser>1000 means a user has elevated privileges .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
120 POD-017-8 pod-017-8-set-runasnonroot-correctly-on-container pass runAsNonRoot setting on container takes precedence .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
121 POD-017-9 pod-017-9-set-runasnonroot-not-correctly-on-container alert runAsNonRoot setting on container takes precedence .spec.securityContext.runAsNonRoot yes
.spec.securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
122 POD-018-1 pod-018-1-default-to-root-user alert Having neither runAsNonRoot nor runAsUser>1000 means a user has elevated privileges .spec.securityContext.runAsUser yes
.spec.securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
123 POD-018-2 pod-018-2-use-uid-between-1k-10k-on-pod pass An UID above 1000 is enough to avoid running as a system user .spec.securityContext.runAsUser yes
.spec.securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
124 POD-018-3 pod-018-3-use-uid-between-1k-10k-on-container pass An UID above 1000 is enough to avoid running as a system user .spec.securityContext.runAsUser yes
.spec.securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
125 POD-018-4 pod-018-4-use-uid-set-in-container-takes-precedence pass in case of conflicting settings, the value on the container takes precedence .spec.securityContext.runAsUser yes
.spec.securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
126 POD-018-5 pod-018-5-use-uid-set-in-container-takes-precedence alert in case of conflicting settings, the value on the container takes precedence .spec.securityContext.runAsUser yes
.spec.securityContext.runAsNonRoot
.spec.containers[].securityContext.runAsUser
.spec.containers[].securityContext.runAsNonRoot
127 POD-019-1 pod-019-1-default-to-root-group alert by default GID 0 is used, which has elevated privileges .spec.securityContext.runAsGroup yes
.spec.containers[].securityContext.runAsGroup
128 POD-019-2 pod-019-2-use-gid-between-1k-10k-on-pod pass An GID above 1000 is enough to avoid running as a system user .spec.securityContext.runAsGroup yes
.spec.containers[].securityContext.runAsGroup
129 POD-019-3 pod-019-3-use-gid-between-1k-10k-on-container pass An GID above 1000 is enough to avoid running as a system user .spec.securityContext.runAsGroup yes
.spec.containers[].securityContext.runAsGroup
130 POD-019-4 pod-019-4-use-gid-set-in-container-takes-precedence pass in case of conflicting settings, the value on the container takes precedence .spec.securityContext.runAsGroup yes
.spec.containers[].securityContext.runAsGroup
131 POD-019-5 pod-019-5-use-gid-set-in-container-takes-precedence alert in case of conflicting settings, the value on the container takes precedence .spec.securityContext.runAsGroup yes
.spec.containers[].securityContext.runAsGroup
6 POD-020 fsGroup / supplementalGroups should be non-zero alert .spec.securityContext.fsGroup no
.spec.securityContext.supplementalGroups[]
132 POD-021-0 pod-021-0-using-sysctl-kernel.shm-rmid-forced alert Giving dangerous capabilities to a container increases the impact of a container compromise .spec.securityContext.sysctls[] yes
133 POD-021-1 pod-021-1-using-sysctl-net.ipv4.tcp-keepalive-time alert Giving dangerous capabilities to a container increases the impact of a container compromise .spec.securityContext.sysctls[] yes
134 POD-021-2 pod-021-2-using-sysctl-net.ipv4.tcp-keepalive-probes alert Giving dangerous capabilities to a container increases the impact of a container compromise .spec.securityContext.sysctls[] yes
135 POD-022-1 pod-022-1-linux-is-not-hardened alert Not hardening a linux system can increase the impact of a compromise .metadata.annotations yes
.metadata.annotations.container.apparmor.security.beta.kubernetes.io
.metadata.annotations[container.apparmor.security.beta.kubernetes.io]
.spec.securityContext.seccompProfile
.spec.securityContext.seLinuxOptions
.spec.containers[].securityContext.seccompProfile
.spec.containers[].securityContext.seLinuxOptions
136 POD-022-2 pod-022-2-one-approach-to-hardening-linux-is-enough pass Not hardening a linux system can increase the impact of a compromise .metadata.annotations yes
.metadata.annotations.container.apparmor.security.beta.kubernetes.io
.metadata.annotations[container.apparmor.security.beta.kubernetes.io]
.spec.securityContext.seccompProfile
.spec.securityContext.seLinuxOptions
.spec.containers[].securityContext.seccompProfile
.spec.containers[].securityContext.seLinuxOptions
137 POD-022-3 pod-022-3-one-approach-to-hardening-linux-is-enough pass Not hardening a linux system can increase the impact of a compromise .metadata.annotations yes
.metadata.annotations.container.apparmor.security.beta.kubernetes.io
.metadata.annotations[container.apparmor.security.beta.kubernetes.io]
.spec.securityContext.seccompProfile
.spec.securityContext.seLinuxOptions
.spec.containers[].securityContext.seccompProfile
.spec.containers[].securityContext.seLinuxOptions
138 POD-023 pod-023-no-seccomp-profile-defined alert not providing a seccomp profile allows a process more capabilities than necessary .metadata.annotations yes
.metadata.annotations.seccomp.security.alpha.kubernetes.io/pod
.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]
.spec.securityContext.seccompProfile
.spec.containers[].securityContext.seccompProfile
139 POD-024-0 pod-024-0-usage-of-bin-bash-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
140 POD-024-1 pod-024-1-usage-of-sbin-sh-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
141 POD-024-2 pod-024-2-usage-of-bin-ksh-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
142 POD-024-3 pod-024-3-usage-of-bin-tcsh-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
143 POD-024-4 pod-024-4-usage-of-bin-zsh-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
144 POD-024-5 pod-024-5-usage-of-usr-bin-scsh-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
145 POD-024-6 pod-024-6-usage-of-bin-csh-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
146 POD-024-7 pod-024-7-usage-of-bin-busybox-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
147 POD-024-8 pod-024-8-usage-of-usr-bin-busybox-in-container alert Attackers who can run a cmd/bash script inside a container can use it to execute malicious code .spec.containers[].command yes
148 POD-025 pod-025-sensitive-key-referenced-in-environment-variable alert Attackers can retrieve and use sensitive information provided via environment variables .spec.containers[].env[].name yes
8 POD-026 dont map privileged port into container alert .spec.containers[].ports.containerPort no
7 POD-026 Check SSH server running inside container alert SSH server that is running inside a container may be used by attackers. If attackers gain valid credentials to a container, whether by brute force attempts or by other methods (such as phishing), they can use it to get remote access to the container by SSH. .spec.containers[].ports[].containerPort no
9 POD-027 Container is running with multiple open ports alert Having too many open ports increases the attack surface of the application and the container .spec.containers[].ports[].containerPort no
10 POD-028 don't use unsafe proc mounts alert .spec.containers[].securityContext.procMount no
155 POD-030 pod-030-no-securitycontext-defined alert Not providing a securityContext leads to the use of too permissive settings for the containers .spec.containers[].securityContext yes
156 POD-031-1 pod-031-1-allowed-privilege-escalation-by-default alert Avoid using the privileged flag, and if your container does need additional capabilities, add only the ones you need through the capabilities settings. .spec.containers[].securityContext.allowPrivilegeEscalation yes
157 POD-031-2 pod-031-2-allowed-privilege-escalation-explicitly alert Avoid using the privileged flag, and if your container does need additional capabilities, add only the ones you need through the capabilities settings. .spec.containers[].securityContext.allowPrivilegeEscalation yes
158 POD-032-1 pod-032-1-non-privileged-container-by-default pass Changing the privileged flag is optional as it defaults to False .spec.containers[].securityContext.privileged yes
159 POD-032-2 pod-032-2-privileged-container alert Privileged containers can do almost every action that can be performed directly on the host. .spec.containers[].securityContext.privileged yes
.spec.containers[].securityContext.allowPrivilegeEscalation
160 POD-033-1 pod-033-1-root-fs-is-writeable-by-default alert Using an immutable root filesystem prevents against attackers from compromising the machine through permanent local changes. .spec.containers[].securityContext.readOnlyRootFilesystem yes
161 POD-033-2 pod-033-2-root-fs-is-explicitly-writeable alert Using an immutable root filesystem prevents against attackers from compromising the machine through permanent local changes. .spec.containers[].securityContext.readOnlyRootFilesystem yes
162 POD-034-1 pod-034-1-using-dangerous-capability-all alert Dangerous capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
163 POD-034-2 pod-034-2-using-dangerous-capability-sys-admin alert Dangerous capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
164 POD-034-3 pod-034-3-using-dangerous-capability-net-admin alert Dangerous capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
165 POD-035-1 pod-035-1-using-insecure-capability-audit-write alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
174 POD-035-10 pod-035-10-using-insecure-capability-mknod alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
175 POD-035-11 pod-035-11-using-insecure-capability-net-bind-service alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
176 POD-035-12 pod-035-12-using-insecure-capability-net-raw alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
177 POD-035-13 pod-035-13-using-insecure-capability-perfmon alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
178 POD-035-14 pod-035-14-using-insecure-capability-setfcap alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
179 POD-035-15 pod-035-15-using-insecure-capability-setgid alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
180 POD-035-16 pod-035-16-using-insecure-capability-setpcap alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
181 POD-035-17 pod-035-17-using-insecure-capability-setuid alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
182 POD-035-18 pod-035-18-using-insecure-capability-sys-boot alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
183 POD-035-19 pod-035-19-using-insecure-capability-sys-chroot alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
166 POD-035-2 pod-035-2-using-insecure-capability-bpf alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
184 POD-035-20 pod-035-20-using-insecure-capability-sys-module alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
185 POD-035-21 pod-035-21-using-insecure-capability-sys-rawio alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
186 POD-035-22 pod-035-22-using-insecure-capability-sys-ptrace alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
167 POD-035-3 pod-035-3-using-insecure-capability-chown alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
168 POD-035-4 pod-035-4-using-insecure-capability-dac-overrides alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
169 POD-035-5 pod-035-5-using-insecure-capability-fowner alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
170 POD-035-6 pod-035-6-using-insecure-capability-fsetid alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
171 POD-035-7 pod-035-7-using-insecure-capability-kill alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
172 POD-035-8 pod-035-8-using-insecure-capability-mac-override alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
173 POD-035-9 pod-035-9-using-insecure-capability-mac-admin alert Insecure capabilities can increase the impact of a container compromise .spec.containers[].securityContext.capabilities yes
187 POD-036 pod-036-keep-default-capabilities alert When not dropping all capabilities the container gets the capabilities defined by the container runtime, which is often fairly generous and does not adhere to principle of least privilege .spec.containers[].securityContext.capabilities.drop yes
200 POD-042-1 pod-042-1-volume-with-read-only-hostpath pass using hostPath is not ideal but can be tolerated when it's read-only .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
201 POD-042-2 pod-042-2-volume-with-writeable-hostpath alert Attackers can use a writable hostpath to gain persistence on underlying host system .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
202 POD-042-3 pod-042-3-volume-with-writeable-hostpath-by-default alert Attackers can use a writable hostpath to gain persistence on underlying host system .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
203 POD-043-1 pod-043-1-mount-azure-cloud-credentials alert Mounting Docker socket (Unix socket) enables container to access Docker internals, retrieve sensitive information and execute Docker commands. .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
204 POD-044-1 pod-044-1-mounting-docker-socket alert Mounting Docker socket (Unix socket) enables container to access Docker internals, retrieve sensitive information and execute Docker commands. .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
205 POD-044-2 pod-044-2-mounting-docker-directory alert mounting Docker socket (Unix socket) enables container to access Docker internals, retrieve sensitive information and execute Docker commands. .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
206 POD-045 pod-045-containing-cve-2021-25741 alert A user may be able to create a container with subPath or subPathExpr volume mounts to access files & directories anywhere on the host filesystem. Following Kubernetes versions are affected: v1.22.0-v1.22.1, v1.21.0-v1.21.4, v1.20.0-v1.20.10, <v1.19.14 .spec.volumes[] yes
.spec.volumes[].hostPath
.spec.volumes[].hostPath.path
.spec.containers[].volumeMounts[]
11 POD-047 Container is running with shared mount propagation alert Shared volumes can overwrite data on the host, and are considered dangerous. .spec.containers[].volumeMounts[].mountPropagation no
12 POD-048 dont use disallowed volume types alert usage of non-ephemeral volume-types should be limited to those defined through PersistentVolumes .spec.volumes[] no
9 PSA-001 psa-001-no-pod-security-admission-label-configured alert at least the baseline PodSecurity level should be used for the namespace Namespace.metadata.labels.pod-security.kubernetes.io yes
10 PSA-002 psa-002-using-privileged-privilegedpodsecurity-level-is-insecur alert Privileged pod security level imposes no restrictions and may allow for known privilege escalations Namespace.metadata.labels.pod-security.kubernetes.io yes
11 PSA-003 psa-003-just-warning-about-violations-of-the-pod-security-stand alert When only warnings for violations are generated insecure workloads can still be deployed Namespace.metadata.labels.pod-security.kubernetes.io yes
12 RBAC-001-1 rbac-001-1-use-cluster-admin-role alert The role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed RoleBinding.roleRef.name yes
ClusterRoleBinding.roleRef.name
.roleRef.name
44 RBAC-001-2 rbac-001-2-use-cluster-admin-role-cluster-wide alert The role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed RoleBinding.roleRef.name yes
ClusterRoleBinding.roleRef.name
.roleRef.name
13 RBAC-002-1 rbac-002-1-read-access-to-secrets alert Attackers who have permissions to retrieve the secrets can access sensitive information ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
14 RBAC-002-2 rbac-002-2-read-access-to-secrets alert Attackers who have permissions to retrieve the secrets can access sensitive information ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
15 RBAC-002-3 rbac-002-3-read-access-to-secrets alert Attackers who have permissions to retrieve the secrets can access sensitive information ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
45 RBAC-002-4 rbac-002-4-read-access-to-secrets alert Attackers who have permissions to retrieve the secrets can access sensitive information ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
46 RBAC-002-5 rbac-002-5-read-access-to-secrets alert Attackers who have permissions to retrieve the secrets can access sensitive information ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
47 RBAC-002-6 rbac-002-6-read-access-to-secrets alert Attackers who have permissions to retrieve the secrets can access sensitive information ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
16 RBAC-003-1 rbac-003-1-role-use-resource-wildcard alert Allowing wildcards violates principle of least privilege ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
48 RBAC-003-2 rbac-003-2-cluster-role-use-resource-wildcard alert Allowing wildcards violates principle of least privilege ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
17 RBAC-003-3 rbac-003-3-role-use-verb-wildcard alert Allowing wildcards violates principle of least privilege ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
49 RBAC-003-4 rbac-003-4-cluster-role-use-verb-wildcard alert Allowing wildcards violates principle of least privilege ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
18 RBAC-003-5 rbac-003-5-role-use-verb-wildcard alert Allowing wildcards violates principle of least privilege ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
50 RBAC-003-6 rbac-003-6-cluster-role-use-verb-wildcard alert Allowing wildcards violates principle of least privilege ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
19 RBAC-004-1 rbac-004-1-role-creates-pods alert The ability to create pods in a cluster opens up possibilities for privilege escalation ClusterRole.rules[].verbs yes
ClusterRole.rules[].resources
Role.rules[].verbs
Role.rules[].resources
.rules[].verbs
.rules[].resources
51 RBAC-004-2 rbac-004-2-cluster-role-creates-pods alert The ability to create pods in a cluster opens up possibilities for privilege escalation ClusterRole.rules[].verbs yes
ClusterRole.rules[].resources
Role.rules[].verbs
Role.rules[].resources
.rules[].verbs
.rules[].resources
20 RBAC-005-1 rbac-005-1-role-attaches-to-pods alert Allowing roles to attach to pods can be dangerous ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
52 RBAC-005-2 rbac-005-2-cluster-role-attaches-to-pods alert Allowing roles to attach to pods can be dangerous ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
21 RBAC-006-1 rbac-006-1-role-exec-into-pods alert Attackers can run malicious commands in containers in the cluster using exec command ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
53 RBAC-006-2 rbac-006-2-cluster-role-exec-into-pods alert Attackers can run malicious commands in containers in the cluster using exec command ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
22 RBAC-007-1 rbac-007-1-role-binds-default-serviceaccount alert the default servicaccount should never be actively used ClusterRoleBinding.subjects[].name yes
RoleBinding.subjects[].name
.subjects[].name
54 RBAC-007-2 rbac-007-2-cluster-role-binds-default-serviceaccount alert the default servicaccount should never be actively used ClusterRoleBinding.subjects[].name yes
RoleBinding.subjects[].name
.subjects[].name
23 RBAC-008-1 rbac-008-1-role-port-forward-pods alert Attackers can open a backdoor communication channel directly to the sockets inside target container bypassing network security restrictions ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
24 RBAC-008-2 rbac-008-2-role-port-forward-pods alert Attackers can open a backdoor communication channel directly to the sockets inside target container bypassing network security restrictions ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
25 RBAC-008-3 rbac-008-3-role-port-forward-pods alert Attackers can open a backdoor communication channel directly to the sockets inside target container bypassing network security restrictions ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
55 RBAC-008-4 rbac-008-4-cluster-role-port-forward-pods alert Attackers can open a backdoor communication channel directly to the sockets inside target container bypassing network security restrictions ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
56 RBAC-008-5 rbac-008-5-cluster-role-port-forward-pods alert Attackers can open a backdoor communication channel directly to the sockets inside target container bypassing network security restrictions ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
57 RBAC-008-6 rbac-008-6-cluster-role-port-forward-pods alert Attackers can open a backdoor communication channel directly to the sockets inside target container bypassing network security restrictions ClusterRole.rules[].resources yes
Role.rules[].resources
.rules[].resources
26 RBAC-009-1 rbac-009-1-role-impersonation alert The impersonate privilege allows a subject to impersonate other users gaining their rights to the cluster ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
58 RBAC-009-2 rbac-009-2-cluster-role-impersonation alert The impersonate privilege allows a subject to impersonate other users gaining their rights to the cluster ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
27 RBAC-010-1 rbac-010-1-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
28 RBAC-010-2 rbac-010-2-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
29 RBAC-010-3 rbac-010-3-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
30 RBAC-010-4 rbac-010-4-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
59 RBAC-010-5 rbac-010-5-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
60 RBAC-010-6 rbac-010-6-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
61 RBAC-010-7 rbac-010-7-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
62 RBAC-010-8 rbac-010-8-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
0 RBAC-011 minimize subjects per namespace alert Significant number of Subjects having access to a Namespace might be a potential security risk no
35 RBAC-012-1 rbac-012-1-role-info-disclosure alert Attackers can use disclosed information to plan their next steps ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
36 RBAC-012-2 rbac-012-2-role-info-disclosure alert Attackers can use disclosed information to plan their next steps ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
37 RBAC-012-3 rbac-012-3-role-info-disclosure alert Attackers can use disclosed information to plan their next steps ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
67 RBAC-012-4 rbac-012-4-cluster-role-info-disclosure alert Attackers can use disclosed information to plan their next steps ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
68 RBAC-012-5 rbac-012-5-cluster-role-info-disclosure alert Attackers can use disclosed information to plan their next steps ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
69 RBAC-012-6 rbac-012-6-cluster-role-info-disclosure alert Attackers can use disclosed information to plan their next steps ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
38 RBAC-013-1 rbac-013-1-role-destructive alert Attackers can use destructive permissions to destroy data and resources ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
39 RBAC-013-2 rbac-013-2-role-destructive alert Attackers can use destructive permissions to destroy data and resources ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
70 RBAC-013-3 rbac-013-3-cluster-role-destructive alert Attackers can use destructive permissions to destroy data and resources ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
71 RBAC-013-4 rbac-013-4-cluster-role-destructive alert Attackers can use destructive permissions to destroy data and resources ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
40 RBAC-014-1 rbac-014-1-role-event-deletion alert attackers may want to delete events in an attempt to avoid detection of their activity ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
41 RBAC-014-2 rbac-014-2-role-event-deletion alert attackers may want to delete events in an attempt to avoid detection of their activity ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
72 RBAC-014-3 rbac-014-3-cluster-role-event-deletion alert attackers may want to delete events in an attempt to avoid detection of their activity ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
73 RBAC-014-4 rbac-014-4-cluster-role-event-deletion alert attackers may want to delete events in an attempt to avoid detection of their activity ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
42 RBAC-015-1 rbac-015-1-role-core-dns-poisoning alert an attacker can poison the DNS server if he can modify configuration of the coreDNS server ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
43 RBAC-015-2 rbac-015-2-role-core-dns-poisoning alert an attacker can poison the DNS server if he can modify configuration of the coreDNS server ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
74 RBAC-015-3 rbac-015-3-cluster-role-core-dns-poisoning alert an attacker can poison the DNS server if he can modify configuration of the coreDNS server ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
75 RBAC-015-4 rbac-015-4-cluster-role-core-dns-poisoning alert an attacker can poison the DNS server if he can modify configuration of the coreDNS server ClusterRole.rules[].verbs yes
Role.rules[].verbs
.rules[].verbs
76 RBAC-016 rbac-016-serviceaccount-without-binding alert all service accounts should be bound to roles None yes
77 RBAC-017 rbac-017-too-many-roles-per-subject alert None yes
1 RBAC-018 Role that grant permissions to system reserved namespace alert A role was found that grants permission over system reserved namespace (either default or kube-system) no
2 RBAC-019 Avoid use of system:masters group alert The system:masters group has unrestricted access to the Kubernetes API hard-coded into the API server source code. An authenticated user who is a member of this group cannot have their access reduced, even if all bindings and cluster role bindings which mention it, are removed. ClusterRole.rules[].verbs no
Role.rules[].verbs
31 RBAC-020-1 rbac-020-1-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
32 RBAC-020-2 rbac-020-2-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
33 RBAC-020-3 rbac-020-3-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
34 RBAC-020-4 rbac-020-4-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
63 RBAC-020-5 rbac-020-5-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
64 RBAC-020-6 rbac-020-6-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
65 RBAC-020-7 rbac-020-7-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
66 RBAC-020-8 rbac-020-8-cluster-role-manages-rbac alert Attackers can escalate privileges if they can update roles ClusterRole.rules[].resources yes
ClusterRole.rules[].verbs
Role.rules[].resources
Role.rules[].verbs
.rules[].resources
.rules[].verbs
100 REL-001 rel-001-no-readinessprobe alert Configuring a readinessProbe is recommended as it's intended to ensure that workload is ready to process network traffic .spec.containers[].readinessProbe yes
101 REL-002 rel-002-no-livenessprobe alert Configuring a livenessProbe is recommended as it's intended to ensure that workload remains healthy during its entire execution lifecycle, or otherwise restart the container. .spec.containers[].livenessProbe yes
99 REL-003 rel-003-no-priorityclass alert Pods with high risk workloads can be assigned higher PriorityClasses to ensure reliability .spec.priorityClassName yes
96 REL-004-1 rel-004-1-no-node-selection-specified alert Pods with high risk workloads can be assigned to specific node to separate them from other workloads .spec.nodeSelector yes
.spec.affinity.nodeAffinity
97 REL-004-2 rel-004-2-only-nodeaffinity-is-enough pass Pods with high risk workloads can be assigned to specific node to separate them from other workloads .spec.nodeSelector yes
.spec.affinity.nodeAffinity
98 REL-004-3 rel-004-3-only-nodeselector-is-enough pass Pods with high risk workloads can be assigned to specific node to separate them from other workloads .spec.nodeSelector yes
.spec.affinity.nodeAffinity
188 RES-001-1 res-001-1-default-memory-requests-from-namespace pass not setting default memory requests can lead to problems upon admission .spec.containers[].resources.requests.memory yes
189 RES-001-2 res-001-2-no-memory-requests alert not setting memory requests can lead to problems upon admission .spec.containers[].resources.requests.memory yes
190 RES-002-1 res-002-1-default-memory-limits-from-namespace pass not setting memory limit can lead to the pod suffocating the node by using all available memory .spec.containers[].resources.limits.memory yes
191 RES-002-2 res-002-2-no-memory-limits alert not setting memory limit can lead to the pod suffocating the node by using all available memory .spec.containers[].resources.limits.memory yes
192 RES-003-1 res-003-1-default-cpu-requests-from-namespace pass not setting default CPU requests can lead to problems upon admission .spec.containers[].resources.requests.cpu yes
193 RES-003-2 res-003-2-no-cpu-requests alert not setting CPU requests can lead to problems upon admission .spec.containers[].resources.requests.cpu yes
194 RES-004-1 res-004-1-default-cpu-limits-from-namespace pass not setting CPU limit can lead to the pod suffocating the node by using all available CPU .spec.containers[].resources.limits.cpu yes
195 RES-004-2 res-004-2-no-cpu-limits alert not setting CPU limit can lead to the pod suffocating the node by using all available CPU .spec.containers[].resources.limits.cpu yes
196 RES-005-1 res-005-1-default-ephemeral-storage-requests-from-namespace pass not setting ephemeral storarge limit can suffocate the node by using all available storage .spec.containers[].resources.requests.ephemeral-storage yes
197 RES-005-2 res-005-2-no-ephemeral-storage-requests alert not setting ephemeral storage limit can suffocate the node by using all available CPU .spec.containers[].resources.requests.ephemeral-storage yes
198 RES-006-1 res-006-1-default-ephemeral-storage-limits-from-namespace pass not setting ephemeral storarge limit can suffocate the node by using all available storage .spec.containers[].resources.limits.ephemeral-storage yes
199 RES-006-2 res-006-2-no-ephemeral-storage-limits alert not setting ephemeral storage limit can suffocate the node by using all available CPU .spec.containers[].resources.limits.ephemeral-storage yes
0 RES-007-0 res-007-0-no-limitrange-object-for-namespace alert LimitRange.metadata.namespace yes
.metadata.namespace
1 RES-007-1 res-007-1-no-default-cpu-request-for-namespace alert LimitRange.spec.limits.defaultRequest.cpu yes
.spec.limits.defaultRequest.cpu
2 RES-007-2 res-007-2-no-default-cpu-limits-for-namespace alert LimitRange.spec.limits.default.cpu yes
.spec.limits.default.cpu
3 RES-007-3 res-007-3-no-cpu-limits-for-namespace alert LimitRange.spec.limits.min.cpu yes
LimitRange.spec.limits.max.cpu
.spec.limits.min.cpu
.spec.limits.max.cpu
4 RES-008-1 res-008-1-no-default-memory-request-for-namespace alert LimitRange.spec.limits.defaultRequest.memory yes
.spec.limits.defaultRequest.memory
5 RES-008-2 res-008-2-no-default-memory-limits-for-namespace alert LimitRange.spec.limits.default.memory yes
.spec.limits.default.memory
6 RES-008-3 res-008-3-no-default-memory-limits-for-namespace alert LimitRange.spec.limits.min.memory yes
LimitRange.spec.limits.max.memory
.spec.limits.min.memory
.spec.limits.max.memory
7 RES-009-1 res-009-1-no-resource-quota-applied-to-namespace alert ResourceQuota.metadata.namespace yes
.metadata.namespace
8 RES-009-2 res-009-2-no-hard-quotas-defined-in-resourcequota-for-namespace alert ResourceQuota.spec.hard.cpu yes
ResourceQuota.spec.hard.memory
ResourceQuota.spec.hard.requests.cpu
ResourceQuota.spec.hard.requests.memory
ResourceQuota.spec.hard.pods
.spec.hard.cpu
.spec.hard.memory
.spec.hard.requests.cpu
.spec.hard.requests.memory
.spec.hard.pods
149 SC-001-1 sc-001-1-imagepullpolicy-defaults-to-always pass Kubernetes may run older version of the container images without user knowing about this .spec.containers[].imagePullPolicy yes
150 SC-001-2 sc-001-2-no-proper-imagepullpolicy-set alert Kubernetes may run older version of the container images without user knowing about this .spec.containers[].imagePullPolicy yes
151 SC-001-3 sc-001-3-no-proper-imagepullpolicy-set alert Kubernetes may run older version of the container images without user knowing about this .spec.containers[].imagePullPolicy yes
152 SC-002-1 sc-002-1-tag-instead-of-digest-is-fine pass Specify an explicit tag or digest to have full control over the running container image .spec.containers[].image yes
153 SC-002-2 sc-002-2-using-latest-image-tag alert When using latest image tag the used image can change without the user knowing about this .spec.containers[].image yes
154 SC-002-3 sc-002-3-no-explicit-tag alert Kubernetes may run older version of the container images without user knowing about this .spec.containers[].image yes
19 SC-003 configure image provenance using ImagePolicyWebhook admission controller alert As suggeded by CIS benchmark (5.5.1) no
20 SC-004 Use trusted image registry alert Use trusted repo which scans images for known vulnerabilities and misconfigurations no
17 SRV-001 ensure all services target a pod alert Service.spec.selector no
18 SRV-002 don’t use NodePort alert NodePort services should be avoided as they are insecure, and can't be used together with NetworkPolicies.Exposing a NodePort will open a port on all nodes to be reached by the cluster's external network. Using this method to expose the application is less secure and forces you to create unnecessary coupling between services in order to expose them all to external traffic. Service.spec.type no
Service.spec.ports[].nodePort
84 WL-001 wl-001-naked-pod alert Pods shouldn't be deployed without a resource managing it .metadata.ownerReferences yes
.kind