Cloud Security

Kubernetes Security Checklist for 2024

Our previous blogs covered the top Kubernetes security tools and why you should pay attention to securing Kubernetes containers in cloud environments. Cyber threats are constantly emerging, and malicious actors need more time to prepare for them. Optimizing Kubernetes security is critical to improving a company’s cloud security posture. Kubernetes administrators must understand how the […]

Mansi B.

Written by Mansi B.

September 5, 2023 | 7 min read

Our previous blogs covered the top Kubernetes security tools and why you should pay attention to securing Kubernetes containers in cloud environments. Cyber threats are constantly emerging, and malicious actors need more time to prepare for them. Optimizing Kubernetes security is critical to improving a company’s cloud security posture. Kubernetes administrators must understand how the infrastructure works to incorporate effective security measures.

The Kubernetes Security Checklist for 2024 can be broadly classified into three categories:

  • Clusters
  • Pods
  • Containers

Kubernetes Security Checklist needs to be simplified, and operational complexity must be addressed. When organizations try to prioritize security measures and remediate threats, they automatically boost business reputations. Businesses build trust among customers and establish credibility. It also reduces operational expenses by preparing for future issues that may emerge later with increasing threats.

 Let’s dive into that.

Table Of Contents:

  1. Multiple Components of Kubernetes Security Checklist
  2. Kubernetes Security Checklist for 2024
  3. Why PingSafe for Kubernetes Security?
  4. Conclusion

Multiple Components Kubernetes Security Checklist

The Kubernetes Security Checklist has multiple components-

  • Auditing and logging
  • Network security
  • Authentication and authorization
  • Secrets management
  • Admission control
  • Kubernetes security boundaries
  • Kubernetes security policies
  • Kubelet security
  • Open’ defaults

According to the Kubernetes adoption, security, and market trends report 2024, organizations have documented numerous adverse impacts (including revenue losses and fines) due to negligence in Kubernetes container security. DevSecOps teams have stated that vulnerabilities and misconfigurations are the top security concerns associated with Kubernetes and container environments. Open-source Kubernetes software solutions are unsafe and affect software supply chain security. Over 67% of companies have delayed business operations due to security issues, and most global firms are overwhelmed with all aspects of security management, starting from development, deployment, and maint

The ultimate Kubernetes security checklist for 2024

#1. Follow CIS Benchmarks

CIS Benchmarks provide baseline security policies that organizations can use to improve Kubernetes security. It safeguards IT systems from cyber-attacks and features a set of community consensus processes and guidelines developed to secure Kubernetes environments. According to the Kubernetes security checklist CIS Benchmark, the top components users need to secure are – Kubernetes PKI, kubeadm, CNI files, etcd data directory, kubeadm admin.conf, controller manager.conf, and the pod specification file.

#2. Kubernetes API Authentication

One of the most widely adopted methods of Kubernetes API authentication in the Kubernetes security checklist is using X509 certificates. Certificates are used to highlight a group of memberships and can verify the names of subjects who send requests.

According to the Kubernetes security checklist, other built-in methods exist for authenticating user accounts. Kubernetes authentication practices validate the identity of users and determine whether or not they should be granted access. Role-based access control is implemented in the process.

For using X509 authentication, users need to create a private key and issue a certificate signing request. This can be initiated in Unix or similar operating system environments. The second most popular technique of Kubernetes authentication is using OpenID Connect (OIDC) tokens. Many OIDC providers like Google, Okta, dex, and OpenUnison help with this. Various single sign-on services assist with Kubernetes API authentication, and the implementation steps vary depending on the service users choose. Service account authentication tokens can be used to validate authentication requests, and bearer tokens in HTTP headers can also issue recommendations.

The final method of authentication is the use of static password files. It is the least secure authentication approach but the easiest. It requires minimal configuration, and users must manually update the password file to update user access changes. For those new to Kubernetes authentication, using static password files as an authentication solution is the most straightforward approach for use with test clusters.

#3. Kubelet Security

Kubelet security entails running nodes across Kubernetes clusters. It is primarily responsible for managing Kubernetes containers directly on the nodes and interacts with container runtime interfaces (CRI).

There are two ports involved: 10255 and 10250. 10255 is a read-only port that returns data about pods and containers running on nodes. 10250 is a writable port that can schedule pods on selected nodes.

When deploying Kubernetes clusters for the first time, the following security measures should be considered as part of the Kubernetes security checklist:

  • Execute nodes on internal networks always
  • Use kubelet using the –anonymous-auth=false flag and restrict anonymous access
  • Avoid setting the authorization mode to AlwaysAllow and select something else
  • Restrict kubelets permissions. The NodeRestriction admission plugin can modify pods and bind them to Node objects.
  • Use certificate-based authentication and properly configure it to enable communications between master and nodes smoothly.
  • Apply strict firewall rules and only enable the Kubernetes master to communicate with the kubelet
  • Turn off read-only ports and restrict information shared by workloads
  • Test all Kubernetes security controls manually and ensure that kubelets are inaccessible by default

#4. Secrets Management

Kubernetes secrets store sensitive data like API keys, passwords, and tokens. Kubernetes secrets are meant not to be accessible by internal Kubernetes components and are only sent to pod nodes on a need-to-know basis. Secrets are one of the biggest targets for attackers and must be guarded carefully.

Users should restrict access to etcd, control it, and apply encryption to etcd clusters. Kubernetes containers should also follow the principle of least privilege access. Node authorization should be implemented among other Kubernetes security checklist items. Ideally, users should use different sets of secrets for different Kubernetes environments.

It is a good practice to avoid building secrets into images. Enabling real-time scanning of secrets across source code repositories and verifying them is also recommended. Secrets are at risk of being written to logs, and one of the best security practices is to pass secrets in files. Set the mounted volume as a temporary directory instead of writing to the disk. You can also rotate secret keys, choose different ways to store them and pass them to containers for the best results. Sometimes, applications need to be restarted to read new database passwords. For file-based workflow users, file secrets can be updated automatically without restarts.

#5. Admission Controllers

Admission controllers are included in the Kubernetes security checklist for 2024. These enforce Kubernetes security policy frameworks and work as a second line of defense next to RBAC controls.

Admission controllers can set rules based on different parameters and limit resource utilization. They can prevent the execution of commands in privileged containers and always require pods to pull images instead of using locally stored ones at the node. Another benefit of admission controllers is monitoring incoming requests and setting resource constraints in namespaces. It is recommended that users enable the default admission controllers provided by Kubernetes as a bare minimum.

#6. Kubernetes Security Boundaries

Kubernetes security boundaries form the foundation of the Kubernetes security checklist. It prevents processes from accessing other users’ data and enforces policies that offer containerized isolation. The LimitRanger and ResourceQuota admission templates inhibit resource deprivation, and as for the pods, users can define customized security contexts and enforce them.

#7. Kubernetes Security Policies

Pod security standards are subject to varying degrees of complexity. Kubernetes pod security policies are configured on a cluster-level resource and enforce the usage of security contexts and admission controllers. The pod has to meet the requirements of the pod security policy, or else it won’t run. Pod security policies are automatically removed from Kubernetes v1.25 and up, meaning users must migrate to the Kubernetes Pod Security admission controller.

Security contexts define access control settings and privileges for Kubernetes containers. It implements discretionary access controls, sets permissions for accessing objects based on group IDs, and configures unprivileged processes.

Users can define internal security context tools and integrate them with external features. They can use the seccomp to filter system calls, and AppArmor can restrict the capabilities of individual components. You don’t need to provide access privileges and assign resource-specific permissions, helping you take a granular approach. Users can include security contexts with the Security context code found within deployment files when creating pods. Kubernetes is very agile, and users can also automate profile deployment across nodes. The only downside is that there is no support for Windows containers. They can also enable permissions to secure service accounts, nodes, and users.

#8. Kubernetes Network Security

Kubernetes Network security is an essential component of the Kubernetes security checklist. It adds controls that specify how traffic flows between containers and defines the type of traffic meant to be blocked. Users can follow a multi-cluster architecture to isolate workloads and mitigate security issues by deploying workloads in different clusters. You can achieve a high degree of container isolation and reduce complexity simultaneously.

There are Kubernetes network policies that add firewalling capabilities and restrict traffic flow between pods. It specifies which pods communicate with selected network entities. The ingress policy is allowed on the destination port, and the egress policy must be on the source pod to enable optimal traffic flow. As a general rule, using labels is good, and users can add procedures to permit and direct traffic to only where they expect it. They can restrict traffic to specific ports for different applications. Kubernetes service meshes can simplify monitoring and provide various features related to continuous monitoring and alerts. They detect security threats and report incidents; many service mesh projects are available. Kubernetes security checklist suggests using options such as Linkerd, Consul, and Istio.

#9. Kubernetes Auditing and Logging

Maintaining container event logs and creating an audit trail for production environments is essential. Kubernetes audit logging includes logging the identity of images and users who invoke start and stop commands. CNI plugins generate virtual network interfaces used by containers. CNI plugins also integrate with several third-party configuration management platforms and tools, and the most popular ones are Cilium and Project Calico. Other aspects of Kubernetes auditing and logging include the modification of container payloads and volume mounts, monitoring inbound and outbound connections, and remediating failed actions. Application logging is the easiest way to monitor cluster activity and can give insights for debugging applications. Implementing cluster-level logging and push logs in storage containers is a standard practice using a centralized log management platform or service.

Why PingSafe for Kubernetes Security?

PingSafe features a revolutionary Cloud-Native Application Protection Platform (CNAPP) that offers world-class Kubernetes security. It provides agentless vulnerability management, proactive threat identification and detection, and ensures continuous compliance. All Kubernetes resources are adhered to the strictest industry standards and regulations like HIPAA, NIST, PCI-DSS, ISO 27001, etc.

The solution offers event analyzer capabilities. Users can conduct customized investigations by using various filters to finetune results. Cloud Workload Protection Platform (CWPP) and Kubernetes Security Posture Management (KSPM) tools in PingSafe CNAPP enable an organization to secure containers, VMs, workloads, and serverless functions.

CNAPP can perform container image scanning and prevent cloud credentials leakages by securing IAM keys. It can conduct real-time secret scanning for over 800+ secret classifications across GitHub, GitLab, BitBucket, and others. PingSafe is excellent at generating graph-based visualizations of Kubernetes clusters for further analysis. The platform also has an Offensive Security Engine to identify various exploits, ensure zero false positives, and enforce shift-left security.

Conclusion

The basic principles of the Kubernetes Security Checklist 2024 revolve around authentication, pod security management, secrets handling, and other components. By following these practices, organizations can secure Kubernetes environments and ensure data access is restricted. These tips simplify Kubernetes security and layer security to reduce complexities in architecture. When users optimize Kubernetes security for the cloud, it becomes easy to integrate it with other security workflows.