Si chiama Azurescape ed è la prima vulnerabilità nota di tipo cross-account container takeover che, se sfruttata mediante una catena di exploit, potrebbe consentire a un utente di un servizio cloud pubblico di uscire dal proprio ambiente (container) ed eseguire codice su ambienti appartenenti ad altri utenti (cross-account) nello stesso servizio, fino a prenderne il pieno controllo (takeover).
Il risultato di queste azioni malevoli può essere il furto di dati sensibili o il sabotaggio dell’infrastruttura di un utente mirato, con evidenti danni economici e materiali.
Il problema di sicurezza è stato identificato in Azure Container Instances (ACI), cioè nel servizio di Container-as-a-Service (CaaS) di Microsoft che consente agli utenti di eseguire e usare un “contenitore” cloud senza doversi preoccupare dell’infrastruttura sottostante.
In particolare, Azurescape potrebbe consentire a un utente malintenzionato di compromettere i cluster Kubernetes multitenant che compongono parte dell’infrastruttura che ospita Azure Container Instances e ottenere così il pieno controllo sui container di altri utenti.
Il nome della vulnerabilità. Azurescape, è stato scelto dai ricercatori del team Unit 42 di Palo Alto Networks i quali, durante le loro analisi, hanno verificato che l’attacco potrebbe partire da un container escape, una particolare tecnica malevola che consente l’escalation dei privilegi fuori dagli ambienti container.
Indice degli argomenti
Azurescape: i dettagli della vulnerabilità
Dai risultati dell’analisi condotta dai ricercatori della Unit 42 si evince la caratteristica principale di Azurescape che è quella di consentire a un utente ACI di ottenere privilegi amministrativi su un intero cluster di container.
Come dicevamo, grazie a questa escalation di privilegi, l’attaccante può a quel punto prendere il controllo dei cluster multitenant colpiti per eseguire codice dannoso, rubare dati o sabotare l’infrastruttura sottostante di altri clienti.
In parole semplici, l’attaccante potrebbe ottenere il controllo completo sui server di Azure che ospitano i container di altri clienti, accedendo a tutti i dati e segreti memorizzati in quegli ambienti.
Come funziona l’architettura Azure Container Instances
Per comprendere come ciò sia possibile, è utile ricordare che in un’architettura multitenant come quella di Azure Container Instances, il container di ogni cliente è ospitato in un pod Kubernetes all’interno di una macchina virtuale (VM) dedicata, dove un pod è per l’appunto una raccolta di uno o più container Linux, nonché la più piccola unità di un’applicazione Kubernetes.
Il fatto che ciascun pod può includere uno o più container consente di aumentare, ottimizzare e migliorare la condivisione delle risorse. All’interno del sistema Kubernetes, infatti, i container inclusi nello stesso pod condivideranno le stesse risorse di calcolo raggruppate per formare cluster che forniscono un sistema più potente e distribuito in modo intelligente per l’esecuzione delle applicazioni.
L’infrastruttura dei Azure Container Instances è quindi progettata per garantire che i container maligni non siano in grado di interrompere, perdere informazioni, eseguire codice o influenzare gli ambienti di altri clienti. In poche parole, dovrebbe scongiurare ogni possibilità di attacco cross-account (o anche cross-tenant).
Come viene sfruttata la vulnerabilità Azurescape
La vulnerabilità Azurescape identificata dai ricercatori della Unit 42 di Palo Alto Networks consente proprio di “violare” questa regola.
In particolare, un attacco che sfrutti questo problema di sicurezza agisce su due fronti: innanzitutto, un utente Azure malintenzionato deve riuscire a “sfuggire” al proprio container e poi acquisire un token privilegiato per l’account di servizio Kubernetes che può essere utilizzato per assumere il controllo del server API di Kubernetes.
Il server API, in particolare, fornisce un frontend per la gestione del cluster delle risorse attraverso il quale tutti i vari nodi dell’infrastruttura possono interagire. Inoltre, è responsabile dell’elaborazione dei comandi all’interno di ogni nodo mediante i cosiddetti Kubelets, cioè degli agent in grado di gestire tutti i compiti di quello specifico nodo.
È quindi evidente, secondo i ricercatori della Unit 42, che la compromissione del server API consente di ottenere il controllo completo sul cluster multitenant e su tutti i container degli altri utenti in esecuzione al suo interno.
Dai dettagli dell’analisi tecnica dei ricercatori si evince che la vulnerabilità identificata come CVE-2019-5736 impatta la libreria runC (in particolare, la versione RunC v1.0.0-rc2 rilasciata il primo ottobre 2016).
Il suo exploit (riprodotto nel sottostante video dimostrativo) è stato verificato su un’immagine container WhoC utilizzata per il runtime dei container sulla piattaforma cloud sottostante e ha consentito di sfuggire ai controlli di sicurezza dei container ACI.
Quindi, i ricercatori sono stati in grado di identificare i metodi per ottenere l’esecuzione del codice malevolo sull’api-server, cioè sull’interfaccia di gestione del server cloud.
In questo modo sono riusciti ad acquisire il controllo completo sul cluster multitenant e ottenere l’escalation di privilegi che poteva permettere loro di eseguire codice sui container dei clienti, esfiltrare i loro dati riservati e abusare dell’infrastruttura della piattaforma Azure per effettuare il mining di criptovalute.
Come prevenire un attacco cross-container
La scoperta della vulnerabilità Azurescape evidenzia la necessità per gli utenti cloud di adottare un approccio di “difesa in profondità” (o Defense in Depth) per proteggere la loro infrastruttura cloud e garantire l’integrità delle informazioni.
Questa strategia di difesa deve quindi includere il monitoraggio continuo delle minacce – sia all’interno sia all’esterno della piattaforma cloud.
Secondo i ricercatori della Unit 42, inoltre, è importante che i provider di servizi cloud forniscano un accesso adeguato a ricercatori esterni per consentire loro di analizzare gli ambienti di esecuzione alla ricerca di minacce sconosciute.
L’aggiornamento Microsoft per la vulnerabilità Azurescape
Dal canto suo, Microsoft ha comunicato di aver corretto in maniera tempestiva e grazie alla segnalazione dei ricercatori della Unit 42 la vulnerabilità Azurescape rilasciando un apposito aggiornamento.
Allo stesso tempo, ha avvisato i clienti potenzialmente esposti consigliando loro di cambiare le credenziali privilegiate per i propri container, sottolineando che si tratta di un eccesso di cautela in quanto al momento non si hanno evidenze di possibili attacchi che hanno sfruttato la vulnerabilità per accedere ai dati dei clienti.