Furto Credenziali da API Container: Container API (T1552.007)
La tecnica T1552.007 - Container API descrive l'abuso delle interfacce di gestione degli ambienti containerizzati per estrarre materiale credenziale. Le API di Docker e Kubernetes nascono per permettere ad amministratori e orchestratori di gestire risorse, pod, secret e componenti di cluster in modo programmatico. Quando un attaccante ottiene visibilità o token di accesso a queste interfacce, può trasformarle in un canale privilegiato per il Credential Access (TA0006), la tattica che raccoglie le procedure di sottrazione di username, password, token e chiavi.
Nella pratica, un adversary con permessi sufficienti — spesso ottenuti sfruttando un service account di pod eccessivamente permissivo — può interrogare l'API server Kubernetes per ottenere i secret montati nel cluster, oppure invocare la Docker API per leggere log di container che contengono credenziali cloud, chiavi API o password di database inavvertitamente stampate su stdout.
L'impatto è amplificato dalla natura stessa dell'ecosistema: un singolo token compromesso può aprire l'accesso all'intero piano di controllo, con 1 tool pubblico documentato (Peirates) che automatizza la raccolta e 4 mitigazioni ufficiali che coprono account management, segmentazione di rete e limitazione dell'accesso. La tecnica si colloca in una fase intermedia della kill chain: presuppone un initial access già avvenuto e alimenta lateral movement, privilege escalation e persistence attraverso credenziali legittime difficili da distinguere dal traffico amministrativo normale.
Un esercizio red team su questa tecnica parte quasi sempre da un pod già compromesso o da un'applicazione vulnerabile con SSRF verso l'API server. Il primo passo consiste nel verificare la presenza del service account token montato di default nel filesystem del pod, tipicamente in /var/run/secrets/kubernetes.io/serviceaccount/token, insieme al certificato CA e al namespace corrente.
Con quel token si può interrogare direttamente l'API server via curl, impostando l'header Authorization: Bearer
Lo strumento di riferimento per automatizzare questa catena è Peirates (open source, S0683), un framework post-exploitation scritto in Go specificamente per Kubernetes. Peirates enumera service account, pod, namespace e tenta automaticamente il dump dei secret tramite l'API, oltre a testare escape verso il nodo. Alternative complementari includono kubectl stesso (open source), kube-hunter (open source) per la fase di ricognizione delle superfici esposte, e kubeletctl (open source) quando l'esposizione riguarda l'API del kubelet sulla porta 10250.
Sul fronte Docker, se il socket /var/run/docker.sock è montato dentro un container — pattern purtroppo diffuso in pipeline CI/CD — l'attaccante può interagire con il daemon senza autenticazione. Un semplice docker logs
In laboratorio conviene costruire lo scenario con kind o minikube (open source), deployando pod con RBAC volutamente permissivo per osservare la differenza tra un RoleBinding namespaced e un ClusterRoleBinding con verbo * sulle risorse secrets. Utile anche generare traffico legittimo di CI/CD in parallelo, così da valutare la capacità del SOC di distinguere il rumore normale dall'abuso reale.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo