Il bug
Heartbleed
Molinari Alberto Guglielmini Manuel
Sicurezza Informatica - A.A. 2014/15
Heartbleed
• È una falla dell’estensione Heartbeat, presente nella libreria crittografica OpenSSL
• Riferimento ufficiale: CVE-2014-0160
(Common Vulnerabilities and Exposures)
• Robin Seggleman
OpenSSL
• È un progetto open source nato nel 1998
• Nel 2008 è stato rilevato un altro bug nel sistema Debian
• Nel 2014 2/3 dei server del mondo lo utilizzavano
SSL e TLS
• Rispettivamente Secure Sockets Layer e Transport Layer Security
• Estensioni a livello applicazione del modello TCP/IP
• Standard per stabilire una connessione sicura
Cos’è Heartbleed?
• Reso noto nel 2014
• Bug dell’estensione Heartbeat
• Consente la lettura della memoria in maniera silenziosa
Come funziona?
NSA
• L’agenzia conosceva già il bug nel 2012
• Utilizzato a loro vantaggio per accedere a informazioni sui sospettati
Quando è stato divulgato il bug, il 17% dei siti definiti sicuri era affetto da questa vulnerabilità
Siti colpiti
• Furono resi disponibili numerosi servizi per verificare se un determinato sito era affetto o meno
• Alcuni servizi colpiti: Dropbox, Google, Yahoo e probabilmente Facebook, Twitter, Apple
Estensione Heartbeat
• Descritta da RFC 6520, funzione keep alive, attiva di default
Analisi codice
I file sorgenti del programma vulnerabili sono t1_lib.c and d1_both.c e le funzioni vulnerabili sono tls1_process_heartbeat() e dtls1_process_heartbeat()
Funzionamento
Esempio di leak
Conseguenze
• Lettura di POST data, cookies e password
• Ottenimento delle chiavi private
• Vulnerabilità lato client: reverse heartbleed
• Esempi: furto Social Insurance Numbers, furto account Mumsnet , sfruttamento anti-malware, compromissione dati pazienti CHS
Fix del bug
Se non è possibile si ricompila OpenSSL rimuovendo l’handshake dal codice con l’uso dell’opzione -DOPENSSL_NO_HEARTBEATS.
Cosa fare per ridurre i danni?
• Installazione software fixato
• Cambio password
• Rigenerazione chiavi con conseguente revoca e rimpiazzamento certificati
• Perfect forward secrecy
• Interventi specifici a seconda del sistema
Insegnamenti e soluzioni
• Analisi preventiva: negative testing
• Attenzione a dettagli di programmazione
• Aumento forza lavoro
• Utilizzo audit
• Semplificazione codice (LibreSSL)
• Finanziamenti (Core Infrastructure Initiative)
Credits:
http://en.wikipedia.org/wiki/Heartbleed https://tools.ietf.org/html/rfc6520
http://heartbleed.com/
http://www.theregister.co.uk/2014/04/09/heartbleed_explained/
http://blog.cryptographyengineering.com/2014/04/attack-of-week-openssl-heartbleed.html http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=96db902