Kubernetes Security Technical Implementation Guide
Rules, Groups, and Values defined within the XCCDF Benchmark
-
Kubernetes dashboard must not be enabled.
<VulnDiscussion>While the Kubernetes dashboard is not inherently insecure on its own, it is often coupled with a misconfiguration of Role-Bas...Rule Medium Severity -
SRG-APP-000033-CTR-000090
<GroupDescription></GroupDescription>Group -
Kubernetes Kubectl cp command must give expected access and results.
<VulnDiscussion>One of the tools heavily used to interact with containers in the Kubernetes cluster is kubectl. The command is the tool Syste...Rule Medium Severity -
SRG-APP-000033-CTR-000090
<GroupDescription></GroupDescription>Group -
The Kubernetes kubelet staticPodPath must not enable static pods.
<VulnDiscussion>Allowing kubelet to set a staticPodPath gives containers with root access permissions to traverse the hosting filesystem. The...Rule High Severity -
SRG-APP-000033-CTR-000100
<GroupDescription></GroupDescription>Group -
Kubernetes DynamicAuditing must not be enabled.
<VulnDiscussion>Protecting the audit data from change or deletion is important when an attack occurs. One way an attacker can cover their tra...Rule Medium Severity -
SRG-APP-000033-CTR-000095
<GroupDescription></GroupDescription>Group -
Kubernetes DynamicKubeletConfig must not be enabled.
<VulnDiscussion>Kubernetes allows a user to configure kubelets with dynamic configurations. When dynamic configuration is used, the kubelet w...Rule Medium Severity -
SRG-APP-000033-CTR-000090
<GroupDescription></GroupDescription>Group -
The Kubernetes API server must have Alpha APIs disabled.
<VulnDiscussion>Kubernetes allows alpha API calls within the API server. The alpha features are disabled by default since they are not ready ...Rule Medium Severity -
SRG-APP-000092-CTR-000165
<GroupDescription></GroupDescription>Group -
Kubernetes Controller Manager must disable profiling.
<VulnDiscussion>Kubernetes profiling provides the ability to analyze and troubleshoot Controller Manager events over a web interface on a hos...Rule Medium Severity -
SRG-APP-000142-CTR-000325
<GroupDescription></GroupDescription>Group -
The Kubernetes API Server must enforce ports, protocols, and services (PPS) that adhere to the Ports, Protocols, and Services Management Category Assurance List (PPSM CAL).
<VulnDiscussion>Kubernetes API Server PPSs must be controlled and conform to the PPSM CAL. Those PPS that fall outside the PPSM CAL must be b...Rule Medium Severity -
SRG-APP-000142-CTR-000325
<GroupDescription></GroupDescription>Group -
Kubernetes API Server must generate audit records that identify what type of event has occurred, identify the source of the event, contain the event results, identify any users, and identify any containers associated with the event.
<VulnDiscussion>Within Kubernetes, audit data for all components is generated by the API server. This audit data is important when there are ...Rule Medium Severity -
SRG-APP-000133-CTR-000290
<GroupDescription></GroupDescription>Group -
Kubernetes Kubelet must deny hostname override.
<VulnDiscussion>Kubernetes allows for the overriding of hostnames. Allowing this feature to be implemented within the kubelets may break the ...Rule Medium Severity -
SRG-APP-000133-CTR-000295
<GroupDescription></GroupDescription>Group -
The Kubernetes manifests must be owned by root.
<VulnDiscussion>The manifest files contain the runtime configuration of the API server, proxy, scheduler, controller, and etcd. If an attacke...Rule Medium Severity -
SRG-APP-000133-CTR-000300
<GroupDescription></GroupDescription>Group -
The Kubernetes KubeletConfiguration file must be owned by root.
<VulnDiscussion>The kubelet configuration file contains the runtime configuration of the kubelet service. If an attacker can gain access to t...Rule Medium Severity -
SRG-APP-000133-CTR-000305
<GroupDescription></GroupDescription>Group -
The Kubernetes KubeletConfiguration files must have file permissions set to 644 or more restrictive.
<VulnDiscussion>The kubelet configuration file contains the runtime configuration of the kubelet service. If an attacker can gain access to t...Rule Medium Severity -
SRG-APP-000133-CTR-000310
<GroupDescription></GroupDescription>Group -
The Kubernetes manifest files must have least privileges.
<VulnDiscussion>The manifest files contain the runtime configuration of the API server, scheduler, controller, and etcd. If an attacker can g...Rule Medium Severity -
SRG-APP-000141-CTR-000315
<GroupDescription></GroupDescription>Group -
The Kubernetes cluster must use non-privileged host ports for user pods.
<VulnDiscussion>Privileged ports are those ports below 1024 and that require system privileges for their use. If containers can use these por...Rule Medium Severity -
SRG-APP-000171-CTR-000435
<GroupDescription></GroupDescription>Group -
Secrets in Kubernetes must not be stored as environment variables.
<VulnDiscussion>Secrets, such as passwords, keys, tokens, and certificates should not be stored as environment variables. These environment v...Rule High Severity -
SRG-APP-000211-CTR-000530
<GroupDescription></GroupDescription>Group -
Kubernetes must separate user functionality.
<VulnDiscussion>Separating user functionality from management functionality is a requirement for all the components within the Kubernetes Con...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
The Kubernetes API server must use approved cipher suites.
<VulnDiscussion>The Kubernetes API server communicates to the kubelet service on the nodes to deploy, update, and delete resources. If an att...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
Kubernetes API Server must have the SSL Certificate Authority set.
<VulnDiscussion>Kubernetes control plane and external communication are managed by API Server. The main implementation of the API Server is t...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
The Kubernetes Kube Proxy kubeconfig must be owned by root.
<VulnDiscussion>The Kubernetes Kube Proxy kubeconfig contain the argument and setting for the Control Planes. These settings contain network ...Rule Medium Severity -
SRG-APP-000516-CTR-001325
<GroupDescription></GroupDescription>Group -
Kubernetes Kubelet must have the SSL Certificate Authority set.
<VulnDiscussion>Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, moun...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
Kubernetes Controller Manager must have the SSL Certificate Authority set.
<VulnDiscussion>The Kubernetes Controller Manager is responsible for creating service accounts and tokens for the API Server, maintaining the...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
Kubernetes API Server must have a certificate for communication.
<VulnDiscussion>Kubernetes control plane and external communication is managed by API Server. The main implementation of the API Server is to...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
Kubernetes etcd must enable client authentication to secure service.
<VulnDiscussion>Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, moun...Rule Medium Severity -
SRG-APP-000219-CTR-000550
<GroupDescription></GroupDescription>Group -
The Kubernetes kubeadm.conf must have file permissions set to 644 or more restrictive.
<VulnDiscussion>The Kubernetes kubeadm.conf contains sensitive information regarding the cluster nodes configuration. If this file can be mod...Rule Medium Severity -
SRG-APP-000516-CTR-001330
<GroupDescription></GroupDescription>Group
Node 2
The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.