Durante gli ultimi giorni è stato sotto le luci dei riflettori un bug nel software OpenSSL, codificato con il nome CVE-2014-0160(Common Vulnerabilities and Exposures) ma chiamato nell’underground “Heartbleed”, ossia “Cuore Sanguinante”, ma forse sarebbe meglio definirlo “Carneficina”.
In questa serie di articoli cercheremo di andare a fondo in questa vulnerabilità, valutandone la criticità in vari ambienti, dalla semplice postazione di casa passando per il mobile fino al cloud.
Prima di tutto cerchiamo di dare delle definizioni.
Cos’ è OpenSSL
OpenSSL Project è uno sforzo collaborativo per sviluppare un robusto, di qualità commerciale e Open Source toolkit che implementa i protocolli Secure Sockets Layer(SSL v2/v3) e il Transport Layer Security(TLS v1), e una libreria crittografica completa.
Per la sua caratteristica Open Source e la qualità del progetto questo software è utilizzato all’incirca nel 66% dei servizi offerti sul World Wide Web(secondo le stime Netcraft), in modo da preservare l’integrità e la confidenzialità tra il server e il client durante la comunicazione. Per fare un esempio di applicazione di tale sistema di comunicazione cifrata, si pensi agli acquisti effettuati sul web con carta di credito. La comunicazione di tali dati è ufficialmente cifrata, con tanto di certificati rilasciati da varie società, lo sfruttamento di questo bug su un sistema vulnerabile porta ad avere le informazioni che voi avete inserito, in parole povere il vostro numero di carta di credito.
Il bug Heartbleed di OpenSSL
Cerchiamo ora di riassumere in che cosa consiste effettivamente questo bug. Questo permette a qualsiasi client che abbia la possibilità di connettersi al server oppure al client di recuperare circa 64 kB di memoria della comunicazione. La richiesta avviene da un client che non necessità in alcun modo di essere autenticato. La ripetizione dell’attacco consente al client attaccante di effettuare un recupero di differenti parti della memoria di comunicazione del server vittima.
Nei prossimi articoli valuteremo il come riconoscere se i nostri sistemi sono vulnerabili, i vari gradi di esposizione, e come fare per porvi rimedio nel minor tempo possibile.