Last updated at Thu, 30 Nov 2023 18:42:34 GMT
The National Security Agency (NSA) and the Cybersecurity and Infrastructure Security Agency (CISA) recently updated their Kubernetes Hardening Guide, which was originally published in August 2021.
With the help and feedback received from numerous partners in the cybersecurity community, this guide outlines a strong line of action towards minimizing the chances of potential threats and vulnerabilities within Kubernetes deployments, while adhering to strict compliance requirements and recommendations.
The purpose of the Kubernetes hardening guide
This newly updated guide comes to the aid of multiple teams — including security, DevOps, system administrators, and developers — by focusing on the security challenges associated with setting up, monitoring, and maintaining a Kubernetes cluster. It brings together strategies to help organizations avoid misconfigurations and implement recommended hardening measures by highlighting three main sources of compromise:
- Supply chain risks: These often occur during the container build cycle or infrastructure acquisition and are more challenging to mitigate.
- Malicious threat actors: Attackers can exploit vulnerabilities and misconfigurations in components of the Kubernetes architecture, such as the control plane, worker nodes, or containerized applications.
- Insider threats: These can be administrators, users, or cloud service providers, any of whom may have special access to the organization’s Kubernetes infrastructure.
“This guide focuses on security challenges and suggests hardening strategies for administrators of National Security Systems and critical infrastructure. Although this guide is tailored to National Security Systems and critical infrastructure organizations, NSA and CISA also encourage administrators of federal and state, local, tribal, and territorial (SLTT) government networks to implement the recommendations in this guide,” the authors state.
CIS Benchmarks vs. the Kubernetes Hardening Guide
For many practitioners, the Center for Internet Security (CIS) is the gold standard for security benchmarks; however, their benchmarks are not the only guidance available.
While the CIS is compliance gold, the CIS Benchmarks are very prescriptive and usually offer minimal explanations. In creating their own Kubernetes hardening guidelines, it appears that the NSA and CISA felt there was a need for a higher-level security resource that explained more of the challenges and rationale behind Kubernetes security. In this respect, the two work as perfect complements — you get strategies and rationale with the Kubernetes Hardening Guide and the extremely detailed prescriptive checks and controls enumerated by CIS.
In other words, CIS Benchmarks offer the exact checks you should use, along with recommended settings. The NSA and CISA guide supplements these by explaining challenges and recommendations, why they matter, and detailing how potential attackers look at the attack. In version 1.1, the updates include the latest hardening recommendations necessary to protect and defend against today’s threat actors.
Breaking down the updated guidance
As mentioned, the guide breaks down the Kubernetes threat model into three main sources: supply chain, malicious threat actors, and insider threats. This model reviews threats within the Kubernetes cluster and beyond its boundaries by including underlying infrastructure and surrounding workloads that Kubernetes does not manage.
Via a new compliance pack, InsightCloudSec supports and covers the main sources of compromise for a Kubernetes cluster, as mentioned in the guide. Below are the high-level points of concern, and additional examples of checks and insights, as provided by the InsightCloud Platform:
-
Supply chain: This is where attack vectors are more diverse and hard to tackle. An attacker might manipulate certain elements, services, and other product components. It is crucial to continuously monitor the entire container life cycle, from build to runtime. InsightCloudSec provides security checks to cover the supply chain level, including:
- Checking that containers are retrieved from known and trusted registries/repositories
- Checking for container runtime vulnerabilities
-
Kubernetes Pod security: Kubernetes Pods are often used as the attacker’s initial execution point. It is essential to have a strict security policy, in order to prevent or limit the impact of a successful compromise. Examples of relevant checks available in InsightCloudSec include:
- Non-root containers and “rootless” container engines
- Reject containers that execute as the root user or allow elevation to root.
- Check K8s container configuration to use
SecurityContext:runAsUser
specifying a non-zero user or runAsUser. - Deny container features frequently exploited to break out, such as hostPID, hostIPC, hostNetwork, allowedHostPath.
- Immutable container file systems
- Where possible, run containers with immutable file systems.
- Kubernetes administrators can mount secondary read/write file systems for specific directories where applications require write access.
- Pod security enforcement
- Harden applications against exploitation using security services such as SELinux®, AppArmor®, and secure computing mode (seccomp).
- Protecting Pod service account tokens
- Disable the secret token from being mounted by using the
automountServiceAccountToken: false
directive in the Pod’s YAML specification.
- Disable the secret token from being mounted by using the
- Non-root containers and “rootless” container engines
-
Network separation and hardening: Monitoring the Kubernetes cluster’s networking is key. It holds the communication among containers, Pods, services, and other external components. These resources are not isolated by default and therefore could lead to lateral movement or privilege escalations if not separated and encrypted properly. InsightCloudSec provides checks to validate that the relevant security policies are in place:
- Namespaces
- Set up network policies to isolate resources. Pods and services in different namespaces can still communicate with each other unless additional separation is enforced.
- Network policies
- Set up network policies to isolate resources. Pods and services in different namespaces can still communicate with each other unless additional separation is enforced.
- Resource policies
- Use resource requirements and limits.
- Control plane hardening
- Set up TLS encryption.
- Configure control plane components to use authenticated, encrypted communications using Transport Layer Security (TLS) certificates.
- Encrypt etcd at rest, and use a separate TLS certificate for communication.
- Secure the etcd datastore with authentication and role-based access control (RBAC) policies. Set up TLS certificates to enforce Hypertext Transfer Protocol Secure (HTTPS) communication between the etcd server and API servers. Using a separate certificate authority (CA) for etcd may also be beneficial, as it trusts all certificates issued by the root CA by default.
- Kubernetes Secrets
- Place all credentials and sensitive information encrypted in Kubernetes Secrets rather than in configuration files
- Namespaces
-
Authentication and authorization: Probably the primary mechanisms to leverage toward restricting access to cluster resources are authentication and authorization. There are several configurations that are supported but not enabled by default, such as RBAC controls. InsightCloudSec provides security checks that cover the activity of both users and service accounts, enabling faster detection of any unauthorized behavior:
- Prohibit the addition of the service token by setting
automaticServiceAccountToken
orautomaticServiceAccounttoken
to false. - Anonymous requests should be disabled by passing the
--anonymous-auth=false
option to the API server. - Start the API server with the
--authorizationmode=RBAC
flag in the following command. Leaving authorization-mode flags, such asAlwaysAllow
, in place allows all authorization requests, effectively disabling all authorization and limiting the ability to enforce least privilege for access.
- Prohibit the addition of the service token by setting
-
Audit logging and threat detection: Kubernetes audit logs are a goldmine for security, capturing attributed activity in the cluster and making sure configurations are properly set. The security checks provided by InsightCloudSec ensure that the security audit tools are enabled. In order to keep track of any suspicious activity:
- Check that the Kubernetes native audit logging configuration is enabled.
- Check that
seccomp: audit mode
is enabled. The seccomp tool is disabled by default but can be used to limit a container’s system call abilities, thereby lowering the kernel’s attack surface. Seccomp can also log what calls are being made by using an audit profile.
-
Upgrading and application security practices: Security is an ongoing process, and it is vital to stay up to date with upgrades, updates, and patches not only in Kubernetes, but also in hypervisors, virtualization software, and other plugins. Furthermore, administrators need to make sure they uninstall old and unused components as well, in order to reduce the attack surface and risk of outdated tools. InsightCloudSec provides the checks required for such scenarios, including:
- Promptly applying security patches and updates
- Performing periodic vulnerability scans and penetration tests
- Uninstalling and deleting unused components from the environment
Stay up to date with InsightCloudSec
Announcements like this catch the attention of the cybersecurity community, who want to take advantage of new functionalities and requirements in order to make sure their business is moving forward safely. However, this can often come with a hint of hesitation, as organizations need to ensure their services and settings are used properly and don’t introduce unintended consequences to their environment.
In order to help our customers to continuously stay aligned with the new guidelines, InsightCloudSec is already geared with a new compliance pack that provides additional coverage and support, based on insights that are introduced in the Kubernetes Hardening Guide.
Want to see InsightCloudSec in action? Check it out today.
Additional reading: