Ruoli Kubernetes Aggiuntivi: Additional Container Cluster Roles (T1098.006)
La tecnica T1098.006 descrive la manipolazione del sistema di autorizzazione di un cluster container — tipicamente Kubernetes — per concedere permessi aggiuntivi a un account già controllato dall'attaccante. L'operazione avviene attraverso la creazione o modifica di oggetti RoleBinding e ClusterRoleBinding, oppure attraverso l'alterazione di policy ABAC quando questo modello di controllo accessi è in uso.
MITRE ATT&CK colloca la tecnica in due tattiche: TA0003 (Persistence), perché un binding privilegiato garantisce accesso durevole anche dopo il ripristino di credenziali compromesse, e TA0004 (Privilege Escalation), perché consente a un service account con permessi limitati di ottenere capacità equivalenti a cluster-admin. Nei deployment cloud gestiti come GKE, EKS e AKS, la tecnica si combina spesso con T1098.003 (Additional Cloud Roles), poiché l'RBAC nativo del cluster convive con l'IAM del cloud provider.
L'impatto è sistemico: un singolo binding malevolo verso il ClusterRole cluster-admin garantisce controllo completo su namespace, secret, workload e piano di controllo. La tecnica è particolarmente insidiosa perché sfrutta funzionalità legittime di Kubernetes, non exploit, rendendo la detection dipendente esclusivamente dagli audit log. Le mitigazioni MITRE censite sono M1018 (User Account Management) e M1032 (Multi-factor Authentication), entrambe orientate a ridurre la superficie di identità privilegiate.
Un red teamer che vuole simulare T1098.006 parte dalla premessa di aver già ottenuto credenziali o un token di service account con permessi sufficienti per creare binding. Il primo passo è enumerare i propri diritti effettivi con kubectl (open source):
kubectl auth can-i --list
Se l'output mostra la capacità create sulle risorse rolebindings o clusterrolebindings nel apiGroup rbac.authorization.k8s.io, la tecnica è praticabile. Utile anche verificare la possibilità di creare serviceaccounts e leggere secrets, per costruire una catena completa.
Per la ricognizione dei ruoli esistenti e delle loro capacità, rbac-lookup e rbac-tool di Insights (entrambi open source) permettono di mappare rapidamente chi può fare cosa. Un comando tipico:
rbac-tool policy-rules -e '.'*
restituisce la matrice completa dei permessi effettivi nel cluster. Per identificare percorsi di escalation, kubiscan (open source) evidenzia service account con token montati in pod e privilegi eccessivi.
La creazione del binding malevolo avviene applicando un manifest YAML che lega un ClusterRole esistente come cluster-admin a un service account controllato. Il pattern operativo prevede kubectl apply -f binding.yaml dove il file definisce un oggetto ClusterRoleBinding con roleRef verso cluster-admin e subjects verso il service account bersaglio. In alternativa, per operare in modo meno rumoroso, è possibile creare un ClusterRole custom con permessi mirati (solo secrets e pods/exec, ad esempio) e legarlo con un nome che si mimetizzi con quelli di sistema come system:controller:custom-metrics.
Per la fase di validazione, il token del service account promosso viene estratto dal Secret associato (nei cluster pre-1.24) o generato con kubectl create token
Per catene d'attacco end-to-end in laboratorio, kube-hunter (open source) di Aqua Security individua misconfigurazioni sfruttabili come punto d'ingresso, mentre peirates (open source) di InGuardians automatizza post-exploitation da dentro un pod compromesso, inclusa la ricerca di token privilegiati e la creazione di binding. Ambienti di test come kind o minikube (entrambi open source) permettono di replicare scenari EKS/GKE senza costi cloud, mentre kubernetes-goat (open source) fornisce scenari didattici deliberatamente vulnerabili.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo