Il sito di Fabio Cammisa

Our Blog

Bug Hearthbleed in OpenSSL: cosa c’è da sapere

by Fabio
Heartbleed bug

Heartbleed bug

In queste settimane la discussione su Heartbleed, ritenuto dagli addetti ai lavori uno dei bug più pericolosi di sempre, è diventata prepotentemente “mainstream” su tutti i media.

 

Vediamo di descrivere sinteticamente il fenomeno, cercando anche di fornire le informazioni e gli strumenti giusti.

 

 

Il bug Hearthbleed

Heartbleed (“Cuore sanguinante”) è il nome dato ad un gravissimo bug di OpenSSL, scoperto e comunicato lunedì 7 aprile 2014 quasi contemporanemanete da tre security engineers del team Codenomicon (identificati come Riku, Antti e Matti) e un esperto di Google Security, Neel Mehta. Il bug, classificato su CVE (Common Vulnerabilities and Exposures) con il codice CVE-2014-0160, riguarda l’implementazione della TLS e DTLS Heartbeat Extension” in OpenSSL, ovvero quel meccanismo di keep-alive in cui il client invia al server un payload di dati arbitrari e il server gli risponde con una copia esatta di quel payload, al fine di confermare che la connessione è OK.

 

Vista l’amplissima diffusione di OpenSSL si stima che siano stati colpiti il 35% dei server presenti su Internet, a patto che abbiano l’estensione “Heartbeat” installata e abilitata.
Tra questi compaiono, come è noto, colossi come Google, Facebook, Dropbox, Yahoo e molti altri. Non sono affetti invece (poiché non utilizzano OpenSSL), ad esempio Microsoft, Amazon, Linkedin e Paypal.

 

La falla risiede in un mancato controllo della dimensione dell’input da parte di un utente, sfruttando la quale un attaccante è in grado di “convincere” OpenSSL ad effettuare un dump di memoria di 64KB, copiando molti più dati di quelli necessari e inviarli all’attaccante. Va da sè che in questi 64KB può esserci di tutto, tra cui session cookies e credenziali di accesso in chiaro degli utenti loggati in quel momento sul server!

 

Le versioni di OpenSSL affette dal bug sono quelle da 1.0.1 alla 1.0.1f, mentre quelle precedenti alla 1.0.1 e successive alla 1.0.1f non sono vulnerabili. Di conseguenza, i sistemi operativi interessati dal bug sono sostanzialmente alcune distro Linux ben definite che potrebbero recare la versione vulnerabile di OpenSSL, elencate sul sito heartbleed.com oltre a tutte le altre informazioni utili sulla falla.

 

 

Quali informazioni possono essere ottenute sfruttando Hearthbleed

Innanzitutto va detto che ad essere vulnerabili non sono solo i web server ma, in generale, tutti gli apparati che consentono l’implementazione di OpenSSL, tra cui troviamo certamente apparati di rete (router, wireless access point, etc.) e smartphone.

 

Con riferimento agli apprati di rete, ad esempio, sia Cisco che Juniper hanno comunicato la lista di prodotti affetti dalla vulnerabilità e stanno lavorando al rilascio delle relative fix.

 

Per quanto riguarda gli smartphone, invece, esistono delle app reperibili da Google Play per il test del proprio device al fine di verificare se è vulnerabile o meno, come ad esempio Heartbleed Detector per Android (i dispositivi Apple non sono affetti dalla vulnerabilità).

 

Le informazioni potenzialmente ottenibili, come già accennato sopra sono:

  • session-cookies
  • userid e password
  • SSL private keys

In particolare, la possibilità per un attaccante di poter estrarre la chiave privata che il server sta usando per decriptare tutto il traffico di rete, apre una vera e propria voragine di sicurezza, in quanto permette all’attaccante di leggere in chiaro e/o alterare tutto il traffico ritenuto “sicuro”. In questo modo l’attacker può ad esempio carpire credenziali di accesso e dati riservati, numeri e CVV di carte di credito e quant’altro, “impersonando” in tutto e per tutto il server vittima.

 

 

Come verificare se si è vulnerabili a Hearthbleed

Una delle prime soluzioni è data da uno script in Python in grado di verificare se un server è vulnerabile o meno, a cui poi vari altri sviluppatori hanno apportato delle modifiche, come ssltest.

 

Attraverso il sito web www.filippo.io/Heartbleed è possibile testare velocemente un host semplicemente inserendo l’URL o l’hostname. Lo stesso autore ha anche sviluppato script di test in Go, disponibili qui.

 

 

Cosa fare in caso di server vulnerabile a Hearthbleed

In linea di principio, la prima cosa da fare lato server è aggiornare la versione di OpenSSL almeno alla 1.0.1g, come riportato sul sito di OpenSSL in un advisory del 7 aprile 2014.

 

Il passo successivo consiste nel rigenerare la coppia di chiavi crittografiche ed emettere nuovi certificati di cifratura, dopo aver revocato quelli in uso. Lato utente, invece, è fortemente consigliato cambiare la password di accesso ai servizio erogati dal server.

Leave a Reply

Log in
Register
Send message