Kubernetes Security Technical Implementation Guide

Overview

VersionDateFinding Count (94)Downloads
22025-05-16CAT I (High): 20CAT II (Medium): 74CAT III (Low): 0
STIG Description
This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DOD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.
ClassifiedPublicSensitive
I - Mission Critical ClassifiedI - Mission Critical PublicI - Mission Critical Sensitive
II - Mission Support ClassifiedII - Mission Support PublicII - Mission Support Sensitive
III - Administrative ClassifiedIII - Administrative PublicIII - Administrative Sensitive

Findings - MAC I - Mission Critical Classified

Finding IDSeverityTitleDescription
V-242376
LOWMEDIUMHIGH
The Kubernetes Controller Manager must use TLS 1.2, at a minimum, to protect the confidentiality of sensitive data during electronic dissemination.The Kubernetes Controller Manager will prohibit the use of SSL and unauthorized versions of TLS protocols to properly secure communication. The use o...
V-242377
LOWMEDIUMHIGH
The Kubernetes Scheduler must use TLS 1.2, at a minimum, to protect the confidentiality of sensitive data during electronic dissemination.The Kubernetes Scheduler will prohibit the use of SSL and unauthorized versions of TLS protocols to properly secure communication. The use of unsuppo...
V-242378
LOWMEDIUMHIGH
The Kubernetes API Server must use TLS 1.2, at a minimum, to protect the confidentiality of sensitive data during electronic dissemination.The Kubernetes API Server will prohibit the use of SSL and unauthorized versions of TLS protocols to properly secure communication. The use of unsupp...
V-242379
LOWMEDIUMHIGH
The Kubernetes etcd must use TLS to protect the confidentiality of sensitive data during electronic dissemination.Kubernetes etcd will prohibit the use of SSL and unauthorized versions of TLS protocols to properly secure communication. The use of unsupported prot...
V-242380
LOWMEDIUMHIGH
The Kubernetes etcd must use TLS to protect the confidentiality of sensitive data during electronic dissemination.The Kubernetes API Server will prohibit the use of SSL and unauthorized versions of TLS protocols to properly secure communication. The use of unsupp...
V-242382
LOWMEDIUMHIGH
The Kubernetes API Server must enable Node,RBAC as the authorization mode.To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DOD-approved PKIs, all DOD syst...
V-242384
LOWMEDIUMHIGH
The Kubernetes Scheduler must have secure binding.Limiting the number of attack vectors and implementing authentication and encryption on the endpoints available to external sources is paramount when ...
V-242385
LOWMEDIUMHIGH
The Kubernetes Controller Manager must have secure binding.Limiting the number of attack vectors and implementing authentication and encryption on the endpoints available to external sources is paramount when ...
V-242389
LOWMEDIUMHIGH
The Kubernetes API server must have the secure port set.By default, the API server will listen on what is rightfully called the secure port, port 6443. Any requests to this port will perform authentication ...
V-242393
LOWMEDIUMHIGH
Kubernetes Worker Nodes must not have sshd service running.Worker Nodes are maintained and monitored by the Control Plane. Direct access and manipulation of the nodes should not take place by administrators. W...
V-242394
LOWMEDIUMHIGH
Kubernetes Worker Nodes must not have the sshd service enabled.Worker Nodes are maintained and monitored by the Control Plane. Direct access and manipulation of the nodes must not take place by administrators. Wor...
V-242395
LOWMEDIUMHIGH
Kubernetes dashboard must not be enabled.While the Kubernetes dashboard is not inherently insecure on its own, it is often coupled with a misconfiguration of Role-Based Access control (RBAC) ...
V-242396
LOWMEDIUMHIGH
Kubernetes Kubectl cp command must give expected access and results.One of the tools heavily used to interact with containers in the Kubernetes cluster is kubectl. The command is the tool System Administrators used to ...
V-242398
LOWMEDIUMHIGH
Kubernetes DynamicAuditing must not be enabled.Protecting the audit data from change or deletion is important when an attack occurs. One way an attacker can cover their tracks is to change or delet...
V-242399
LOWMEDIUMHIGH
Kubernetes DynamicKubeletConfig must not be enabled.Kubernetes allows a user to configure kubelets with dynamic configurations. When dynamic configuration is used, the kubelet will watch for changes to ...
V-242400
LOWMEDIUMHIGH
The Kubernetes API server must have Alpha APIs disabled.Kubernetes allows alpha API calls within the API server. The alpha features are disabled by default since they are not ready for production and likely...
V-242402
LOWMEDIUMHIGH
The Kubernetes API Server must have an audit log path set.When Kubernetes is started, components and user services are started for auditing startup events, and events for components and services, it is import...
V-242403
LOWMEDIUMHIGH
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.Within Kubernetes, audit data for all components is generated by the API server. This audit data is important when there are issues, to include securi...
V-242404
LOWMEDIUMHIGH
Kubernetes Kubelet must deny hostname override.Kubernetes allows for the overriding of hostnames. Allowing this feature to be implemented within the kubelets may break the TLS setup between the kub...
V-242405
LOWMEDIUMHIGH
The Kubernetes manifests must be owned by root.The manifest files contain the runtime configuration of the API server, proxy, scheduler, controller, and etcd. If an attacker can gain access to thes...
V-242406
LOWMEDIUMHIGH
The Kubernetes KubeletConfiguration file must be owned by root.The kubelet configuration file contains the runtime configuration of the kubelet service. If an attacker can gain access to this file, changes can be ...
V-242407
LOWMEDIUMHIGH
The Kubernetes KubeletConfiguration files must have file permissions set to 644 or more restrictive.The kubelet configuration file contains the runtime configuration of the kubelet service. If an attacker can gain access to this file, changes can be ...
V-242408
LOWMEDIUMHIGH
The Kubernetes manifest files must have least privileges.The manifest files contain the runtime configuration of the API server, scheduler, controller, and etcd. If an attacker can gain access to these files...
V-242409
LOWMEDIUMHIGH
Kubernetes Controller Manager must disable profiling.Kubernetes profiling provides the ability to analyze and troubleshoot Controller Manager events over a web interface on a host port. Enabling this ser...
V-242410
LOWMEDIUMHIGH
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).Kubernetes API Server PPSs must be controlled and conform to the PPSM CAL. Those PPS that fall outside the PPSM CAL must be blocked. Instructions on t...
V-242411
LOWMEDIUMHIGH
The Kubernetes Scheduler must enforce ports, protocols, and services (PPS) that adhere to the Ports, Protocols, and Services Management Category Assurance List (PPSM CAL).Kubernetes Scheduler PPS must be controlled and conform to the PPSM CAL. Those ports, protocols, and services that fall outside the PPSM CAL must be b...
V-242412
LOWMEDIUMHIGH
The Kubernetes Controllers must enforce ports, protocols, and services (PPS) that adhere to the Ports, Protocols, and Services Management Category Assurance List (PPSM CAL).Kubernetes Controller ports, protocols, and services must be controlled and conform to the PPSM CAL. Those PPS that fall outside the PPSM CAL must be ...
V-242413
LOWMEDIUMHIGH
The Kubernetes etcd must enforce ports, protocols, and services (PPS) that adhere to the Ports, Protocols, and Services Management Category Assurance List (PPSM CAL).Kubernetes etcd PPS must be controlled and conform to the PPSM CAL. Those PPS that fall outside the PPSM CAL must be blocked. Instructions on the PPSM...
V-242414
LOWMEDIUMHIGH
The Kubernetes cluster must use non-privileged host ports for user pods.Privileged ports are those ports below 1024 and that require system privileges for their use. If containers can use these ports, the container must be...
V-242417
LOWMEDIUMHIGH
Kubernetes must separate user functionality.Separating user functionality from management functionality is a requirement for all the components within the Kubernetes Control Plane. Without the s...
V-242418
LOWMEDIUMHIGH
The Kubernetes API server must use approved cipher suites.The Kubernetes API server communicates to the kubelet service on the nodes to deploy, update, and delete resources. If an attacker were able to get be...
V-242419
LOWMEDIUMHIGH
Kubernetes API Server must have the SSL Certificate Authority set.Kubernetes control plane and external communication are managed by API Server. The main implementation of the API Server is to manage hardware resourc...
V-242420
LOWMEDIUMHIGH
Kubernetes Kubelet must have the SSL Certificate Authority set.Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and per...
V-242421
LOWMEDIUMHIGH
Kubernetes Controller Manager must have the SSL Certificate Authority set.The Kubernetes Controller Manager is responsible for creating service accounts and tokens for the API Server, maintaining the correct number of pods f...
V-242422
LOWMEDIUMHIGH
Kubernetes API Server must have a certificate for communication.Kubernetes control plane and external communication is managed by API Server. The main implementation of the API Server is to manage hardware resource...
V-242423
LOWMEDIUMHIGH
Kubernetes etcd must enable client authentication to secure service.Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and per...
V-242424
LOWMEDIUMHIGH
Kubernetes Kubelet must enable tlsPrivateKeyFile for client authentication to secure service.Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and per...
V-242425
LOWMEDIUMHIGH
Kubernetes Kubelet must enable tlsCertFile for client authentication to secure service.Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and per...
V-242426
LOWMEDIUMHIGH
Kubernetes etcd must enable client authentication to secure service.Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and per...
V-242427
LOWMEDIUMHIGH
Kubernetes etcd must have a key file for secure communication.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242428
LOWMEDIUMHIGH
Kubernetes etcd must have a certificate for communication.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242429
LOWMEDIUMHIGH
Kubernetes etcd must have the SSL Certificate Authority set.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242430
LOWMEDIUMHIGH
Kubernetes etcd must have a certificate for communication.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242431
LOWMEDIUMHIGH
Kubernetes etcd must have a key file for secure communication.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242432
LOWMEDIUMHIGH
Kubernetes etcd must have peer-cert-file set for secure communication.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242433
LOWMEDIUMHIGH
Kubernetes etcd must have a peer-key-file set for secure communication.Kubernetes stores configuration and state information in a distributed key-value store called etcd. Anyone who can write to etcd can effectively contr...
V-242438
LOWMEDIUMHIGH
Kubernetes API Server must configure timeouts to limit attack surface.Kubernetes API Server request timeouts sets the duration a request stays open before timing out. Since the API Server is the central component in the ...
V-242442
LOWMEDIUMHIGH
Kubernetes must remove old components after updated versions have been installed.Previous versions of Kubernetes components that are not removed after updates have been installed may be exploited by adversaries by allowing the vuln...
V-242443
LOWMEDIUMHIGH
Kubernetes must contain the latest updates as authorized by IAVMs, CTOs, DTMs, and STIGs.Kubernetes software must stay up to date with the latest patches, service packs, and hot fixes. Not updating the Kubernetes control plane will expose ...
V-242444
LOWMEDIUMHIGH
The Kubernetes component manifests must be owned by root.The Kubernetes manifests are those files that contain the arguments and settings for the Control Plane services. These services are etcd, the api serv...
V-242445
LOWMEDIUMHIGH
The Kubernetes component etcd must be owned by etcd.The Kubernetes etcd key-value store provides a way to store data to the Control Plane. If these files can be changed, data to API object and the Contr...
V-242446
LOWMEDIUMHIGH
The Kubernetes conf files must be owned by root.The Kubernetes conf files contain the arguments and settings for the Control Plane services. These services are controller and scheduler. If these fil...
V-242447
LOWMEDIUMHIGH
The Kubernetes Kube Proxy kubeconfig must have file permissions set to 644 or more restrictive.The Kubernetes Kube Proxy kubeconfig contain the argument and setting for the Control Planes. These settings contain network rules for restricting net...
V-242448
LOWMEDIUMHIGH
The Kubernetes Kube Proxy kubeconfig must be owned by root.The Kubernetes Kube Proxy kubeconfig contain the argument and setting for the Control Planes. These settings contain network rules for restricting net...
V-242449
LOWMEDIUMHIGH
The Kubernetes Kubelet certificate authority file must have file permissions set to 644 or more restrictive.The Kubernetes kubelet certificate authority file contains settings for the Kubernetes Node TLS certificate authority. Any request presenting a client...
V-242450
LOWMEDIUMHIGH
The Kubernetes Kubelet certificate authority must be owned by root.The Kubernetes kube proxy kubeconfig contain the argument and setting for the Control Planes. These settings contain network rules for restricting net...
V-242451
LOWMEDIUMHIGH
The Kubernetes component PKI must be owned by root.The Kubernetes PKI directory contains all certificates (.crt files) supporting secure network communications in the Kubernetes Control Plane. If these...
V-242452
LOWMEDIUMHIGH
The Kubernetes kubelet KubeConfig must have file permissions set to 644 or more restrictive.The Kubernetes kubelet agent registers nodes with the API Server, mounts volume storage for pods, and performs health checks to containers within pods...
V-242453
LOWMEDIUMHIGH
The Kubernetes kubelet KubeConfig file must be owned by root.The Kubernetes kubelet agent registers nodes with the API server and performs health checks to containers within pods. If these files can be modified,...
V-242454
LOWMEDIUMHIGH
The Kubernetes kubeadm.conf must be owned by root.The Kubernetes kubeeadm.conf contains sensitive information regarding the cluster nodes configuration. If this file can be modified, the Kubernetes Pl...
V-242455
LOWMEDIUMHIGH
The Kubernetes kubeadm.conf must have file permissions set to 644 or more restrictive.The Kubernetes kubeadm.conf contains sensitive information regarding the cluster nodes configuration. If this file can be modified, the Kubernetes Pla...
V-242456
LOWMEDIUMHIGH
The Kubernetes kubelet config must have file permissions set to 644 or more restrictive.The Kubernetes kubelet agent registers nodes with the API server and performs health checks to containers within pods. If this file can be modified, t...
V-242457
LOWMEDIUMHIGH
The Kubernetes kubelet config must be owned by root.The Kubernetes kubelet agent registers nodes with the API Server and performs health checks to containers within pods. If this file can be modified, t...
V-242459
LOWMEDIUMHIGH
The Kubernetes etcd must have file permissions set to 644 or more restrictive.The Kubernetes etcd key-value store provides a way to store data to the Control Plane. If these files can be changed, data to API object and Control P...
V-242460
LOWMEDIUMHIGH
The Kubernetes admin kubeconfig must have file permissions set to 644 or more restrictive.The Kubernetes admin kubeconfig files contain the arguments and settings for the Control Plane services. These services are controller and scheduler. ...
V-242461
LOWMEDIUMHIGH
Kubernetes API Server audit logs must be enabled.Kubernetes API Server validates and configures pods and services for the API object. The REST operation provides frontend functionality to the cluster...
V-242462
LOWMEDIUMHIGH
The Kubernetes API Server must be set to audit log max size.The Kubernetes API Server must be set for enough storage to retain log information over the period required. When audit logs are large in size, the mo...
V-242463
LOWMEDIUMHIGH
The Kubernetes API Server must be set to audit log maximum backup.The Kubernetes API Server must set enough storage to retain logs for monitoring suspicious activity and system misconfiguration, and provide evidence ...
V-242464
LOWMEDIUMHIGH
The Kubernetes API Server audit log retention must be set.The Kubernetes API Server must set enough storage to retain logs for monitoring suspicious activity and system misconfiguration, and provide evidence ...
V-242465
LOWMEDIUMHIGH
The Kubernetes API Server audit log path must be set.Kubernetes API Server validates and configures pods and services for the API object. The REST operation provides frontend functionality to the cluster...
V-242466
LOWMEDIUMHIGH
The Kubernetes PKI CRT must have file permissions set to 644 or more restrictive.The Kubernetes PKI directory contains all certificates (.crt files) supporting secure network communications in the Kubernetes Control Plane. If these...
V-242467
LOWMEDIUMHIGH
The Kubernetes PKI keys must have file permissions set to 600 or more restrictive.The Kubernetes PKI directory contains all certificate key files supporting secure network communications in the Kubernetes Control Plane. If these fil...
V-245541
LOWMEDIUMHIGH
Kubernetes Kubelet must not disable timeouts.Idle connections from the Kubelet can be used by unauthorized users to perform malicious activity to the nodes, pods, containers, and cluster within t...
V-274884
LOWMEDIUMHIGH
Kubernetes must limit Secret access on a need-to-know basis.Kubernetes secrets may store sensitive information such as passwords, tokens, and keys. Access to these secrets should be limited to a need-to-know ba...
V-242381
LOWMEDIUMHIGH
The Kubernetes Controller Manager must create unique service accounts for each work payload.The Kubernetes Controller Manager is a background process that embeds core control loops regulating cluster system state through the API Server. Every...
V-242383
LOWMEDIUMHIGH
User-managed resources must be created in dedicated namespaces.Creating namespaces for user-managed resources is important when implementing Role-Based Access Controls (RBAC). RBAC allows for the authorization of ...
V-242386
LOWMEDIUMHIGH
The Kubernetes API server must have the insecure port flag disabled.By default, the API server will listen on two ports. One port is the secure port and the other port is called the "localhost port". This port is also ...
V-242387
LOWMEDIUMHIGH
The Kubernetes Kubelet must have the "readOnlyPort" flag disabled.Kubelet serves a small REST API with read access to port 10255. The read-only port for Kubernetes provides no authentication or authorization security...
V-242388
LOWMEDIUMHIGH
The Kubernetes API server must have the insecure bind address not set.By default, the API server will listen on two ports and addresses. One address is the secure address and the other address is called the "insecure bin...
V-242390
LOWMEDIUMHIGH
The Kubernetes API server must have anonymous authentication disabled.The Kubernetes API Server controls Kubernetes via an API interface. A user who has access to the API essentially has root access to the entire Kuberne...
V-242391
LOWMEDIUMHIGH
The Kubernetes Kubelet must have anonymous authentication disabled.A user who has access to the Kubelet essentially has root access to the nodes contained within the Kubernetes Control Plane. To control access, users ...
V-242392
LOWMEDIUMHIGH
The Kubernetes kubelet must enable explicit authorization.Kubelet is the primary agent on each node. The API server communicates with each kubelet to perform tasks such as starting/stopping pods. By default, ...
V-242397
LOWMEDIUMHIGH
The Kubernetes kubelet staticPodPath must not enable static pods.Allowing kubelet to set a staticPodPath gives containers with root access permissions to traverse the hosting filesystem. The danger comes when the co...
V-242415
LOWMEDIUMHIGH
Secrets in Kubernetes must not be stored as environment variables.Secrets, such as passwords, keys, tokens, and certificates must not be stored as environment variables. These environment variables are accessible ins...
V-242434
LOWMEDIUMHIGH
Kubernetes Kubelet must enable kernel protection.System kernel is responsible for memory, disk, and task management. The kernel provides a gateway between the system hardware and software. Kubernetes...
V-242436
LOWMEDIUMHIGH
The Kubernetes API server must have the ValidatingAdmissionWebhook enabled.Enabling the admissions webhook allows for Kubernetes to apply policies against objects that are to be created, read, updated, or deleted. By applying...
V-242437
LOWMEDIUMHIGH
Kubernetes must have a pod security policy set.Enabling the admissions webhook allows for Kubernetes to apply policies against objects that are to be created, read, updated, or deleted. By applying...
V-245542
LOWMEDIUMHIGH
Kubernetes API Server must disable basic authentication to protect information in transit.Kubernetes basic authentication sends and receives request containing username, uid, groups, and other fields over a clear text HTTP communication. Ba...
V-245543
LOWMEDIUMHIGH
Kubernetes API Server must disable token authentication to protect information in transit.Kubernetes token authentication uses password known as secrets in a plaintext file. This file contains sensitive information such as token, username a...
V-245544
LOWMEDIUMHIGH
Kubernetes endpoints must use approved organizational certificate and key pair to protect information in transit.Kubernetes control plane and external communication is managed by API Server. The main implementation of the API Server is to manage hardware resource...
V-254800
LOWMEDIUMHIGH
Kubernetes must have a Pod Security Admission control file configured.An admission controller intercepts and processes requests to the Kubernetes API prior to persistence of the object, but after the request is authentic...
V-254801
LOWMEDIUMHIGH
Kubernetes must enable PodSecurity admission controller on static pods and Kubelets.PodSecurity admission controller is a component that validates and enforces security policies for pods running within a Kubernetes cluster. It is resp...
V-274882
LOWMEDIUMHIGH
Kubernetes Secrets must be encrypted at rest.Kubernetes Secrets may store sensitive information such as passwords, tokens, and keys. These values are stored in the etcd database used by Kubernete...
V-274883
LOWMEDIUMHIGH
Sensitive information must be stored using Kubernetes Secrets or an external Secret store provider.Sensitive information, such as passwords, keys, and tokens must not be stored in application code. Kubernetes offers a resource called Secrets that a...