Check: CNTR-K8-001420
Kubernetes STIG:
CNTR-K8-001420
(in versions v1 r9 through v1 r7)
Title
Kubernetes Kubelet must have the SSL Certificate Authority set. (Cat II impact)
Discussion
Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and perform health checks for containers and pods. Anyone who gains access to Kubelet agents can effectively control applications within the pods and containers. Using authenticity protection, the communication can be protected against man-in-the-middle attacks/session hijacking and the insertion of false information into sessions. The communication session is protected by utilizing transport encryption protocols, such as TLS. TLS provides the Kubernetes API Server with a means to be able to authenticate sessions and encrypt traffic. To enable encrypted communication for Kubelet, the client-ca-file must be set. This parameter gives the location of the SSL Certificate Authority file used to secure Kubelet communication.
Check Content
On the Kubernetes Control Plane, run the command: ps -ef | grep kubelet Check the config file (path identified by: --config): Change to the directory identified by --config (example /etc/sysconfig/) run the command: grep -i client-ca-file kubelet If the setting client-ca-file is not set in the Kubernetes API server manifest file or contains no value, this is a finding.
Fix Text
Edit the Kubernetes Kubelet file in the --config directory on the Kubernetes Control Plane: Set the value of client-ca-file to path containing Approved Organizational Certificate. Reset Kubelet service using the following command: service kubelet restart
Additional Identifiers
Rule ID: SV-242420r879636_rule
Vulnerability ID: V-242420
Group Title: SRG-APP-000219-CTR-000550
Expert Comments
CCIs
Number | Definition |
---|---|
CCI-001184 |
Protect the authenticity of communications sessions. |
Controls
Number | Title |
---|---|
SC-23 |
Session Authenticity |