BrutePrint: bypassare la protezione tramite impronta digitale dello smartphone

La protezione tramite impronta digitale di Android non è poi così affidabile: può essere violata con un attacco di forza bruta anche senza una copia dell’impronta digitale.

Il riconoscimento delle impronte digitali è considerato un metodo di autenticazione abbastanza sicuro. Vengono di tanto in tanto pubblicate informazioni sui diversi modi per ingannare il sensore di impronte digitali, ma tutti i metodi suggeriti in un modo o nell’altro si riducono all’imitazione fisica del dito del proprietario del telefono, sia che si utilizzi un cuscinetto in silicone o una stampa con inchiostro conduttivo. Occorre ottenere un’immagine di alta qualità di un dito, e non di un dito qualunque, ma di quello registrato nel sistema.

In poche parole, tutti questi metodi sono in realtà piuttosto macchinosi. Ma è possibile farlo in modo più elegante, rimanendo nel mondo puramente digitale e sfruttandone tutti i vantaggi? La risposta è sì. I ricercatori cinesi Yu Chen e Yiling He hanno di recente pubblicato uno studio su come utilizzare un attacco di forza bruta su quasi tutti gli smartphone Android protetti tramite impronta digitale. Hanno chiamato l’attacco BrutePrint.

Quanto sono univoche le impronte digitali?

Prima di esaminare brevemente il lavoro dei nostri colleghi cinesi, è opportuno riproporre un po’ di teoria. Tanto per cominciare, come forse saprai, le impronte digitali sono davvero univoche e non cambiano con l’età.

Nel lontano 1892, lo scienziato inglese Sir Francis Galton pubblicò un’opera laconicamente intitolata Finger Prints (Impronte digitali). In questo studio l’autore riassunse i dati scientifici allora noti sulle impronte digitali e il lavoro di Galton ha gettato le basi teoriche per un ulteriore uso pratico delle impronte digitali in medicina legale.

Tra le altre cose, Sir Francis Galton ha calcolato che la probabilità di corrispondenza delle impronte digitali era “inferiore a 2<sup>36</sup>, ovvero di circa uno a sessantaquattromila milioni”. Ancora oggi, gli esperti forensi si attengono a questo valore.

Se l’anatomia è la tua passione o se vuoi saperne di più sui fattori biologici all’origine dell’unicità delle impronte digitali, leggi questo nuovo studio sull’argomento.

Quanto sono affidabili i sensori di impronte digitali?

Il lavoro di Sir Francis e tutto ciò che ne è derivato, tuttavia, si riferisce al mondo analogico, con argomenti come il rilevamento delle impronte digitali, il relativo confronto con quelle lasciate, ad esempio, sulla scena di un crimine e questo è più o meno tutto. Ma le cose sono un po’ diverse nella realtà digitale. La qualità della rappresentazione delle impronte digitali dipende da molteplici fattori: il tipo di sensore, le sue dimensioni e risoluzione e, in misura non trascurabile, gli algoritmi di post-elaborazione e corrispondenza delle “immagini”.

Confronto tra un'impronta digitale acquisita da un sensore ottico e una copia analogica dell'impronta digitale.

Impronta digitale nella rappresentazione di Sir Francis Galton 150 anni fa (a sinistra) e del sensore ottico del tuo smartphone all’avanguardia (a destra). Fonte e fonte .

Naturalmente, gli sviluppatori devono fare in modo che il dispositivo sia a buon mercato (o nessuno lo comprerà), ottenere l’autenticazione in una frazione di secondo (o essere sopraffatti dalle lamentele sulla bassa velocità) ed evitare falsi negativi a tutti i costi (o l’utente scarterà del tutto l’esperienza). Il risultato sono sistemi di autenticazione non molto accurati.

In riferimento ai sensori utilizzati negli smartphone, vengono quindi citate cifre molto meno ottimistiche per la probabilità di corrispondenza del frammento di impronta digitale rispetto al famoso 1 a 64 miliardi. Ad esempio, Apple stima la probabilità di Touch ID in 1 a 50.000. Si può quindi presumere che per i modelli di sensori economici la probabilità si riduca ulteriormente della metà.

Questo ci porta da miliardi a migliaia. Questo livello rientra già nella portata degli attacchi di forza bruta. Il potenziale hacker deve affrontare perciò un solo ultimo ostacolo: il limite al numero di tentativi di riconoscimento dell’impronta digitale. Normalmente ne sono consentiti solo cinque, seguiti da un periodo prolungato di blocco dell’autenticazione tramite impronta digitale.

Questo ostacolo può essere superato? Yu Chen e Yiling He danno una risposta affermativa nel loro studio.

BrutePrint: preparativi per un attacco di forza bruta su smartphone Android protetti con impronte digitali

Il metodo dei ricercatori si basa su un difetto nell’implementazione del sensore di impronte digitali generico degli smartphone Android: nessuno dei modelli testati prevede il criptaggio del canale di comunicazione tra il sensore e il sistema. Questo apre l’opportunità per un attacco MITM al sistema di autenticazione: con un dispositivo connesso allo smartphone tramite la porta SPI della scheda madre, si possono sia intercettare i messaggi in arrivo dal sensore di impronte digitali, sia inviare i propri messaggi emulando il sensore di impronte digitali.

I ricercatori hanno costruito un dispositivo con queste caratteristiche (pseudo-sensore) e lo hanno integrato con un gadget per il clic automatico sullo schermo del sensore dello smartphone. La parte del componente hardware è stata così configurata per inviare più immagini di impronte digitali agli smartphone in modalità automatica.

Dispositivo utilizzato per l'attacco BrutePrint.

Dispositivo per un attacco di forza brutta al sistema di autenticazione delle impronte digitali. Fonte.

Il processo prosegue poi con la preparazione di campioni di impronte digitali per l’attacco di forza bruta. I ricercatori non rivelano la fonte del loro database di impronte digitali, limitandosi a speculazioni generali su come gli aggressori potrebbero ottenerlo (raccolte di ricerche, dati trapelati, database proprio).

Come passaggio successivo, il database delle impronte digitali è stato inviato a un sistema di intelligenza artificiale per generare una specie di dizionario di impronte digitali per massimizzare le prestazioni dell’attacco di forza brutta. Le immagini delle impronte digitali sono state adattate dall’intelligenza artificiale in modo da corrispondere a quelle generate dai sensori installati sugli smartphone partecipanti allo studio.

Esempi di immagini generate da sensori di impronte digitali di diverso tipo

Le immagini restituite dai diversi tipi di sensori di impronte digitali sono piuttosto diverse. Fonte.

Le due vulnerabilità alla base di BrutePrint: Cancel-After-Match-Fail (CAMF) e Match-After-Lock (MAL)

L’attacco BrutePrint sfrutta due vulnerabilità. I ricercatori le hanno scoperte nella logica di base del framework di autenticazione delle impronte digitali che, a quanto pare, è disponibile in tutti gli smartphone Android senza eccezioni. Le vulnerabilità sono state chiamate Cancel-After-Match-Fail (CAMF) e Match-After-Lock (MAL).

La vulnerabilità Cancel-After-Match-Fail

Cancel-After-Match-Fail (CAMF) sfrutta due importanti caratteristiche del meccanismo di autenticazione delle impronte digitali. La prima è il fatto che si basa sul multicampionamento, il che significa che ogni tentativo di autenticazione utilizza non solo una, ma una serie di due o quattro immagini di impronte digitali (a seconda del modello di smartphone). La seconda è il fatto che, oltre a non riuscire (fail), un tentativo di autenticazione può anche portare a un errore e, in questo caso, si ritorna all’inizio.

Ciò consente di inviare una serie di immagini in modo che alla fine un frame pre-modificato attivi un errore. Pertanto, se una delle immagini della serie attiva una corrispondenza, l’autenticazione verrà eseguita con esito positivo. In caso contrario, il ciclo terminerà con un errore, dopodiché sarà possibile inviare una nuova serie di immagini senza sprecare il prezioso tentativo.

Diagramma della vulnerabilità della logica di autenticazione dell'impronta digitale Cancel-After-Match-Fail.

Come funziona Cancel-After-Match-Fail: l’errore riporta al punto di partenza senza sprecare un tentativo. Fonte.

La vulnerabilità Match-After-Lock

La seconda vulnerabilità è Match-After-Lock (MAL). La logica di autenticazione tramite impronta digitale prevede un periodo di blocco a seguito di un tentativo fallito, ma molti fornitori di smartphone non riescono ad implementare correttamente questa funzionalità nelle loro versioni di Android. Quindi, anche se l’autenticazione tramite impronta digitale non è possibile in modalità di blocco, è comunque possibile inviare sempre più nuove immagini, alle quali il sistema risponderà comunque con una risposta di tipo “vero” o “falso”. Questo significa che, una volta rilevata l’immagine corretta, è possibile utilizzarla non appena il sistema esce dal blocco, completando così l’autenticazione.

Attacchi che sfruttano le vulnerabilità Cancel-After-Match-Fail e Match-After-Lock

L’attacco che sfrutta la prima vulnerabilità ha avuto successo per tutti gli smartphone testati con sistema Android autentico, ma per qualche motivo non ha funzionato con HarmonyOS. La vulnerabilità Match-After-Lock è stata sfruttata sugli smartphone Vivo e Xiaomi, nonché su entrambi i telefoni Huawei con HarmonyOS.

Tabella delle vulnerabilità di vari smartphone per Cancel-After-Match-Fail e Match-After-Lock.

Tutti gli smartphone testati si sono rivelati vulnerabili ad almeno un attacco. Fonte.

Tutti gli smartphone Android e HarmonyOS partecipanti allo studio sono risultati vulnerabili ad almeno uno degli attacchi descritti. Ciò significa che tutti hanno consentito un numero indefinito di tentativi di autenticazione delle impronte digitali dannosi.

Secondo lo studio, ci sono volute dalle 2,9 alle 13,9 ore per violare un sistema di autenticazione per smartphone Android con una sola impronta digitale registrata. Per gli smartphone con il numero massimo possibile di impronte registrate per un dato modello (quattro per Samsung, cinque per tutti gli altri), il tempo si è invece notevolmente ridotto: per violarli sono state necessarie da 0,66 a 2,78 ore.

Tempo di violazione dello smartphone utilizzando BrutePrint.

Probabilità di attacco BrutePrint riuscito in funzione del tempo trascorso: una sola impronta digitale registrata (linea continua) e il numero massimo di impronte digitali registrate (linea tratteggiata). Fonte.

E gli iPhone?

Il sistema Touch ID utilizzato negli iPhone si è rivelato più resistente a BrutePrint. Secondo lo studio, il vantaggio principale dell’iPhone è che la comunicazione tra il sensore di impronte digitali e il resto del sistema è criptata. Non c’è quindi modo di intercettare o fornire al sistema un’impronta predisposta su un dispositivo dotato di Touch ID.

Lo studio sottolinea che gli iPhone possono essere parzialmente vulnerabili alle manipolazioni utilizzate per massimizzare il numero di possibili tentativi di riconoscimento delle impronte digitali. Tuttavia, non è così brutto come potrebbe sembrare: mentre gli smartphone Android consentono una durata infinita dei tentativi, negli iPhone il numero di tentativi può essere aumentato solo da 5 a 15.

Gli utenti iOS possono quindi dormire sonni tranquilli: Touch ID è molto più affidabile dell’autenticazione tramite impronta digitale utilizzata sia in Android che in HarmonyOS. Inoltre, al giorno d’oggi la maggior parte dei modelli di iPhone utilizza comunque Face ID.

Quanto è pericoloso tutto ciò?

Anche i possessori di smartphone Android non dovrebbero preoccuparsi troppo di BrutePrint: nella pratica l’attacco difficilmente rappresenta una minaccia grave. I motivi sono diversi:

  • BrutePrint richiede l’accesso fisico al dispositivo. Questo fattore da solo riduce notevolmente la probabilità che qualcosa di simile possa accadere a te.
  • Inoltre, per sferrare l’attacco è necessario aprire il dispositivo e utilizzare un connettore specifico sulla scheda madre. Farlo all’insaputa del proprietario non è affatto facile.
  • Anche nella migliore delle ipotesi, l’attacco richiederà un tempo considerevole, nell’ordine di alcune ore.
  • E, naturalmente, BrutePrint richiede una configurazione particolare, sia hardware che software, che includa attrezzature personalizzate, un database di impronte digitali e un sistema di intelligenza artificiale addestrato.

In combinazione, questi fattori rendono estremamente improbabile che un tale attacco possa essere utilizzato nella vita reale, a meno che alcune persone con una mentalità imprenditoriale non decidano di realizzare un prodotto commerciale di facile utilizzo basato sullo studio.

Protezione degli smartphone Android dagli attacchi di forza brutta alle impronte digitali

Se, nonostante tutto, ritieni di poter essere vittima di un attacco di questo tipo, ecco alcuni suggerimenti su come proteggerti:

  • Registra il minor numero possibile di impronte digitali (idealmente solo una). Maggiore è il numero di dita utilizzate per l’autenticazione, più vulnerabile diventa il sistema alla tattica descritta e ad altri attacchi.
  • Non dimenticare di utilizzare un PIN aggiuntivo o una protezione con password per le app che supportano questa opzione.

A proposito, la funzione AppLock disponibile nella versione a pagamento di Kaspersky per Android consente di utilizzare password separate per qualsiasi app.

 

Consigli