Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
Escape to Host descrive l'insieme di tecniche attraverso cui un avversario rompe l'isolamento di un container o di un ambiente virtualizzato per ottenere accesso diretto all'host sottostante. La tecnica rientra nella tattica Privilege Escalation (TA0004), perché il passaggio dal contesto confinato del container al sistema operativo host rappresenta un salto di privilegi sostanziale: si passa da un ambiente con risorse limitate e namespace separati al controllo completo della macchina fisica o virtuale.
I vettori di escape sono molteplici. Un container configurato per montare il filesystem dell'host tramite bind mount offre accesso diretto alla radice del sistema. Un container privilegiato può caricare moduli kernel o eseguire comandi arbitrari sull'host. Syscall come unshare e keyctl possono essere abusate per scalare privilegi e sottrarre segreti. Anche il socket di gestione Docker, se montato all'interno del container, diventa una porta aperta verso l'host. In ambienti VMware ESXi, lo scenario si estende alle virtual machine: una vulnerabilità nell'hypervisor consente all'attaccante di evadere dalla VM verso il livello hypervisor stesso.
Il censimento dei dati associati a questa tecnica include 1 gruppo APT, 4 software documentati, 5 mitigazioni specifiche e 4 analytics di detection che coprono container Linux, Windows ed ESXi. L'impatto di un escape riuscito è devastante: l'attaccante può stabilire persistenza sull'host, muoversi lateralmente, accedere ad altri container e configurare canali C2 a livello di sistema operativo.
La simulazione di un container escape in laboratorio richiede un ambiente Docker o Kubernetes dedicato e isolato. Il primo scenario da replicare è il più classico: il bind mount del filesystem root dell'host.
Avvia un container con il filesystem dell'host montato in lettura-scrittura:
docker run -it -v /:/hostfs ubuntu /bin/bash
Da dentro il container, l'intero filesystem host è accessibile sotto /hostfs. Puoi verificare l'accesso con:
ls /hostfs/etc/shadow
Per simulare persistenza, scrivi un cron job direttamente sull'host:
echo ' * * * * root /tmp/payload.sh' > /hostfs/etc/cron.d/backdoor*
Questo replica esattamente il pattern usato da Doki, il cui container veniva configurato per effettuare il bind della directory root dell'host.
Il secondo scenario riguarda i container privilegiati. Lancia un container con flag --privileged:
docker run -it --privileged ubuntu /bin/bash
Da qui puoi montare il disco dell'host direttamente:
mkdir /mnt/host && mount /dev/sda1 /mnt/host
Oppure caricare un modulo kernel malevolo con insmod, dimostrando il livello di controllo che un container privilegiato offre sull'host.
Il terzo scenario coinvolge il Docker socket. Se il socket è montato nel container:
docker run -it -v /var/run/docker.sock:/var/run/docker.sock ubuntu /bin/bash
Dall'interno puoi creare un nuovo container privilegiato che monta il filesystem host, concatenando l'escape. Strumenti come Peirates (open source) automatizzano questo pattern in ambienti Kubernetes, ottenendo una reverse shell sull'host tramite hostPath mount. BOtB — Break out the Box (open source) — è il tool usato da Hildegard per automatizzare diverse tecniche di escape, incluso l'abuso di capability e l'accesso al metadata service.
Per ambienti Kubernetes, il tool CDK (open source) offre un kit completo per l'enumerazione delle capability del container e il tentativo automatico di escape tramite vari vettori. Un altro strumento utile è deepce (open source), che esegue l'enumerazione dell'ambiente container e identifica possibili percorsi di fuga.
Su Windows, la tecnica di Siloscape è più sofisticata: sfrutta link simbolici globali tramite la chiamata NtSetInformationSymbolicLink per mappare il disco C: dell'host nel container Windows. La simulazione richiede un ambiente Windows Server con container Windows in modalità process isolation.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo