Kubernetes has quickly become a popular container orchestration platform. However, its widespread adoption introduces new security risks. This article outlines the top Kubernetes security risks according to OWASP and provides recommendations for mitigating them. Let’s jump in!

Insecure workload configurations

A common misconfiguration is running applications as root inside containers, giving your attackers root access if a container is compromised.

Protection requires running applications as non-root users, disabling privilege escalation, avoiding privileged containers that remove container isolation mechanisms, and using read-only filesystems where possible.

We recommend tools like Open Policy Agent to detect misconfigurations.

Supply chain vulnerabilities

Kubernetes containers rely on third-party components, which can introduce security vulnerabilities at every phase of the supply chain.

Scan images for CVEs with tools like Clair or Trivy early in development and scrutinise all container creation, composition, dependencies, and deployment aspects.

Minimise attack surface by reducing OS packages and dependencies, use secure base images like Distroless or Scratch and optimise their footprints with tools like Docker Slim.

Overly permissive role-based access control (RBAC)

Implementing checks and balances around RBAC is critical, with vendors like SentinelOne offering powerful access control features.

Avoid granting unnecessary access through roles like cluster-admin, which enable complete control over the cluster. This can allow attackers to gain a foothold and manoeuvre through the environment without checkpoints.

Regularly review permissions granted to users, service accounts, and third-party components. Tighten RoleBindings, prune unnecessary access, and ensure duty separation.

Inadequate policy enforcement

Define and implement policies aligned with your goals and use native Kubernetes resources or policy controllers for enforcement.

Regularly assess controls to ensure policies are being applied and are effective. Leverage tools like Kyverno and Open Policy Agent to implement granular policies and generate alerts on violations. Quickly respond to violations by determining their root cause.

Broken authentication

Compromised authentication allows attackers to bypass authentication and gain unauthorised cluster access. Misconfigured settings leave access controls vulnerable, which can lead to an operation-crippling attack.

We recommend mandating strong credentials, encrypting channels between components with SSL/TLS, correctly configuring authentication mechanisms, and Implementing RBAC (see above) to restrict access.

Vulnerable components

Kubernetes clusters contain many integrations and software dependencies. These present possible vulnerabilities that attackers can exploit to move laterally through the environment, escalate privileges, and steal data if left unpatched.

The best way to secure vulnerable components is to stay updated on new vulnerabilities and disclosures, continuously scan for issues, and minimise third-party dependencies with a history of security problems and breaches.

Misconfigured cluster components

Closely follow vendor guidelines and community best practices when configuring cluster components. For example, turn off anonymous auth in the kubelet and enable authorisation mode. Missteps here expand the attack surface.

Regularly audit configurations and permissions. Isolate and limit component access to trusted users. Managed services help curb risks from self-managed misconfigurations.

Perform CIS Benchmark scans to identify misconfigurations in components like the kubelet and kube-apiserver and use managed services like EKS to implement secure defaults.

For an end-to-end security tool, we recommend SentinelOne.