Heartbleed: il peggior bug di sempre

AGGIORNAMENTO: l’articolo è stato aggiornato aggiungendo i link alle possibili minacce lato client di Heartbleed.

Questa settimana si è parlato molto di questa falla che affligge l’implementazzione di Heartbeat in OpenSS. La falla è talmente grave che si è guadagnata un bel nome tutto suo – e non l’anonimo CVE-2014-0160 – e persino un sito web dedicato. Ecco cosa ne pensa uno dei maggiori esperti di criptografia e sicurezza a livello mondiale, Bruce Schneier:

“Catastrophic” is the right word. On the scale of 1 to 10, this is an 11. L’aggettivo giusto è: catastrofico. In una scala da 1 a 10, questo vale 11.

Ma vediamo di cosa si tratta di preciso.

Che cos’è Heartbleed?

Prima vediamo di capire che cosa sono OpenSSL e heartbeat. OpenSSL è una libreria opensource che implementa un insieme di tecnologie criptografiche ed è molto utilizzata dai server web per gestire le connessioni https. Il protocollo https è quello che permette uno scambio sicuro dei dati fra il client [leggi browser, programma di posta, app, eccetera). Quando ci si collega via https il server fornisce una chiave pubblica al programma che la utilizza per cifrare tutti i dati inviati. Anche in caso che un terzo malintenzionato (di solito il povero Eve) riesca a venire in possesso di quei dati (password, cookie di sessione, eccetera) esso non potrà mai decifrarli. Solo il sito che ha la chiave privata è in grado di decifrare i dati. Inoltre, il protocollo https garantisce in modo inequivocabile che il sito sia veramente chi dica di essere, se il programma non valida la connessione (non mostra il lucchetto), significa che è in corso una frode web.

OpenSSL è il software opensource (lato server) che rende tutto ciò possibile. Può ovviamente essere scaricato e utilizzato per effettuare diverse operazioni come la cifratura di file, calcolarne l’impronta digitale (hash), effettuare operazioni sulle chiavi, visualizzare informazioni sui certificati e effettuare conversioni fra vari formati di certificati e dati criptografici. Non è comunque un software a portata di tutti.

heartbeat (battito cardiaco) è una specifica illustrata nella RFC 6520 e serve per mantenere attiva una connessione fra client e server anche se non ci sono dati da scambiare. Essa serve a entrambi per confermare che la controparte sia ancora connessa e funzionante, insomma per vedere se il loro cuore batte ancora o no.

heartbeat funziona nelle due direzioni, però per capire come funziona l’attacco possiamo limitarci al caso in cui sia il client (leggi bot maligno) a fare la richiesta e il server con la versione vulnerabile di OpenSSL a rispondere. Nella specifica è indicato che il client debba fornire al server questi due dati:

  1. un payload (dati che vengono inviati)
  2. la dimensione del payload

e il server deve restituire, fondamentalmente, il payload. Se ciò avviene il client sa che la connessione è ancora attiva.

Heartbleed (emorragia cardiaca) è un bug nell’implementazione di OpenSSL di questa caratteristica. In pratica OpenSSL invece di rimandare indietro il payload ricevuto dal client rimanda indietro dei dati a caso presi dalla memoria. Questo avviene quando un client “mente” inviando un payload di, ad esempio, 1 byte e dicendo al server “ti ho inviato 64kb” (che è la massima dimensione possibile per il messaggio). A questo punto il server, invece di rimandare al mittente il byte dicendogli “sei un bugiardo”, riempie il messaggio di ritorno con 64kb presi a caso in memoria. In altre parole è possibile interrogare il server e farsi dare 64kb di dati immagazzinati in memoria. Questi dati possono essere le password (in chiaro) degli utenti, i cookie di sessione, dati riservati dei pagamenti in-app e le chiavi private con cui il server decifra il traffico, “sicuro”, in entrata.

Ma se questo non bastasse, questo tipo di connessioni non vengono registrate dal server. Non è quindi possibile né conoscere chi ha rubato i dati e nemmeno conoscere se dei dati sono stati rubati! Il furto perfetto. Nessun indizio viene lasciato. Credo che questo basti per spiegare perché si tratti di una minaccia di livello 11. Una backdoor perfetta: difficile da scoprire, infatti, a meno di analizzare il codice riga per riga, questo tipo di attacco non risulta nei log dei server che non possono nemmeno rendersi conto di essere stati violati. e per fortuna che OpenSSL è opensource :-).

Il dubbio, dopo le notizie fatte trapelare da Edward Snowden nell’ultimo anno, che sia una backdoor messa lì da qualcuno (leggi, un nome a caso, NSA) è forte. Però probabilmente si tratta di un semplice errore di programmazione di cui si conoscono gli autori. A proposito invito a leggere [questo interessante articolo su Lega Nerd.

È sviluppato da 15 sviluppatori “volontari”, che non hanno budget ne le risorse adeguate per manutenere e gestire una cosa di questo livello. Inoltre, non è assolutamente nato per fare quello che fa oggi. E dall’industria di settore, sopratutto quelle 3 o 4 aziende che emettono il 90% dei certificati al mondo (e che si stanno strofinando le mani per il business della riemissione, altri soldi per loro) non scuciono un soldo per lo sviluppo dello stesso.

Se volete sapere se un sito che state visitando è vulnerabile sfruttando hearbleed, questa estensione per Firefox permette di visualizzare un bel avviso nella pagina.

Oltre alla vulnerabilità dei server Trend Micro riporta che la versione 4.1.1 di Android è stata distribuita con il modulo Heartbeat attivo di default ed è possibile sfruttare Heartbleed per carpire le informazioni personali degli smartphone con questo sistema operativo.

XKCD

Chiudo traducendo la, [bellissima, vignetta][5] di XKCD di martedì.

Vignetta XKCD

Al passaggio del mouse: [Ne ho viste cose che voi umani non potete immaginare] Ho guardato alcuni dei dati dei siti vulnerabili e erano, mostruosi. Ho visto, senza che nessuno se ne accorgesse, email, password, i suggerimenti per recuperarle, chiavi SSL e cookie di sessione, server famosi pieni di indirizzi IP dei visitatori. Navi da combattimento in fiamme al largo dei bastioni di Orione,raggi C balenare nel buio vicino alle porte di Tannhäuser. [E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia.] Probabilmente è ora di sistemare OpenSSL.

Megan: heartbleed deve essere il peggior bug di sicurezza web di sempre Cueball: Peggiore finora. Dacci tempo. Megan: Intendo dire: questo bug non è solo un problema di vulnerabilità della criptografia. Megan: Permette ai visitatori dei siti di farsi dare una raccolta di dati a caso dalla memoria. Megan: Non riguarda solo le chiavi. Riguarda il traffico dati. Riguarda le mail, le password e le nostre fiction erotiche. Cueball: È tutto compromesso? Megan: Beh, l’attacco è limitato ai dati salvati nelle memorie dei computer. Cueball: Quindi la carta è sicura. E anche le tavolette d’argilla. Megan: Anche la nostra immaginazione. Cueball: Capisco, noi staremo bene.

AGGIORNAMENTO: Come segnalato da @Emanuele nei commenti questa vignetta di XKCD spiega in modo molto semplice di cosa si tratta.

Vignetta XKCD

Link utili

[

24 Responses to “Heartbleed: il peggior bug di sempre”


  • Opera 9.80 Windows 7

    ottimo articolo … anche se la più semplice e immediata spiegazione di Heartbleed credo l’abbia data proprio xkcd nella vignetta successiva … adoro davvero le capacità di chi ci sta dietro 🙂

    Per quel che mi riguarda, questa storia mi ha quasi del tutto convinto a passare a LastPass … l’aver dovuto cambiare ogni password (e quindi cancellare le vecchie dal browser e memorizzare le nuove) non è stata una bella esperienza

    saluti 😀

  • Mozilla Firefox 30.0 Windows XP

    Ciao Emanuele 🙂
    Bella la nuova vignetta di XKCD, non l’avevo ancora vista.

    Io devo cambiarle tutte, però mi sta sul cavolo. Io uso PasswordMaker per le password: ho una password principale (anche abbastanza corta)e PM mi genera una password di 20 caratteri a partire da quella, se ne cambio più di due o tre a questo punto le cambio tutte (io non le salvo nemmeno nel browser).
    Le ho salvate in chiaro e poi cifrato il file (con OpenSSL fra l’altro), però in realtà quel file esiste solo nella malaugurata ipotesi che PasswordMaker non sia più compatibile con Firefox (finora è passata indenne attraverso un sacco di versioni).

    Ciao

  • Mozilla Firefox 30.0 Windows XP

    E, contrariamente a quel che ho scritto e che avevo letto in giro, sembra che le chiavi private si possano rubare:
    articolo di Ars Technica

    quindi tutti a cambiare i certificati. Secondo me gli amministratori dei server hanno dovuto rimandare le ferie.

  • Opera 9.80 Windows 7

    questa non la sapevo ancora… la cosa strana è che questo è stato davvero uno dei più grandi “disastri” informatici mai avvenuti e Studio aperto & co. non mi pare se ne siano nemmeno accorti 😛

  • Mozilla Firefox 30.0 Windows XP

    Davvero mostruoso. E anche di più pensare che per più di due anni quella backdoor è stata aperta.
    Tutti a dire di usare https, col cavolo http era più sicuro.
    Io la tv la guardo davvero pochissimo, ogni tanto qualche TG (però studio aperto proprio no) e non ho sentito nulla a riguardo, però non sono affidabile da questo punto di vista.

  • Opera 9.80 Windows 7

    Ah-ah! … no su questo sono anche peggio di te credo, era solo per dire che in genere è il tipo di notizie su cui la stampa generalista ci ricama su i classici quadri da fine del mondo, mentre questa volta non mi pare di averne sentito parlare 😛

  • Mozilla Firefox 30.0 Windows XP

    In effetti è vero, la notizia è assolutamente clamorosa e di quelle che piace ai media.
    Che non abbiano capito del tutto la portata del bug?
    Boh, io trovo stupido che per TG o sui giornali si discuta di fuffa: i cento idioti che esisteranno sempre che postano una cagata su TB, il tweet di quel o quella VIP, tutta roba inutile e che non serve a nulla, poi quando arrivano le notizie importanti si sta zitti (e non mi riferisco a questo caso in particolare).

  • Mozilla Firefox 31.0 Windows XP

    Personalmente non ritengo che Studio Aperto sia un telegiornale… adatto alle esigenze di chi scrive in questo blog o lo frequenta. Un mio collega lo considera il tiggì delle … donnine di facili costumi, visto il livello culturale.
    Cito LN “Il codice di OpenSSL è aperto e pubblico.. e nessuno se ne era accorto.” per dire che forse tra le varie cose (anche se forse non come scopo o finalità principale) hanno voluto dare un duro colpo al concetto che ciò che è aperto e pubblico (Legge di Linus sul Kernel, credo che sia) sia anche, magari non facilmente, correbbibile, quando gli errori sono sotto gli occhi di tanta gente…

  • Mozilla Firefox 32.0 Windows XP

    A me sembra che in generale tutti i TG si siano appiattiti verso STudio aperto in questi ultimi anni.
    Infatti non li guardo quasi più.

  • Mozilla Firefox 31.0 Windows XP

    Giornali e [radio,tele]/giornali hanno ancora un senso e una logica quale che essa sia ?!? Quanti hanno dato il giusto risalto a questa notizia e alla sua rilevanza e alle sue implicazioni o al suo significato ?!?
    Post scriptum: Blade Runner è uno dei più bei film che io abbia mai visto. Rick Deckard… Pris, Rachael, Roy Batty, …

  • Mozilla Firefox 32.0 Windows XP

    Post scriptum: Blade Runner è uno dei più bei film che io abbia mai visto. Rick Deckard… Pris, Rachael, Roy Batty, …

    Lo immaginavo, omen nomen, nel senso di nickname 🙂
    Non so come scelgono le notizie i direttori dei vari TG.
    Ogni tanto quando sono coi miei vedo quello che guardano loro, il TG5, e hanno fatto un servizio, :-?, sulla versione 7 di unicode.
    Tutto sommato, almeno dal mio punto di vista, una notizia abbastanza irrilevante per la classica utenza di un TG (mi pare fosse l’edizione delle 20:00 addirittura).
    Giuro sono rimasto sconvolto.

  • Mozilla Firefox 31.0 Windows XP

    Il TG5 ha voluto far pensare che loro sono tecnologici e che pensano al relativo alfabetismo… e che non solo solo autoreferenziali.
    Che senso ha mettere in un telegiornale una notizia di questo tipo?!

    Stasera ci sarà su questa rete il programma [Inventatevi_un_nome_a_caso] al cui interno ci saranno le seguenti personalità di Pinco Panco e di Tizio Caio Sempronio e parleremo di uncinetto comparato.
    Sindrome da riempimento?!
    Notizie che fungono da distrattivo nei confonti di altre ?!

  • Mozilla Firefox 32.0 Windows XP

    Si, sono d’accordo, mi spiace non essere nemmeno in grado di ritrovarlo sul sito di mediaset e questo è una prova che il sito è fatto male se uno non riesce nemmeno a ritrovare un vecchio servizio.

    PS: ovviamente la traduzione di “unicode arriva alla versione 7” è “ci saranno nuove emoticon (in realtà emoji) sui telefonini”.

  • Mozilla Firefox 31.0 Windows XP

    Giusto perché il poter utilizzare emoticon, emoji e faccine sul cellulare è una cosa prioritaria, oggi giorno…
    Chi si ricorda che circa una settimana prima di Steve Jobs era morto l’inventore del pacemaker impiantabile, Wilson Greatbatch?
    Quanti titoli a cinque colonne hanno scritto?

  • Mozilla Firefox 34.0 Windows XP

    Vero, purtroppo il mondo delle notizie non rende onore al merito ma alle mode 🙁

  • Mozilla Firefox 31.0 Windows XP

    Comunque sia, più che “Heartbleed: il peggior bug di sempre” mi sembra sia il caso di dire “… fin’ora riscontrato”.
    Considerando Shellshock, noto anche come Bashdoor, e la vulnerbilità di POODLE io ci avrebbe un cattivo presentimento.
    “I have a bad feeling about this” è una frase ricorrente in Guerre Stellari.

  • Mozilla Firefox 35.0 Windows 7

    Che il lato oscuro della forza sia fra noi?
    In effetti il 2014 è stato davvero un anno di “bei” bug.
    Poodle mi sembra il meno rilevante di tutti come impatto: devi riuscire a eseguire JS nella pagina e già se arrivi a far questo la sicurezza è già un po’ compromessa. Lo scenario più comune per sfruttare Poodle per rubare (i cookie di sessione) è se stai usando una connessione wireless il cui proprietario la sta sfruttando per rubare i dati degli altri utenti, diciamo che è più teorico che pratico.
    Resto ancora dell’idea che dei tre sia Heartbleed il più brutto; ad esempio di ShellShock te ne saresti potuto accorgere dai log del server che qualcosa non andava, mentre con HB potrebbero averti fregato tutto il database di dati senza che tu te ne sia accorto, dandoti la finta convinzione di essere al sicuro. Per fortuna lo hanno risolto.
    Comunque, almeno a livello pratico, il peggiore è BadUSB perché, mentre questi tre sono soprattutto problemi lato server e gli admin li possono risolvere con un semplice aggiornamento, BadUSB non può essere risolto con un aggiornamento e se gli antivirus non trovano un modo per bloccarlo si propagherà davvero in modo incontrastato (bisognerebbe buttare via tutte le vecchie chiavette e nessuno lo farà, io per primo).

  • Mozilla Firefox 35.0 Windows 7

    Andrea,
    so che a te la privacy interessa, prova a leggere questo articolo:
    https://www.readability.com/articles/a7ymobth
    non sapevo ci fosse anche questo tipo di tracciamento (anche perché la connessione la paghi). Chissà se anche i qui in Italia fanno queste cose 😯

  • Mozilla Firefox 31.0 Windows XP

    In Italia la connessione la paghi, ma non so quanto venga pagata dagli utenti americani.
    In ogni caso non so se da un punto di vista imprenditoriale le compagnie riescano a far pagare all’ utenza quanto effettivamente servirebbe loro per poter sopravvivere. Ho paura che in alune realtà il prezzo di vendita della connessione ADSL sia sotto costo e che quindi i fornitori di quel servizio abbiano bisogno di “tamponare l’emorragia e recuperare forze” per altre vie…
    Mettere un prezzo d’entrata basso sperando che la gente una volta entrata consumi non paga più come una volta…

  • Mozilla Firefox 35.0 Windows 7

    Probabilmente hai ragione, mi piacerebbe sapere se anche qui viene usata quella tecnica di tracking. Io comunque sarei per una maggiore trasparenza, al limite fai due tariffe: la prima low cost per gli squattrinati dovespecifichi che potresti essere tracciato e che i tuoi dati di navigazioni potrebbero essere venduti agli advertiser; l’altra a prezzo di mercato dove garantisci di non spiare l’utente. Sarebbe più trasparente e come si dice: «patti chiari, amicizia lunga.» 🙂

  • Mozilla Firefox 31.0 Windows XP

    Discorso analogo all’ADSL vale anche per i Cellulari che le compagnie offrono al cliente (considera che il cliente paga un tot al mese per due o tre anni mentre la casa produtttrice si fa pagare abbastanza subito) e la connettivita 3o4G. Considera quanto il cliente paga per il cellulare e per la possibilità di collegarsi. Dubito che le compagnie rientrino dei costi che hanno.
    Che poi alle compagnie serva che il cliente abbia un cellulare perché senza cellulare il cliente non chiama, non si connette, non manda SMS, non fa un benemerito caspita… ok.

  • Mozilla Firefox 35.0 Windows 7

    Si, sono d’accordo, però, diciamo che personalmente io preferirei pagare il giusto senza avere brutte sorprese o per lo meno sapere se quel che pago è scontato perché poi tu vendi i miei dati agli advertiser. Non dico che non debbano farlo, dico solo che dovrebbero consentire una scelta e chiarire bene questi concetti in fase di offerta dei loro prodotti.

  • Mozilla Firefox 31.0 Windows XP

    Comunque sia, ho citato Greatbatch, ma mi sono dimenticato che una settmana dopo Jobs (cioè il 12 Ottobre 2011) è morto all’età di 70 anni Dennis MacAlistair Ritchie.
    È stato uno dei pionieri dell’informatica moderna, importante per la sua influenza su C, UNIX, B, BCPL e Multics.
    Insieme a Brian Kernighan e Ken Thompson sviluppò il linguaggio di programmazione C.
    Con Kernighan scrisse inoltre il libro The C Programming Language, oggi reputato un testo fondamentale per i programmatori e noto nell’ambiente come “il K&R”, dalle iniziali dei due autori.

  • Mozilla Firefox 35.0 Windows 7

    Hai fatto bene a ricordarlo, in occasione della giornata a lui dedicata (30 ottobre) avevo pure condiviso su Facebook, però no Like 🙂

    Ricordo anche il fantastico epitaffio di Repubblica che recitava (a memoria, gli errori sono reali)

    È morto Dennis Ritchie padre del linguaggio di programmazione Unix e del linguaggio ad oggetti C++.

Leave a Reply