La temuta attestazione hardware di SafetyNet sta uscendo, rendendo molto più difficile per Magisk nascondere root

A marzo, alcuni utenti con Magisk installato hanno notato che i loro dispositivi stavano fallendo l’attestazione SafetyNet. Questa notizia è stata preoccupante per la comunità di XDA perché significa che molte applicazioni bancarie/finanziarie cruciali e giochi popolari come Pokémon Go e Fate / Grand Order si rifiutavano di funzionare su dispositivi radicati. Per qualche tempo, sembrava come se le restrizioni serrate in SafetyNet sono stati tirati indietro, solo per stendere di nuovo per una manciata di utenti nelle ultime settimane. Tuttavia, Google ha tranquillamente confermato all’inizio di maggio di aver testato l’attestazione supportata dall’hardware per le risposte SafetyNet, che è ciò che ha reso Magisk incapace di nascondere lo stato di sblocco del bootloader a marzo. Se questa modifica viene ampiamente implementata, significa che gli utenti dovranno scegliere tra avere accesso a root/custom ROMs/kernels/etc. o le loro applicazioni bancarie preferite e giochi. Uno dei più grandi appelli di Android per gli utenti esperti potrebbe presto essere andato.

Per ricapitolare questa serie di eventi, dovremmo prima parlare di SafetyNet stessa. SafetyNet è un insieme di API in Google Play Services. L’API di attestazione SafetyNet è una di queste API e può essere chiamata da applicazioni di terze parti per verificare se l’ambiente software del dispositivo è stato manomesso in alcun modo. L’API controlla varie cose come segni di binari superuser, lo stato di sblocco del bootloader e altro ancora. Quando si esegue il root di un dispositivo con Magisk, è ” un “ambiente sicuro” isolato per il processo di rilevamento e passa attraverso l’API di Google per creare un risultato SafetyNet legittimo che non riflette lo stato reale del dispositivo”, per XDA Senior Recognized Developer topjohnwu. Ciò consente all’utente di eseguire il root del proprio telefono assicurando che l’API restituisca sempre “false” per qualsiasi controllo di sblocco del bootloader. Questo metodo di bypassare il rilevamento dello sblocco del bootloader di SafetyNet ha funzionato per Magisk negli ultimi anni, ma è solo perché Google ha tenuto a verificare l’integrità dell’immagine di avvio utilizzando l’attestazione hardware. A marzo, sembrava che Google stesse finalmente iniziando a impiegare l’attestazione hardware in SafetyNet per verificare l’immagine di avvio, ma non abbiamo mai ricevuto una dichiarazione ufficiale da parte di Google che confermasse il cambiamento e solo pochi utenti ne erano interessati. Come notato da XDA Senior Member Displax, tuttavia, Google ha confermato il 5 maggio 2020, che le risposte API di attestazione SafetyNet da alcuni dispositivi ora includono controlli supportati dall’hardware.

Nel gruppo Google per “Client API SafetyNet”, Google ha dettagliato una nuova funzionalità per l’API di attestazione: evaluationType. La risposta JSON Web Signature (JWS) di alcuni dispositivi avrà un campo denominato ” evaluationType “che” fornirà agli sviluppatori informazioni sui tipi di segnali/misurazioni che hanno contribuito a ogni singola risposta API di attestazione SafetyNet.”Uno dei token supportati in questo campo è “HARDWARE_BACKED” che indica che l’API ” le funzionalità di sicurezza supportate dall’hardware del dispositivo remoto (ad esempio l’attestazione della chiave supportata dall’hardware) influenzano la valutazione.”Google dice che stanno” attualmente valutando e regolando i criteri di ammissibilità per i dispositivi in cui ci baseremo su funzionalità di sicurezza supportate dall’hardware.”Ciò significa che, su alcuni dispositivi, Google Play Services sta ora utilizzando l’attestazione supportata dall’hardware per rilevare che il software del dispositivo non è stato manomesso. Google non ha ufficialmente documentato questo cambiamento al di fuori dell’annuncio nel gruppo Google, quindi alcuni sviluppatori che utilizzano SafetyNet potrebbero non essere a conoscenza di questo cambiamento (e quindi non stanno ancora controllando il campo “HARDWARE_BACKED” nelle risposte JWS.) Tuttavia, per quelle app che stanno controllando questo campo, ora non c’è modo di nascondere l’accesso root da loro, a condizione che il tuo dispositivo faccia parte del test che Google sta eseguendo.

Risposta API di attestazione SafetyNet con evaluationType che restituisce ” BASIC.” Credito: XDA Membro senior Displax
SafetyNet Response BASIC e HARDWARE_BACKED
SafetyNet Attestation API response con evaluationType che restituisce “BASIC” e ” HARDWARE_BACKED.”Credits: XDA Senior Member Displax

Secondo topjohnwu, l’attestazione hardware-backed significa che Google Play Services ora” un certificato keystore non modificato per i server SafetyNet, la sua legittimità e i dati di estensione del certificato per sapere se il dispositivo ha verificato l’avvio abilitato (stato del bootloader).”Poiché le chiavi private da cui derivano i certificati keystore sono supportate dall’ambiente sicuro isolato del telefono, recuperarle comporterebbe la sconfitta della sicurezza del Trusted Execution Environment (TEE) del telefono o del modulo di sicurezza hardware dedicato (HSM). Se uno fosse in qualche modo in grado di perdere una chiave privata, le chiavi sarebbero rapidamente revocate una volta che Google ha scoperto. Google offre centinaia di migliaia di dollari in premi per eventuali vulnerabilità di sicurezza critiche che interessano il TEE nei telefoni Pixel, il che dimostra che è incredibilmente improbabile che questo sia un potenziale viale per bypassare comunque il rilevamento dello sblocco del bootloader.

Un altro potenziale modo in cui Magisk potrebbe continuare a falsificare lo stato di sblocco del bootloader è modificando il codice lato client di SafetyNet per utilizzare sempre la valutazione di BASE. Come osserva topjohnwu, tuttavia, ciò richiederebbe l’iniezione di codice personalizzato in Google Play Services tramite un framework di aggancio come il framework Xposed. Questo non è solo difficile da fare perché Google Play Services è altamente offuscato, ma è anche impossibile da nascondere in quanto “alcune analisi dello spazio di memoria riveleranno la manipolazione del codice molto facilmente.”Inoltre, questo funzionerebbe anche solo se i server di Google continuano ad accettare valutazioni di base e se le valutazioni HARDWARE_BACKED non vengono applicate sui dispositivi che li supportano. (Le risposte SafetyNet “dai server di Google e sono firmate con la chiave privata di Google”, secondo topjohnwu, quindi le risposte effettive non possono essere falsificate.)

Poiché Android 7 Nougat, Google ha richiesto che tutti i dispositivi abbiano un ambiente sicuro isolato, il che significa che questa modifica al modo in cui SafetyNet verifica lo sblocco del bootloader influenzerà la maggior parte dei dispositivi che sono là fuori. Poiché i dispositivi meno recenti senza un ambiente sicuro isolato ovviamente non possono eseguire l’attestazione supportata dall’hardware, Magisk sarà comunque in grado di nascondere l’accesso root su tali dispositivi. Ma se questo cambiamento rotola fuori ampiamente, tutti gli altri dovranno fare una scelta difficile tra accesso root e applicazioni bancarie.

Sfortunatamente, ci sono probabilmente molte app là fuori che usano i controlli SafetyNet quando non ne hanno effettivamente bisogno. Un esempio citato da topjohnwu è l’app ufficiale di McDonald, che apparentemente si rifiuta di funzionare su un dispositivo sbloccato bootloader. Su Twitter, topjohnwu chiama app che abusano dell’API come creazione di un ambiente ostile per gli utenti esperti. XDA riconosciuto sviluppatore Quinny899 si unisce con un aneddoto su come il suo team considerato utilizzando SafetyNet per controllare lo stato di sicurezza del dispositivo. Alla fine hanno deciso di non andare fino in fondo poiché l’app del suo team crittografa tutti i dati sensibili con cui funziona. SafetyNet, sostiene, non dovrebbe essere usato al posto di adeguate pratiche di sicurezza e gestione dei dati, soprattutto se si considera la possibilità di exploit di superutente.

Sostengo @AndroidDev per limitare la valutazione SafetyNet supportata dall’hardware alle app sensibili alla sicurezza “reali”. Gli sviluppatori dovrebbero passare attraverso un processo di applicazione per qualificare questo livello di accesso API. È ridicolo per McDonalds rifiutarsi di funzionare su un dispositivo sbloccato bootloader.

— John Wu (@topjohnwu) Giugno 29, 2020

Per ulteriori informazioni su come la nuova modifica di SafetyNet influisce su Magisk, consulta le eccellenti FAQ di topjohnwu su Twitter. Se vuoi solo verificare se il tuo dispositivo fa parte del nuovo test SafetyNet di Google, puoi seguire questa guida del membro senior XDA Displax o scaricare l’ultima versione di Magisk Manager.

Aggiornato Magisk Manager per riflettere il evaluationType campo in SafetyNet controlli così la gente può iniziare a contare gli ultimi giorni di gloria 😅 pic.twitter.com/x61tGjM7IK

— John Wu (@topjohnwu) giugno 30, 2020

Questo articolo è stato aggiornato alle 10:46 AM EST 30 giugno 2020, per correggere che Google paga solo ricompense per TEE vulnerabilità in Pixel telefoni. Inoltre, sono stati aggiunti dettagli relativi all’ultima versione di Magisk Manager che ora mostra il campo evaluationType nel controllo SafetyNet integrato.

Leggete


  • moduli Google Android Pronto SE Alliance per promuovere l’adozione del digitale, le chiavi dell’auto e patenti di guida


  • Fairphone 2 a partire dal 2015 e ora di ricezione dell’aggiornamento ufficiale ad Android 9 Pie


  • Motorola Moto G50 sport un budget 5G chip e un prezzo basso


  • ASUS rilascia nuovi aggiornamenti per il ROG Telefono 5, ROG Telefono 3, e ROG Phone II con le patch di sicurezza e correzioni di bug


«

+