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 (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 /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: