mercoledì 1 settembre 2021

Il chaos nel cosmo(DB)

Qualche giorno fa, mentre spiragli di frescura si insinuavano nella canicola agostana, appariva nuovamente sui social media professionali una domanda molto importante ma alquanto provocatoria: “Quanto è sicuro il cloud?”

La ragione principale di questo dubbio risiedeva in una vulnerabilità di un componente software descritta da alcuni ricercatori della società Wiz.

Proviamo ad approfondire cosa è successo per capire rischi e soluzioni.

Microsoft, come parte delle soluzioni cloud che vanno sotto l’ombrello “Azure”, offre una soluzione di database chiamata CosmosDB.

Questo è un database di tipo NoSQL, quindi radicalmente differente in struttura e in prestazioni rispetto a un database relazionale come ad esempio SQLServer.

I vantaggi che spingono piccole e grandi aziende ad adottare un database NoSQL in cloud sono essenzialmente tre: archiviare grandi quantità di dati non strutturati, velocità di risposta in pochi millisecondi e, non meno importante, scalabilità a livello planetario.

Questi vantaggi, uniti alla potenza del cloud, spiegano le ragioni del successo di CosmosDB.

In agosto 2021 la società Wiz, capitanata a livello tecnico da Ami Luttwak che poco tempo fa ricopriva lo stesso ruolo in Microsoft Cloud Security Group, informa Microsoft che il suo team di ricerca ha identificato una vulnerabilità in un componente software utilizzato con CosmosDB che si chiama Jupyter Notebook.

Questa è una piccola applicazione a contorno del motore di database principale, che si definisce Open Document Format.

In pratica è un modo di rappresentare i dati che consente di creare e condividere documenti che contengano dal testo narrativo a equazioni scientifiche, da codice software a dati più complessi come semplificato nell’immagine qui sotto:



Figura 1 - Esempio di dati complessi in Jupyter Notebook

Questi documenti possono poi essere memorizzati nel database, quindi interrogati, ordinati, estratti, e così via.

Jupyter Notebook non nasce con CosmosDB, bensì circa dieci anni fa come parte del linguaggio di programmazione Python. Nel 2015 viene scorporato in un progetto opensource autonomo chiamato per l’appunto Jupyter Project.

Messa nei termini più semplici possibili per capirne il rischio, la vulnerabilità di Jupyter Notebook, se sfruttata con un apposito exploit codificato per l’occasione, permette a un attaccante di interrogare il componente Jupyter Notebook di un database CosmosDB raggiungibile da Internet, ottenendo credenziali valide utili per visualizzare, modificare e cancellare dati nell’utenza di CosmosDB.

Come sempre accade quando le cose si fanno per benino, i ricercatori hanno dato un nome a questa vulnerabilità chiamandola ChaosDB ed informato Microsoft secondo i dettami della ResponsibleDisclosure

La società di Redmond ha reagito prontamente in meno di 48 ore disabilitando questa opzione software che era presente di default su tutte le istanze CosmosDB a prescindere dall’utilizzo e ha avvisato i clienti del rischio in modo che provvedessero a modificare le configurazioni per rimediare al rischio di potenziale compromissione.

Concludo questa disamina con una serie di cinque domande per chiarire il rischio reale, offrendo per ultima una mia riflessione sul tema.

Domanda 1 - Ma quindi il cloud è sicuro?

Risposta di Marco - Come lo può essere qualsiasi implementazione raggiungibile da chiunque ne sia autorizzato e da ovunque sul pianeta. Ad aumentare il livello di sicurezza - rispetto ad aziende che, come attività principale, fanno altro - c’è l’attenzione costante e continua di chi su questi servizi genera una parte importante dei propri profitti ed ha tutto l’interesse alla costruzione e conservazione di un rapporto di fiducia basato sull'integrità dei dati, così come la loro riservatezza.

Domanda 2 - Ma questa vulnerabilità è rimasta attiva per mesi prima di essere rilevata?

Risposta di Marco - Come centinaia di migliaia di vulnerabilità, alcune delle quali rimangono dormienti per anni fino alla loro scoperta. Microsoft ha anche confermato che non risulta nessun accesso illecito ai dati a causa di questa vulnerabilità. È anche opportuno ricordare che la vulnerabilità di un componente non significa necessariamente vulnerabilità della piattaforma.

Domanda 3 - Come posso proteggermi da attacchi in cloud?

Risposta di Marco - Curando di avere sempre la massima visibilità sul proprio ambiente digitale, oltre alla conoscenza delle diverse opzioni di configurazione delle istanze che vengono attivate in ambienti cloud. Ad esempio, sebbene vulnerabile a causa di un componente software come Jupyter Notebook un database CosmosDB diventa compromissibile solo se esposto alla raggiungibilità pubblica via internet. E non bisogna dimenticare il rischio interno, derivante da attaccanti che sfruttino vulnerabilità dall’interno dei perimetri di sicurezza.

Domanda 4 - Come posso mitigare il rischio di questa vulnerabilità?

Risposta di Marco - Oltre alla guida fornita da Microsoft, due giorni fa la stessa Wiz ha pubblicato alcune interessanti linee guida al proposito, consultabili a questo link.

Domanda 5 - Ma non dovrebbe essere responsabilità di Microsoft garantire la sicurezza del mio account in cloud?

Risposta di Marco - No. O meglio, non completamente. È certamente compito di Microsoft garantire che il software e le piattaforme offerte come servizio restino il più possibile libere da bug e vulnerabilità, attività che viene continuamente effettuata da chiunque offra servizi cloud a terzi. Infatti, proprio in questo caso la vulnerabilità è stata trovata in un continuo rapporto tra Microsoft ed i suoi partner volto ad aumentare la sicurezza dei servizi. È anche importante per gli utenti capire il concetto di responsabilità condivisa, di cui ho parlato in un altro articolo più in dettaglio e che riassumo qui con un esempio: ipotizziamo di affittare un’abitazione dotata di tutte le caratteristiche di sicurezza più evolute ed aggiornate, in modo da renderla davvero una fortezza praticamente inespugnabile. Restiamo comunque noi le persone a cui vengono consegnate le chiavi per aprire la porta di questa abitazione. siamo noi che decidiamo se quando usciamo di casa lasciamo le finestre socchiuse; noi siamo anche quelli che decidiamo di fare una copia di sicurezza delle chiavi per attaccarle sotto il portaombrelli con il nastro adesivo perché non si sa mai.

La forza di ogni catena è pari al suo anello più debole e spesso questo anello è quello che unisce la sedia alla tastiera.


Marco Rottigni 

Vignetta: Simone Domini


Per approfondire:

Il progetto Jupyter 🡺 https://jupyter.org/

Introduzione a CosmosDB 🡺 https://docs.microsoft.com/it-it/azure/cosmos-db/introduction

La notizia di Wiz sulla vulnerabilità 🡺 https://www.wiz.io/blog/chaosdb-how-we-hacked-thousands-of-azure-customers-databases

Linee guida di Wiz su come mitigare 🡺 https://www.wiz.io/blog/protecting-your-environment-from-chaosdb


Nessun commento:

Posta un commento