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