Ricognizione Container: Container and Resource Discovery (T1613)

La tecnica T1613 - Container and Resource Discovery descrive l'attività con cui un avversario, ottenuto un punto d'appoggio all'interno di un ambiente containerizzato, cerca di mappare le risorse disponibili: container in esecuzione, immagini, pod, deployment, nodi del cluster e stato generale dell'orchestratore.

La tecnica si colloca nella tattica TA0007 (Discovery) e rappresenta un passaggio post-compromise fondamentale: prima di muoversi lateralmente o eseguire payload, l'attaccante ha bisogno di comprendere la topologia dell'ambiente in cui è atterrato. In un cluster Kubernetes questo significa interrogare l'API server per ottenere l'elenco dei pod, dei namespace e dei nodi worker; in un host Docker significa enumerare i container attivi e ispezionarne la configurazione.

Le fonti di enumerazione sono molteplici: la Kubernetes Dashboard esposta via web, le API REST di Docker e Kubernetes, i log dei daemon che spesso rivelano variabili d'ambiente, credenziali cloud o riferimenti al provider sottostante. Secondo i dati MITRE ATT&CK la tecnica è associata a 1 gruppo APT (TeamTNT), 2 famiglie malware (Hildegard e Peirates) e 3 mitigazioni ufficiali. L'impatto è indiretto ma cruciale: una ricognizione riuscita alimenta le fasi successive di credential access, lateral movement e resource hijacking, come dimostrano le campagne di cryptomining su cluster Kubernetes esposti.

In un ingaggio red team su ambiente containerizzato, la fase di discovery inizia tipicamente dopo aver ottenuto shell in un pod compromesso o accesso a un token di service account. Il primo controllo è verificare se il container ha visibilità sull'API server: env | grep KUBERNETES rivela immediatamente le variabili KUBERNETES_SERVICE_HOST e KUBERNETES_SERVICE_PORT iniettate automaticamente nei pod.

Con il token di service account montato in /var/run/secrets/kubernetes.io/serviceaccount/token si possono interrogare direttamente le API. Il tool di riferimento in questa fase è kubectl (open source), quando presente nell'immagine, con comandi come kubectl get pods --all-namespaces, kubectl get nodes -o wide e kubectl auth can-i --list per capire quali verbi sono autorizzati sul token corrente.

Quando kubectl non è disponibile, si ricorre a curl contro l'API server passando il bearer token, oppure a strumenti specializzati come Peirates (open source, InGuardians), che automatizza l'enumerazione di pod, secret e service account in un namespace, oltre a fornire moduli di privilege escalation. Altri tool utili in laboratorio sono kube-hunter (open source, Aqua Security) per identificare configurazioni deboli e kubectl-who-can (open source) per mappare i permessi RBAC.

Sul piano Docker puro, replicando la tradecraft di TeamTNT, i comandi base sono docker ps -a per elencare i container, docker inspect <container_id> per estrarre variabili d'ambiente e mount, docker images per l'inventario delle immagini locali e docker network ls per la topologia di rete. Se il socket /var/run/docker.sock è montato dentro il container compromesso, l'attaccante può pilotare il daemon dell'host: uno dei pattern più abusati in scenari di container escape.

Per la scoperta di kubelet esposti sulla rete interna, Hildegard utilizza masscan (open source) contro la porta 10250. In laboratorio si replica con masscan -p10250 10.0.0.0/8 --rate=1000, seguito da richieste HTTP all'endpoint /pods del kubelet per ottenere l'elenco dei container schedulati sul nodo.

Un'attività red team completa combina questa enumerazione con l'ispezione dei log del container (docker logs), che spesso contengono connection string, token cloud e riferimenti a bucket S3 o storage account Azure, informazioni preziose per pianificare il pivot verso il piano di controllo cloud sottostante.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
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.