l'attacco

Replay attack contro Immuni, la vulnerabilità spiegata da chi l’ha dimostrata

Il ricercatore Iovino spiega i dettagli del replay attack, per generare false notifiche di rischio su app covid-19 come Immuni. “Potrebbero essere usate impropriamente per fini terroristici”

27 Set 2020
Vincenzo Iovino

Dipartimento di Ingegneria dell'Informazione ed Elettrica e Matematica applicata/DIEM, Università degli Studi di Salerno


Per la prima volta ho dimostrato sul campo, con una simulazione, un’importante vulnerabilità riguardante l’app Immuni: ho dimostrato la possibilità di generare false notifiche di rischio che potrebbero essere usate impropriamente per fini terroristici. È il replay attack. Sì, già noto e intrinseco nel protocollo usato da queste app, ma questa è la prima simulazione effettiva.

Come funziona Immuni

Prima di approfondire la recente vulnerabilità, ricapitoliamo a sommi capi come funziona l’app Immuni.

La grande maggioranza delle app di contact tracing oggi in uso, così come Immuni, utilizza il protocollo e le corrispettive librerie messe a disposizione da Apple e Google (Google Apple Exposure Notification – GAEN). L’utilizzo di queste librerie è necessario, tra altre cose, affinché l’applicazione possa funzionare correttamente in background e senza scaricare eccessivamente la batteria.

Come tutte le app basate su GAEN, Immuni utilizza la tecnologia BLE (Bluetooth Low Energy) per rilevare la prossimità tra dispositivi. I telefoni trasmettono continuamente via BLE degli pseudonimi pseudocasuali detti RPI (Rolling Proximity Identifier), che variano approssimativamente ogni 10 minuti e registrano gli pseudonimi in ingresso assieme ad una indicazione temporale sulla loro ricezione, la durata del contatto e altri dati utili per il calcolo del rischio.  Gli pseudonimi usati durante una giornata sono generati a loro volta, tramite tecniche crittografiche, a partire da un unico seme casuale detto TEK (Temporary Exposure Key). La TEK è anche utilizzata anche per cifrare informazioni utili a stimare la distanza tra i due telefoni, tali informazioni cifrate dette Encrypted Metadata vengono inviate assieme agli RPI.

Quando un utente risulta positivo e decide di segnalarlo anche attraverso Immuni, l’app manda al server centrale le TEK utilizzate durante i giorni precedenti, assieme alle relative date di utilizzo. Per controllare un’eventuale esposizione a rischio, gli smartphone scaricano periodicamente le nuove TEK distribuite dal server e ne derivano una sequenza ordinata di RPI. Ciascun RPI ha una durata stimata di circa 10 minuti, il primo RPI corrisponde per convenzione ad uno specifico orario ovvero la mezzanotte UTC, i successivi corrispondono a incrementi di circa 10 minuti da tale orario (il secondo RPI corrisponde alle 00:10 UTC e così via). Lo smartphone controlla il proprio database interno alla ricerca di RPI uguali a quelli derivati al passo precedente, e se vi sono uno o più corrispondenze e la decifratura degli Encrypted Metadata rispetta dei criteri allora l’utente è stato a contatto con un infetto e quindi l’app segnala una notifica di rischio all’utente.

Replay attacks contro GAEN/Immuni

In un replay attack, lo scopo di un avversario è far ricevere notifiche di rischio fake agli utenti dell’app di contact tracing.

Nello specifico, un avversario può intercettare uno o più RPI inviati da un utente di Immuni in una determinata posizione dello spazio e ritrasmetterli ad un’altra posizione dello spazio più o meno allo stesso tempo. Per es. un avvesario potrebbe piazzare un dispositivo A (che può essere un telefono o anche un dispositivo dedicato delle dimensioni di una moneta) nei pressi di un ospedale e catturare tramite esso tutti gli RPI che i pazienti di questo ospedale trasmettono nelle vicinanze. Il dispositivo A potrebbe inoltre ritrasmettere questi RPI ad un altro dispositivo B piazzato dall’avversario al tornello di uno stadio. Il dispositivo B ritrasmetterà tutti gli RPI ricevuti da A a tutti gli spettatori che passano al tornello. Come risultato, se uno dei pazienti dell’ospedale sarà diagnosticato positivo nei giorni seguenti, tutti gli spettatori dello stadio passati nelle vicinanze del dispositivo B riceveranno una notifica di rischio.

WEBINAR - 3 NOVEMBRE
CISO as a Service: perché la tua azienda ha bisogno di un esperto di Cyber Security?
Sicurezza
Cybersecurity

Le conseguenze di un replay attack potrebbero essere devastanti. Migliaia di persone penseranno di essere a rischio, chiederanno di sottoporsi a tampone e non andranno a lavorare. Un replay attack può altresì essere effettuato da un avversario contro un utente specifico che l’avversario desidera mettere in quarantena o terrorizzare.

La nuova vulnerabilità: replay attack via “viaggi nel tempo”

Infatti, per eseguire un replay attack è necessario catturare RPI di utenti che poi risulteranno infetti, il che è illegale. Inoltre la piattaforma GAEN non è open source e per testarla è necessario una particolare autorizzazione riservata alle autorità sanitarie. Per questa ragione, non erano replay attack concreti riportati da studiosi per soli motivi di test e ricerca.

In quanto ricercatore e hacker etico ho invece dimostrato la fattibilità dei replay attack con un esperimento ingegnoso e facendo ciò ha anche scoperto quella che è a tutti gli effetti una vulnerabilità nuova dell’app Immuni.

Ho preso un RPI ricavabile pubblicamente dai dati disponibili sul server di Immuni. Tale RPI è associato ad una data e ora, diciamo il 20 settembre alle ore 8:00. Dopo alcuni accorgimenti tecnici, ho retrodatato il proprio telefono a quella data e ora in una sorta di viaggio all’indietro del tempo e ho usato un dispositivo per trasmettere quell’RPI al telefono per un numero sufficiente di minuti.

Successivamente ho reimpostato la data e l’ora corretta così che l’app ha controllato se tra gli RPI ricevuti il 20 settembre alle ore 8  ci fosse quello di un infetto ed essendo proprio così l’app mi ha segnalato la notifica di rischio.

Oltre ad essere una simulazione di fattibilità un replay attack, questo attacco mostra una vulnerabilità aggiuntiva di Immuni. Chiunque può generare sul proprio telefono una notifica di rischio. Non solo, chiunque può generare una notifica di rischio sul telefono di una vittima avendo la possibilità di cambiare data e ora di questo telefono.

Generare una notifica di rischio anche verso sé stessi può avere ripercussioni sociali e legali. In Svizzera per esempio la notifica di rischio può essere usata per avere priorità al tampone.

Inoltre, in Italia il Ministero della Salute tiene traccia di quanti cittadini hanno ricevuto notifiche di rischio, quindi questi attacchi mostrano che queste statistiche possono essere completamente falsate da hacker malevoli e organizzazioni criminali.

Vulnerabilità confermata anche per l’app Svizzera SwissCovid e pericoli per le elezioni americane.

L’attacco è stato documentato sul forum dell’app Immuni.

Nello stesso forum il ricercatore svizzero Martin Vuagnoux ha confermato di essere riuscito ad eseguire lo stesso attacco all’app Svizzera SwissCovid che inoltre suggerisce che l’attacco può essere “migliorato” usando dispositivi per alterare la data e ora del telefono anche a distanza (senza bisogno di tenere il beacon vicino alla vittima).

Probabilmente, l’attacco riguarda tutti i sistemi basati su GAEN, incluse le app introdotte negli Stati Uniti.

In reazione alla scoperta del nuovo attacco, il professore dell’Università City College of New York Rosario Gennaro ha twittato chiedendo di spegnere le app di contact tracing durante le due settimane precedenti alle elezioni che si svolgeranno il prossimo Novembre. Infatti questi replay attack, sia reali che con “la macchina del tempo”, potrebbero essere abusati per inviare false notifiche di rischio ai cittadini così da costringerli a casa impedendogli di andare a votare.

Tutti i dettagli sono riportati nella sezione issue del Github di Immuni: https://github.com/immuni-app/immuni-app-android/issues/278

WHITEPAPER
Come semplificare il sistema di gestione delle identità digitali?
Sicurezza
IAM

Al momento nessuna risposta è pervenuta dagli sviluppatori di Immuni e dal Ministero dell’Innovazione e Tecnologia responsabile del progetto.

@RIPRODUZIONE RISERVATA

Articolo 1 di 4