Nuova falla su WhatsApp.

Nuova falla su WhatsApp.

1 miliardo e mezzo di utenti in più di 180 paesi, ognuno dei quali utilizza WhatsApp 23 volte al giorno: questi sono solo alcuni dei numeri del servizio di messaggistica più usato al mondo. Con queste cifre il rischio di truffe via chat e fake news è enorme, e in continuo aumento.

A dare man forte a questo pericolo è l’ultima falla scoperta dal gruppo di cyber security Check Point, che al Black Hat di Las Vegas ha dimostrato che è possibile manipolare le chat. Questo permetterebbe agli attaccanti di creare disinformazione e diffonderla, oltre che frodare gli utenti meno attenti.

La falla di WhatsApp

I ricercatori di Check Point a fine 2018 avevano già notificato all’azienda le vulnerabilità che avevano scoperto. Esse permettevano ad un attaccante di manipolare i messaggi, sia di chat private che dei gruppi, fingendosi un contatto fidato. In questo modo era possibile creare disinformazione con facilità. Sebbene queste falle siano state risolte, i ricercatori hanno scoperto che è ancora possibile perpetrare alcuni tipi di attacchi alterando o confezionando il testo dei messaggi.

Gli esperti di cyber security hanno infatti sviluppato un tool per decriptare la comunicazione WhatsApp e leggere il contenuto dei messaggi. Partendo dal codice sorgente di WhatsApp web, tramite reverse engineering i ricercatori sono stati in grado di scoprire che il servizio di chat utilizza il protocollo protobuf2 per la serializzazione dei dati. Una volta convertiti i dati in Json hanno avuto accesso ai parametri inviati durante la comunicazione, e sono stati in grado di manipolarli per poter cercare potenziali falle di sicurezza.

Per dimostrare come è possibile manipolare i messaggi i ricercatori hanno prima di tutto ottenuto le chiavi pubblica e privata della sessione. Esse vengono generate prima che il codice QR per la connessione tramite browser web venga creato. Ottenute le due chiavi è necessario prendere anche il “segreto“, ovvero il parametro inviato dal telefono a WhatsApp web dopo aver scansionato il codice.

Le chiavi pubblica e privata della comunicazione. Credits: research.checkpoint.com
Le chiavi pubblica e privata della comunicazione. Credits: research.checkpoint.com

A questo punto i ricercatori hanno utilizzato un’estensione di Burp per la connessione al server WhatsApp. Burp è un tool grafico per effettuare test di sicurezza per le applicazioni web che possiede diverse estensioni, tra le quali la “WhatsApp Decoder”. Essa permette di criptare o decriptare i messaggi inviati da WhatsApp web utilizzando le due chiavi ottenute in precedenza. Ottenuti i parametri di comunicazione decriptati è stato possibile manipolarli ed eseguire attacchi di varia natura, accomunati però da un’importante caratteristica: la falsificazione dei messaggi e dell’identità.

I possibili attacchi

Falsificare l’identità di chi invia il messaggio in una chat di gruppo o il suo contenuto

L’attaccante è in grado di falsificare un messaggio “reply” per impersonare un membro del gruppo. Per far ciò, una volta decriptato il traffico di comunicazione, può modificare i parametri che indicano il contenuto del messaggio, l’utente che ha effettivamente inviato il messaggio e il parametro fromMe, che indica se il messaggio è dell’utente relativo alla sessione aperta o qualcun altro.

I parametri di comunicazione di WhatsApp. Credits: research.checkpoint.com
I parametri di comunicazione di WhatsApp. Credits: research.checkpoint.com

Cambiando ad esempio il valore del parametro “conversation” è possibile modificare il contenuto del messaggio, mettendo “in bocca” ad un utente parole mai scritte. Oltre a ciò si può alterare anche il parametro “participant“, che indica l’autore del messaggio. Affinché tutti i membri di un gruppo vedano il messaggio alterato, l’attaccante deve quotarlo e rispondere.

Creare una falsa chat singola “ad hoc”

Lo scopo di questo attacco è di inviare a sé stessi un messaggio da parte di un’altra persona per fargli scrivere ciò che si vuole. Nei casi più gravi sarebbe possibile incriminare una persona. In questo caso si va ad agire sul parametro fromMe. Ciò che si fa è bloccare il messaggio in uscita utilizzando Burp e mettendo un breakpoint in corrispondenza della funzione aesCbcEncrypt, e copiando le informazioni criptate che arrivano al server locale di Burp.

Esempio di chat falsificata. Credits: research.checkpoint.com
Esempio di chat falsificata. Credits: research.checkpoint.com

Una volta decriptata la comunicazione, è sufficiente modificare fromMe e participant, inserendo in questo caso il numero del contatto con cui si vuole creare la fake chat. A questo punto comparirà nel browser una notifica push dal contatto che si è scelto e col contenuto che si è inviato. Proseguendo con l’invio dei messaggi sarà quindi possibile falsificare un’intera chat.

 

Considerando il periodo storico in cui ci troviamo, la notizia è preoccupante. La disinformazione e le fake news sono all’ordine del giorno, e le conseguenze sono sempre più disastrose. Il team di ricercatori si dice preoccupato anche per la sfera personale degli utenti, a causa di frodi o vendette che potrebbero ledere profondamente le persone. Attualmente Facebook non ha rilasciato commenti sulla notizia.