Archive for the 'sicurezza' Category

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

[

Che cos’è il codec HDvid per Firefox, Chrome o IE? Risposta: un malware

La scorsa settimana un amico mi ha chiesto se installare o meno un fantomatico HDvid codec per guardare in streaming una serie tv online. Risposta veloce: NO!.

In pratica, da una settimana, in tutti i siti che propongono i link per guardare gli streaming delle serie TV o di alcuni film, viene chiesto di installare questo codec per poter accedere al video. Visitando una di quelle pagine ho notato che tutti i link proposti rimandano a siti in cui si chiede di installare codesto codec, in passato invece c’erano anche dei collegamenti a siti in cui il solo plugin Flash era sufficiente, senza dover installare ulteriori, inutili, codec. La giustificazione per installare il codec HDvid è che con questo codec ogni filmato sarà visibile in alta qualità. Già questo dovrebbe far riflettere: nessun codec può riprodurre un file in HD se non è stato codificato a monte in HD.

Questo è il tipico messaggio che appare quando si visita uno di quei siti:

Aggiorna il tuo HDvid Codec per Firefox per poter guardare questo video online.

Al posto di Firefox apparirà il nome del browser in uso: i malware non fanno alcuna distinzione di sesso, razza, religione, convinzioni politiche o browser usato, per loro tutto va bene. Di solito cliccando sul link si viene rimandati alla pagina di download. In alcuni siti può pure aprirsi direttamente la pagina di download quando si schiaccia il pulsante Play nel riproduttore in Flash.

Cercando un po’ con Google appaiono vari risultati, in tutti più o meno si dice che si tratta di malware (cosa che uno può intuire anche senza cercare con Google 🙂 ). Questo è il risultato della query a WhoIS per il dominio da cui viene scaricato il codec:

Risultato della query a WhoIS per il dominio hdvid-codec.com

ora è noto a tutti i marinai di diffidare da chi batte bandiera panamense, direi che possa valere lo stesso per un navigatore del Web.

Se ciò non fosse sufficiente a convincersi della natura maliziosa di quel file eseguibile, questo è il risultato di VirusTotal del file che ho scaricato e che sarebbe il codec per Firefox:

HDvid-codec-FF.exe
SHA1: de9a8dc706f63c36441db3406e82a93650587d93
SHA256: 87082e5a663a00dd8b4d51dd261d0660173c18649dd7ce82e1ab2c2145f19005
Rilevato come malware da:
GData   NSIS.Adware.OneClickDownloader.B    20140317
Kingsoft    Win32.Troj.Generic.a.(kcloud)   20140317
Malwarebytes    PUP.Optional.OneClickDownloader.A   20140317`

Rapporto VirusTotal “`

Quindi, concludendo, quel file è un malware e non va assolutamente installato. Più in generale: mai installare codec proposti da siti che propongono materiale illegale.

Se per sbaglio avete già installato quella schifezza, consiglio di provare a rimuoverlo utilizzando uno dei tre software che riescono a identificarlo come minaccia. Personalmente non conosco GDATA e Kingsoft e consiglio Malwarebytes che può essere scaricato gratuitamente.