Scoperta di Container e Risorse: Container and Resource Discovery (T1613)

Quando un avversario compromette un ambiente containerizzato, una delle prime azioni è mappare tutto ciò che lo circonda: container attivi, pod, nodi, immagini, deployment e stato del cluster. La tecnica Container and Resource Discovery descrive esattamente questo comportamento esplorativo e si colloca nella tattica Discovery (TA0007), la fase della kill chain in cui l'attaccante orienta la propria posizione all'interno dell'infrastruttura prima di decidere come muoversi lateralmente o quali risorse sfruttare.

L'enumerazione può avvenire tramite comandi CLI come docker ps e kubectl get pods, oppure interrogando direttamente le API di Docker e Kubernetes. Anche interfacce web come la Kubernetes Dashboard diventano superfici di ricognizione se esposte con permessi troppo ampi. I log stessi dell'ambiente possono rivelare dettagli preziosi: configurazione dei servizi, provider cloud sottostante, topologia della rete interna.

I dati del framework evidenziano 1 gruppo APT, 2 software (un tool offensivo e un malware) e 3 mitigazioni documentate. La superficie di attacco è particolarmente rilevante nei cluster Kubernetes multi-tenant e negli ambienti DevOps dove i service account hanno spesso permessi eccessivi. La discovery delle risorse container non produce danno diretto, ma è il prerequisito informativo che abilita movimenti laterali, escalation di privilegi e, in ultima analisi, l'esfiltrazione o il sabotaggio dei workload.

La simulazione di questa tecnica in laboratorio è relativamente semplice e non richiede exploit complessi: basta accesso a un nodo o a un pod con un service account troppo permissivo. L'obiettivo è dimostrare quanto velocemente un attaccante possa ottenere una mappa completa del cluster partendo da un singolo punto d'ingresso.

La catena d'attacco parte dalla discovery locale dei container Docker. Da una shell sul nodo host, l'enumerazione comincia con i comandi più basilari:

docker ps --format "{{.ID}} {{.Image}} {{.Names}} {{.Status}}"

Questo restituisce l'elenco dei container attivi con immagini associate e stato corrente. Per approfondire un target specifico:

docker inspect --format='{{json .Config}}' <container_name>

Il comando docker inspect rivela variabili d'ambiente, volumi montati, porte esposte e configurazione di rete — esattamente il pattern adottato da TeamTNT nelle proprie campagne. Da non trascurare anche i log, che possono contenere credenziali o endpoint interni:

docker logs --tail 100 <container_id>

In ambiente Kubernetes, la discovery si sposta sulle API del cluster. Da un pod compromesso con un service account che dispone di permessi di lettura:

kubectl get pods --all-namespaces -o wide

kubectl get nodes -o jsonpath='{range .items[]}{.metadata.name}{"\t"}{.status.addresses[0].address}{"\n"}{end}'*

kubectl get deployments --all-namespaces

Il tool Peirates (open source) automatizza queste operazioni in contesti di penetration testing Kubernetes. Consente di enumerare pod per namespace, tentare il furto di token dai service account e verificare i permessi disponibili. L'esecuzione in laboratorio richiede un cluster di test — Minikube o Kind sono ideali per questo scopo.

Per replicare il comportamento del malware Hildegard, che utilizzava masscan per individuare kubelet esposti sulla rete locale, si può procedere con:

masscan 10.0.0.0/8 -p10250,10255 --rate 1000 -oJ kubelet_scan.json

La porta 10250 è l'API autenticata del kubelet, la 10255 quella di sola lettura (deprecata ma ancora diffusa). Una volta individuati kubelet esposti, l'attaccante interroga l'endpoint di enumerazione pod direttamente via curl:

curl -sk

Per un assessment strutturato, lo strumento kube-bench (open source) verifica la conformità del cluster ai CIS Kubernetes Benchmark, evidenziando misconfigurazioni che abilitano questa tecnica. Anche kube-hunter (open source) esegue penetration testing automatizzato dei cluster, identificando API esposte e permessi eccessivi.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.