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
Scarica

Heartbleed