Kubetier
T0

Exposed kubelet to cluster admin

Cluster admin

The kubelet answers on its own port, and where anonymous authentication is left on it takes commands without a credential. Nothing in RBAC is consulted until the attacker already has a shell in a pod.

Step 1: run a command through the kubelet API. This step is not governed by RBAC.run a command throughthe kubelet API1Step 2: read the projected token. This step is not governed by RBAC.2Step 3: create a DaemonSet that tolerates every taint. Tier T1. audit: RequestResponse.create a DaemonSet thattolerates every taint3Step 4: reach the host from the scheduled pod. This step is not governed by RBAC.4Step 5: harvest every Secret in the cluster. Tier T0. audit: RequestResponse.harvest every Secret inthe cluster5Exposed kubelet (reachable, anonymous auth)Exposed kubeletreachable, anonymous authCommand execution in a podCommand execution in apodPod ServiceAccount tokenPod ServiceAccounttokenDaemonSet on every node (control plane included)DaemonSet on everynodecontrol plane includedNode rootNode rootCluster admin (every credential in the cluster)Cluster adminevery credential in thecluster
  • RBAC
  • runtime
  • external
  • governed by RBAC
  • not governed by RBAC