Cisco Italia Blog

Come i “Side-Channel Attack” possono compromettere la privacy in WhatsApp, Telegram e Signal

9 min read



Analisi del centro di ricerca di Cisco TALOS sulle applicazioni di messaging “sicure”

In un recente articolo  Talos, centro di ricerca in ambito Cybersecurity di Cisco, indica come le applicazioni di messaggistica vengano utilizzate sin dagli inizi di Internet. Tuttavia, recentemente, data la maggior consapevolezza della sorveglianza di massa in alcuni Paesi, un numero crescente di utenti sta installando applicazioni cifrate “end-to-end” denominate “secure instant messaging applications.”. Lo scopo di queste applicazioni è cifrare i messaggi degli utenti e proteggere i loro contenuti da terzi.

Ciò nonostante, dopo un’analisi approfondita di 3 applicazioni di messaggistica sicure – Telegram, WhatsApp e Signal – abbiamo scoperto che questi servizi potrebbero non adempiere alle promesse fatte, mettendo a repentaglio le informazioni riservate degli utenti.

Si tratta di un problema serio, considerando che gli utenti scaricano queste applicazioni convinti che le loro foto e messaggi rimarranno completamente protetti da accessi di terze parti. Queste applicazioni, con innumerevoli utenti, non possono presupporre che i loro utenti siano degli esperti nel campo della sicurezza e siano quindi consapevoli del rischio che comporta abilitare determinate impostazioni sul proprio dispositivo.

In quanto tali, hanno l’obbligo di spiegare i rischi agli utenti e, quando possibile, adottare delle impostazioni predefinite più sicure. In questo post, vi mostreremo come un utente malintenzionato potrebbe compromettere queste applicazioni eseguendo Side-Channel Attack contro il sistema operativo dal quale queste applicazioni fanno dipendere la loro sicurezza. Questo post analizzerà i metodi con cui queste applicazioni gestiscono i dati degli utenti. Tuttavia, non includerà analisi tecniche approfondite della sicurezza di queste aziende.

Applicazioni di messaggistica sicure
Il concetto alla base delle applicazioni di messaggistica sicure è che il contenuto di tutte le comunicazioni è cifrato tra utenti evitando che terze parti possano accedere allo stesso. Ciò significa che neppure il fornitore di servizi dovrebbe essere in grado di leggere il contenuto.

Per ottenere la crittografia end-to-end, queste applicazioni hanno sviluppato un protocollo crittografico proprio o ne hanno adottato uno di terzi. Normalmente, queste applicazioni utilizzano principalmente due protocolli: MT Protocol, sviluppato dall’applicazione di messaggistica sicura Telegram, e Signal Protocol, sviluppato dalla società di software Open Whisper Systems. Poiché l’implementazione di MT Protocol non è open source, la maggior parte delle applicazioni restanti utilizza il Signal Protocol o ne implementa una variante.

Altre applicazioni, che vanno oltre lo scopo di questo post, utilizzano questo protocollo su richiesta dell’utente, ma non per default. Questo è il caso di Facebook Messenger, che utilizza una funzionalità nota come “Conversazioni segrete” e Google Allo, che dispone di una funzione chiamata chat “in incognito”.

In entrambi i protocolli, l’implementazione crittografica è stata esaminata in profondità dalla comunità per la sicurezza. In passato, i ricercatori hanno analizzato il codice sorgente accessibile al pubblico ed hanno eseguito delle analisi black-box su dati di comunicazione in tempo reale.

Ma un’applicazione di messaggistica sicura è decisamente molto più di un protocollo crittografico. Esistono altri componenti, come la struttura dell’interfaccia utente, il modello di archiviazione dei file, la formazione di un gruppo e altri meccanismi che potrebbero essere utilizzati come vettore di attacco. La vulnerabilità CVE 2018-1000136 trovata nel framework Electron, utilizzato da WhatsApp e Signal per costruire la loro interfaccia utente, ne è un buon esempio. Detta vulnerabilità, nel peggiore dei casi, potrebbe consentire ad un utente malintenzionato di eseguire il codice in remoto o potrebbe essere utilizzata per copiare i messaggi.

Questi protocolli sono stati concepiti per mantenere le comunicazioni private mentre sono in transito. Tuttavia, in genere, non danno alcuna garanzia sulla sicurezza durante l’elaborazione dei dati o quando il messaggio raggiunge il dispositivo dell’utente. Inoltre, questi protocolli non gestisco no la formazione di gruppi in dette applicazioni, come evidenziato dalla recente vulnerabilità rilevata in WhatsApp.

Se un utente malintenzionato compromette un server WhatsApp, potrebbe aggiungere nuovi membri ad un gruppo senza l’approvazione dell’amministratore dello stesso, consentendo loro di leggere i nuovi messaggi. Ciò significa che un utente malintenzionato è in grado di scegliere dei gruppi di WhatsApp per intercettarli, infrangendo l’intesa comune che questa applicazione fornisce una crittografia end-to-end a prova di bomba su tutte le comunicazioni.

Una presentazione di Signal garantisce la protezione dei messaggi degli utenti. (Fonte: http://www.signal.org)

Al di là degli aspetti tecnici di queste applicazioni anche l’aspetto umano è fondamentale.

Tutte queste applicazioni si pubblicizzano come sicure e finalizzate a garantire la privacy. Alcune dichiarano addirittura di essere “al sicuro dagli attacchi degli hacker”. Tutte queste dichiarazioni hanno lo scopo di rendere l’applicazione affidabile agli occhi degli utenti. Gli utenti credono che le applicazioni manterranno i loro dati privati al sicuro.

Dato che tutte queste applicazioni sostengono di avere milioni di utenti attivi, è chiaro che non tutti questi utenti sono degli esperti nel campo della cybersecurity. Di conseguenza, la maggior parte di questi non saranno coscienti dei rischi e dei limiti posti da determinate configurazioni su queste applicazioni.

Mantenere la privacy di una persona va oltre all’applicazione di una tecnologia; significa anche fornire agli utenti le informazioni corrette in modo tale che siano in grado di comprendere i rischi derivanti dalle loro decisioni, senza necessità che siano degli esperti in materia di sicurezza.

Una pubblicità di Telegram afferma che manterrà i messaggi degli utenti “al sicuro dagli attacchi degli hacker”. (Fonte: http://www.telegram.com)

Un’altra caratteristica significativa pubblicizzata su queste applicazioni è la loro capacità multi-piattaforma. Tutte le applicazioni supportano le principali piattaforme per dispositivi mobili e una versione desktop. L’utente tipico crederà, a ragione, che il livello di sicurezza sia lo stesso su tutte le piattaforme. Tutti i siti Web delle applicazioni trasmettono l’idea che la sicurezza, la privacy e le piattaforme vengono mantenute allo stesso livello.

Questo annuncio di Signal mostra agli utenti che possono utilizzare l’applicazione su varie piattaforme. (Fonte http://www.signal.org)

L’implementazione delle funzionalità di sicurezza tende a variare tra queste diverse piattaforme. Alcune piattaforme comportano rischi maggiori rispetto ad altre e questi rischi devono essere comunicati agli utenti dato che gli stessi considerano che ogni piattaforma è dotata di un livello di protezione analogo.


Il problema
La maggior parte degli utenti di queste applicazioni non è esperta nel campo della cybersecurity, il che significa che si fida ciecamente di queste applicazioni per mantenere le proprie informazioni al sicuro. È chiaro che la fonte di tale fiducia è il modo in cui le applicazioni pubblicizzano i loro servizi.

Il 16 maggio 2018, Talos ha pubblicato un articolo su Telegrab, un malware in grado di dirottare le sessioni da Telegram. Il concetto è semplice: Se un utente malintenzionato riesce a copiare i token di sessione da un desktop user, sarà poi in grado di dirottare la sessione. L’attaccante non avrà bisogno di nient’altro che le informazioni memorizzate localmente. Non importa se le informazioni sono cifrate o meno – copiando dette informazioni, l’hacker potrà utilizzarle per creare una sessione shadow.

In seguito a tale ricerca, abbiamo deciso di verificare se la stessa tecnica fosse applicabile anche ad altre applicazioni di messaggistica, e l’ipotesi si è dimostrata corretta su tutte le applicazioni testate (Telegram, Signal, WhatsApp). Tutte queste applicazioni non gestiscono le sessioni allo stesso modo, con delle conseguenze diverse derivanti da questo attacco.

Nella prossima sezione, descriveremo alcuni di questi scenari di attacco, nei quali le sessioni di queste applicazioni possono essere replicate o dirottate.

APPLICAZIONI
Telegram — Dirottamento di una sessione desktop
Telegram sembra essere l’applicazione per la quale è più probabile che si verifichi il dirottamento di sessione senza che gli utenti rilevino alcun tipo di indizio dell’attacco. I messaggi e le immagini inviate o ricevute dalla vittima vengono replicate nella sessione dell’utente malintenzionato.

Dopo che l’utente malintenzionato ha avviato l’applicazione desktop Telegram utilizzando le informazioni della sessione rubata, viene stabilita una nuova sessione senza darne avviso alcuno all’utente. L’utente deve verificare se c’è una sessione aggiuntiva in corso. Ciò si effettua navigando attraverso le impostazioni, il che non è ovvio per l’utente medio. Anche quando il messaggio appare su Telegram, ciò non è ovvio per l’utente medio.

Signal — Dirottamento di una sessione desktop
Signal gestisce il dirottamento di sessione come una corsa (race condition). Quando l’attaccante avvia l’applicazione utilizzando le informazioni della sessione rubata, entrambe competono per la sessione. Di conseguenza, l’utente vedrà dei messaggi di errore sull’applicazione desktop, ma non sul dispositivo mobile.

Le sessioni create su un Mac funzioneranno su Windows e viceversa.

Tuttavia, quando la vittima riceve questi messaggi, l’utente malintenzionato avrà già accesso a tutti i contatti e alle chat precedenti che non sono state eliminate.

Allo scopo di prevenire la “race condition”, l’attaccante può semplicemente cancellare le informazioni sulla sessione. Quando l’utente avvia l’applicazione, riceverà una richiesta di ricollegare l’applicazione.

Per un esperto in sicurezza, questa sarebbe un segnale di allerta. Ma per l’utente medio, si tratterebbe solo di un errore dell’applicazione.

Quando l’utente crea la seconda sessione, sarà visibile solo dal dispositivo mobile e, per default, le due sessioni avranno lo stesso nome.

Pertanto, l’utente malintenzionato avrà la possibilità di visualizzare tutti i messaggi e persino di usurpare l’identità delle vittime. I messaggi inviati dall’attaccante raggiungeranno i dispositivi legittimi della vittima, ma l’attaccante può eliminarli mentre li invia, evitando di essere identificato. Se il furto d’identità viene eseguito utilizzando la funzione di “Autodistruzione dei Messaggi”, sarà ancora più difficile per la vittima identificare l’imitazione.


WhatsApp — Dirottamento di una sessione desktop
WhatsApp è l’unica applicazione che ha implementato un meccanismo di notifica se è stata aperta una seconda sessione su un desktop. Durante il normale funzionamento, se un utente malintenzionato utilizza le informazioni della sessione rubata, la vittima dovrebbe ricevere un avvertimento come l’immagine riportata di seguito.

Questa notifica appare come pop-up nell’applicazione che è online quando viene creata la seconda sessione. La seconda sessione resterà attiva e sarà utilizzabile fino a quando l’utente non prenderà una decisione. Pertanto, quando appare questo avviso l’utente malintenzionato avrà già avuto accesso a tutti i contatti e ai messaggi precedenti della vittima. L’aggressore sarà anche in grado di usurpare l’identità delle vittime fino a quando non sarà data una risposta nella casella del messaggio. In uno scenario di attacco in cui la vittima sia lontana dal terminale, l’attaccante avrà accesso fino a quando la vittima non tornerà al terminale. La vittima non troverà nessun indizio evidente sul dispositivo mobile allertando di ciò che è accaduto. La notifica si genera ogni qualvolta la vittima utilizza il client desktop. Una seconda sessione non cambierà l’avviso.

Questo meccanismo di avviso ha un difetto, in quanto è possibile che un utente malintenzionato lo elimini seguendo la seguente procedura.

L’utente malintenzionato può semplificare la procedura saltando il passaggio 4 e restando in attesa prima di eseguire il passaggio 5. Il risultato sarà lo stesso poiché avrà accesso agli stessi messaggi. L’utente malintenzionato perderà l’accesso solo se la vittima termina manualmente la sessione sul dispositivo mobile.

Questa vulnerabilità è stata comunicata a Facebook in conformità alla nostra politica di divulgazione coordinata. Tutti dettagli di allerta possono essere trovati qui.

Telegram — Oscuramento della sessione mobile
Il “session abuse” non è un problema solo nell’ambiente desktop. Le applicazioni mobili clonate abusano di queste sessioni di dominio pubblico.

Nell’ambiente dei dispositivi mobili, gli utenti non dovrebbero preoccuparsi più di tanto che una sessione venga compromessa, dato che, in circostanze normali, ciò non è poi così semplice. Il problema fondamentale risiede nel fatto che Telegram consente alle sessioni shadow di coesistere sullo stesso dispositivo vincolato allo stesso numero di telefono mentre viene gestito in varie applicazioni.

Ciò crea uno scenario di attacco nel quale un utente malintenzionato può leggere tutti i messaggi e i contatti su Telegram fino a quando la sessione non viene terminata. Con i dispositivi mobili, le sessioni non vengono mai terminate a meno che l’utente non richieda specificamente la chiusura tramite il menu opzioni.

C’è un altro scenario sulla piattaforma Android, in cui un’applicazione dannosa potrebbe creare una sessione shadow senza alcun intervento da parte dell’utente. L’applicazione dannosa ha solo bisogno delle autorizzazioni “read SMS” e “kill background process”, che di solito non sono considerate pericolose e potrebbero facilmente superare le verifiche di Google Play Store.

Il processo di registrazione di Telegram inizia richiedendo un numero di telefono, che viene confermato tramite un SMS che contiene un codice univoco. Se un utente cerca di registrare nuovamente lo stesso numero di telefono, Telegram invierà un codice tramite il canale Telegram e non un SMS.

Il cambiamento del canale di consegna, da SMS a Telegram message dovrebbe impedire alle applicazioni dannose di creare una sessione shadow senza l’interazione dell’utente dato che non sarebbero in grado di leggere il codice. Tuttavia, se la registrazione non viene completata in un determinato lasso di tempo, Telegram presuppone che l’utente non abbia accesso all’applicazione Telegram e invierà un nuovo codice tramite SMS.

Questo meccanismo di backup crea una “race condition” che può essere sfruttata da un’applicazione dannosa, portando alla creazione di una sessione shadow senza l’interazione dell’utente. L’intero processo è descritto di seguito.

Da questo punto in poi, l’applicazione dannosa avrà accesso a tutti i contatti, messaggi passati e futuri che non si annoverano tra le “Chat segrete”.

Conclusioni
Le applicazioni di messaggistica istantanea sicure hanno un solido track record di protezione delle informazioni mentre sono in transito, giungendo al punto di proteggere le informazioni dai loro stessi server. Tuttavia, risultano insufficienti quando si tratta di proteggere lo stato dell’applicazione e le informazioni dell’utente, delegando questa protezione al sistema operativo.

Gli sviluppatori del protocollo di Signal hanno previsto questo dirottamento di sessione. Le considerazioni sulla sicurezza della gestione del protocollo (protocollo Sesame) contengono un sottocapitolo dedicato alla compromissione del dispositivo, che afferma: “La sicurezza viene gravemente compromessa se un utente malintenzionato ha accesso ai valori segreti di un dispositivo, come la chiave privata di identità e lo stato della sessione.”

Questo vettore di attacco è stato persino previsto dagli sviluppatori di protocolli, in quanto detti utenti individuali e corporativi dovrebbero essere consapevoli che queste applicazioni non sono prive di rischi. Pertanto, è fondamentale che le aziende che utilizzano queste applicazioni per trasmettere informazioni riservate e sensibili utilizzino una tecnologia endpoint che protegga adeguatamente questi asset.

Authors

Fabio Panada

Senior Security Consultant

Lascia un commento