App VerificaC19 “truccate”, per il Green Pass: grave rischio truffe e per la sicurezza pubblica
Abbiamo dimostrato che con qualche semplice intervento tecnico è possibile modificare l’app ufficiale VerificaC19, per la verifica del green pass , in modo fraudolento, con gravi danni per la sicurezza pubblica e la sicurezza – fisica e digitale – degli interessati .
Cosa si può fare con la versione modificata di VerificaC19 I rischi
I rischi
L’app VerificaC19
Verifica C19 non è sicura: ecco cosa abbiamo scoperto I presupposti tecnici e giuridici Dati e informazioni
I presupposti tecnici e giuridici
Dati e informazioni
Scenari di rischio
Modifica dell’app VerificaC19 Modifica del codice Dalvik Generazione del QR-CODE di un Green Pass Si poteva evitare il rischio con una cifratura del QR-Code
Modifica del codice Dalvik
Generazione del QR-CODE di un Green Pass
Si poteva evitare il rischio con una cifratura del QR-Code
Il risultato della frode
Come verificare che il pass è fasullo
Cosa si può fare con la versione modificata di VerificaC19
La versione modificata – utilizzando una semplice singola stringa di codice – ma per il resto identifica all’originale, permette di fatto di validare qualsiasi green pass: che si tratti di versioni valide, scadute o persino contraffatte.
Questa semplicità aumenta la possibilità c he malintenzionati possano vanificare l’impegno messo in essere per tutelare la salute pubblica tenuto conto che l’app modificata potrebbe essere pubblicata su store non ufficiali o veicolata attraverso attività di social engineering.
La versione modificata può inoltre rubare i dati di pass veri.
L’app modificata VerificaC19 potrebbe essere quindi usata per:
Di seguito la foto che prova la modifica fatta da noi. Per un fantomatico utente Topo Lino (“Topolino”).
L’app VerificaC19
L’app Verifica C19 serve verificare che questo “lasciapassare” digitale – green pass – per bar, ristoranti, stadi sia valido. Si tratta di un software gratuito e istituzionale per evitare falsificazioni e imbrogli con i Green Pass.
Come si legge in una nota del Ministero della salute: “l’App VerificaC19 può essere utilizzata solo dai soggetti “verificatori”, ovvero soggetti deputati al controllo delle Certificazioni verdi COVID-19, che erogano servizi per fruire dei quali è prescritto il possesso di tale certificazione e gli organizzatori di eventi ed attività per partecipare ai quali è prescritto il possesso della medesima certificazione, nonché i pubblici ufficiali nell’esercizio delle relative funzioni”.
Verifica C19 non è sicura: ecco cosa abbiamo scoperto
L’offensive team di Swascan ha deciso di investigare sulla sicurezza dell’app.
L’app VerificaC19 per la verifica del Green Pass europeo prevede
La verifica della firma digitale prevede l’uso della chiave pubblica corrispondente alla chiave privata che ha effettuato la firma.
L’app “VerificaC19” scarica le chiavi pubbliche relative a tutti gli enti che generano Green Pass validi e le utilizza per la loro verifica.
Una volta verificata la firma digitale attraverso la scansione del QR-CODE , viene visualizzata la schermata che conferma, a video, la validità del QR-CODE .
Dal punto di vista formale, Verifica C19 deve essere impiegata secondo questi passaggi:
I dettagli dei dati presenti all’interno del QR-Code sono i seguenti:
• Data di nascita
• Cognome
• Codice Fiscale
• Nome
• ID Certificato
• Paese di vaccinazione
• Numero dosi effettuate
• Data di vaccinazione
• Emittente certificato
• Azienda produttrice vaccino
• Product ID vaccino
• Numero totali di dosi (da effettuare)
• Malattie a cui si è soggetti
• Vaccino o Profilassi
• JSON Schema Version
• Emittente QR-Code
• Scadenza QR-Code
• Data Rilascio QR-Code
Scenari di rischio
Un verificatore potrebbe installare una versione dell’app VerificaC19 modificata , che per ogni Green Pass, anche scaduti, visualizzi sempre la schermata di validità dello stesso, consentendo quindi in ogni caso l’ingresso nel locale.
Truffatori potrebbero generarne e distribuirne in modo arbitrario Green Pass non validi, leggibili dall’app ufficiale VerificaC19 e ma sempre autorizzati da un app VerificaC19 modificata.
Allo stesso modo, versioni “modificate” dell’applicazione potrebbero essere oggetto di commercio e vendita da parte di criminali anche per attività di raccolta informazioni e dati dei possessori di Green Pass. I criminali potrebbero mettere in giro le app modificate nella speranza che un gestore ci caschi e poi loro catturano i dati.
Allo stesso modo essere utilizzate per frodi e attività di social engineering.
Il rischio concreto è che vi sia una diffusione di questi cloni; vanificando gli sforzi messi in atto per proteggerci.
Modifica dell’app VerificaC19
Per verificare l’effettiva plausibilità di questo scenario, l’offensive team di Swascan ha scaricato l’apk al fine di modificare l’app VerificaC19, per la versione Android.
Fatto questo ha eseguito questi step:
Mostriamo alcuni di questi passaggi.
Allo scopo abbiamo utilizzato apktool:
Il comando precedente genera la directory contenente i file .smali.
A mero titolo di esempio, si mostra come sia possibile effettuare una modifica per rendere valido qualsiasi QR-CODE . L’applicazione può naturalmente essere modificata anche molto più di quanto mostrato.
Si modifica il file:
Per garantire che il QR-CODE risulti sempre valido, si è aggiunta l’istruzione Dalvik “const/4 v1, 0x1” prima della chiamata al metodo setCoseVerified() come mostrato di seguito:
Il QR-CODE relativo al Green Pass contiene i dati personali e dati relativi alla vaccinazione del paziente. Ecco di seguito un dump delle informazioni contenute e leggibili da qualsiasi lettore QR-CODE , dopo una semplice operazione di decodifica.
Nel QR-CODE del Green Pass è presente un campo contenente una firma digitale che viene verificata dall’applicazione attraverso la chiave pubblica dell’ente che lo ha emesso. Tuttavia, la mancanza di cifratura consente la generazione di QR-CODE contenenti dati arbitrari.
Si è quindi creato uno script per la generazione di QR-CODE di Green Pass arbitrari partendo dallo script seguente, utile alla sua decodifica:
Per la generazione dell’immagine si è utilizzato un tool disponibile online per la generazione di QR-CODE .
Il QR-CODE risultante è il seguente:
Il risultato della frode
Scansionando il QR-CODE generato, utilizzando l’applicazione modificata si ottiene la schermata seguente.
Screenshot VerificaC19 Modificata
Proseguendo nell’analisi, l’Offensive team di Swascan ha inoltre riscontrato che:
Come verificare che il pass è fasullo
Si precisa che il processo di verifica della firma digitale, se effettuato con l’applicazione originale, funziona correttamente.
Screenshot VerificaC19 Ufficiale
Ma il problema resta perché qui il rischio è che un verificatore utilizzi deliberatamente un’app modificata per accettare qualunque pass (anche fasullo); oppure per rubare dati di pass veri.