Diventa Autore per CoreTech | Scopri di più
12/10/20 CoreTech Blog
Si potrebbe pensare che dopo diversi anni una nota vulnerabilità di sicurezza non dovrebbe più essere trovata nei sistemi di produzione. Potrebbe quindi essere una sorpresa che famosi problemi di sicurezza Internet come la vulnerabilità Heartbleed persistano per molti anni dopo che sono stati risolti. Non ci credi?
Ci sono molte ragioni per cui i vecchi insetti sono duri a morire. Continua a leggere per saperne di più su Heartbleed e su alcuni dei motivi per cui questo bug e molti altri rimangono non risolti in così tanti sistemi.
Come per molte gravi vulnerabilità di sicurezza, Heartbleed non è stato scoperto immediatamente. Questa falla di sicurezza è stata introdotta nella versione 1.0.1 della libreria OpenSSL nel 2012 insieme all'estensione Heartbeat. Le versioni vulnerabili di OpenSSL erano OpenSSL dalla 1.0.1 alla 1.0.1f.
La vulnerabilità è stata scoperta due anni dopo (nell'aprile 2014) dai ricercatori di sicurezza di Google e da una società di sicurezza indipendente chiamata Codenomicon , e successivamente classificata come CVE-2014-0160. Per due anni, il bug è stato un segreto e probabilmente non sapremo mai se qualcuno ne abbia mai approfittato.
Heartbleed è stato risolto dagli sviluppatori del software OpenSSL molto rapidamente: entro una settimana è stato rilasciato OpenSSL 1.0.1g e tutto ciò che era necessario era solo un aggiornamento software per tutti i server interessati. Tuttavia, questa era solo una prova di quanto possa essere difficile aggiornare software ampiamente diffuso: la maggior parte delle implementazioni di TLS su Internet utilizzava la libreria OpenSSL (fortunatamente, non Microsoft), inclusi Apache, nginx e alcuni dispositivi di aziende come come Cisco e Apple. La vulnerabilità ha interessato anche siti come Yahoo.
Per capire Heartbleed, dobbiamo prima capire Heartbeat.
Heartbeat è un'estensione della libreria OpenSSL. La libreria OpenSSL è un progetto open source per l'implementazione di Transport Layer Security e Secure Sockets Layer (SSL / TLS) oltre a DTLS . Questa libreria viene utilizzata dalla maggior parte degli altri software che richiedono TLS per comunicazioni protette, ad esempio server Web, server di posta e altro.
L'estensione Heartbeat è stata introdotta per verificare se la connessione TLS è ancora disponibile. È un meccanismo molto semplice: il client invia un messaggio speciale chiamato messaggio heartbeat al server. Questo messaggio contiene dati e ne specifica la dimensione. In risposta, il server dovrebbe inviare la stessa richiesta di heartbeat con gli stessi dati e la stessa dimensione dei dati. Questo meccanismo è stato proposto in RFC 6520 .
Tuttavia, gli sviluppatori hanno commesso un errore e non hanno introdotto un controllo se la dimensione dei dati specificati nel messaggio Heartbeat rappresenta la quantità effettiva di dati. Risulta che nell'implementazione originale di Heartbeat, il client potrebbe dichiarare qualsiasi dimensione di dati e il server lo considererebbe valido.
La vulnerabilità appare se la dimensione dichiarata supera la dimensione reale dei dati. In tal caso, il server restituisce il messaggio con informazioni aggiuntive:
Simile a tali vulnerabilità come l' overflow del buffer , l'attaccante riceve contenuti di memoria casuali, che possono, per puro caso, includere informazioni personali e / o informazioni sensibili come chiavi segrete comprese chiavi private e chiavi di crittografia simmetriche, certificati SSL, numeri di carte di credito, ecc. .
La persistenza del bug Heartbleed è una buona opportunità per analizzare perché i vecchi bug sono così difficili da eliminare. Ecco alcuni motivi comuni:
Tutto sommato, il bug Heartbleed è un eccellente esempio del motivo per cui la scansione della sicurezza è solo la punta dell'iceberg e deve essere associato alla gestione delle vulnerabilità per garantire la sicurezza IT, sia che si tratti della sicurezza della rete (come con Heartbleed) di sicurezza web.