Weaponizing Distroless
Cos'è Distroless
Un container Distroless è un tipo di container che contiene solo le dipendenze necessarie per eseguire un'applicazione specifica, senza alcun software o strumento aggiuntivo non richiesto. Questi container sono progettati per essere il più leggeri e sicuri possibile e mirano a ridurre al minimo la superficie di attacco rimuovendo eventuali componenti non necessari.
I container Distroless sono spesso utilizzati in ambienti di produzione in cui la sicurezza e l'affidabilità sono fondamentali.
Alcuni esempi di container Distroless sono:
Forniti da Google: https://console.cloud.google.com/gcr/images/distroless/GLOBAL
Forniti da Chainguard: https://github.com/chainguard-images/images/tree/main/images
Armatizzazione di Distroless
L'obiettivo dell'armatizzazione di un container Distroless è quello di essere in grado di eseguire binari e payload arbitrari anche con le limitazioni implicite di Distroless (mancanza di binari comuni nel sistema) e anche le protezioni comunemente presenti nei container come sola lettura o non eseguibile in /dev/shm
.
Attraverso la memoria
Disponibile in qualche momento del 2023...
Attraverso binari esistenti
openssl
****In questo post, viene spiegato che il binario openssl
viene spesso trovato in questi container, potenzialmente perché è necessario per il software che verrà eseguito all'interno del container.
Sfruttando il binario openssl
è possibile eseguire cose arbitrarie.
Last updated