Come il rilevamento delle radici di un gioco anime ha portato alla scoperta di una vulnerabilità di sicurezza nei telefoni LG, OnePlus, Huawei, Xiaomi e altri

È stato riscontrato che gli smartphone di diversi produttori come LG, OnePlus, Huawei, Xiaomi trapelano informazioni sul processo delle app. Ecco cosa significa.

Viene utilizzato il sistema operativo mobile Android oltre 2 miliardi di dispositivi ogni mese sia da consumatori abituali che da appassionati di tecnologia. Sebbene il numero di persone che sbloccano il bootloader ed eseguono il root del proprio smartphone sia relativamente piccolo quando rispetto alla popolazione complessiva degli utenti Android, ce ne sono ancora molti là fuori su forum come XDA e Reddit. Magisk è uno strumento indispensabile per la comunità del tinkering. Fornisce accesso root senza sistema e dispone di strumenti come MagiskHide per consentire agli utenti rooted di continuare a utilizzare le app, i giochi e i servizi di cui godono senza restrizioni. Tuttavia, un popolare gioco anime ha abilmente abusato di una vulnerabilità di sicurezza del sistema per aggirare il rilevamento anti-root di Magisk. Ecco come funziona e quali dispositivi sono interessati da questa vulnerabilità della sicurezza.

  • Un gioco ha utilizzato un bug per rilevare se un dispositivo è stato rootato. Se il dispositivo è rootato, il gioco impedisce all'utente di giocare.
  • Il bug consente a un'app di leggere lo stato di altre app in memoria, senza bisogno di permessi speciali. Il bug non consente alle app di rubare dati da altre app. Il bug non è grave ed è abbastanza innocuo.
  • Google è già a conoscenza del problema e ha aggiornato i propri strumenti di test per garantire che tutti i dispositivi siano protetti.

Sfondo

Un popolare gioco anime chiamato Fate/Grand Order impedisce agli utenti rootati di tentare di giocare. Sviluppatore riconosciuto XDA topjohnwu, lo sviluppatore principale di Magisk, in precedenza scoperto un modo per bypassare il rilevamento root di Fate/Grand Order, ma la sua soluzione non funzionava sul suo OnePlus 6 nonostante i suoi migliori sforzi. Deciso a non arrendersi, lo sviluppatore ha analizzato Fate/Grand Order per capire come riuscisse ancora a rilevare il root sul suo dispositivo OnePlus. Come spiega nel suo Posta media, questo lo ha portato alla scoperta di una vulnerabilità di sicurezza di cui Fate/Grand Order stava apparentemente abusando per continuare a rilevare l'accesso root sui dispositivi OnePlus.

Fate/Grand Order (inglese)Sviluppatore: Aniplex Inc.

Prezzo: gratuito.

4.

Scaricamento

Procf e Android

Sui sistemi operativi basati su Unix, esiste un filesystem speciale chiamato "procfs" contenente informazioni su processi (si pensi alle app) come l'utilizzo della memoria (si pensi alla RAM), lo stato (se il processo è in esecuzione, dormire, ecc.). Sulla maggior parte dei sistemi operativi basati su Unix, l'utente e le app hanno un facile accesso a procfs per vedere di che tipo app e servizi sono in esecuzione sul loro sistema (pensalo come il Task Manager di Windows). Tuttavia, Google ha cominciato a bloccare l'accesso a procfs a partire da Android 7.0 Nougat. Prima di Android Nougat, app come SystemPanel erano in grado di raccogliere dati su quali app erano in esecuzione senza bisogno di autorizzazioni speciali. Dopo Android Nougat, le app devono utilizzare API come Statistiche di utilizzo O Servizio di accessibilità, entrambi controllati dalle autorizzazioni che devono essere concesse dall'utente.

Pannello di sistema 2Sviluppatore: NextApp, Inc.

Prezzo: gratuito.

4.2.

Scaricamento

Google impedisce alle app di leggere lo stato di altre app tramite procfs montando /proc con il flag "hidepid=2." Montando procfs con hidepid=2, le app possono vedere solo lo stato del proprio processo. Pertanto, un'app dovrebbe utilizzare le API accettate come UsageStats o AccessibilityService per ottenere informazioni su quali app e servizi sono in esecuzione sul dispositivo.

Vulnerabilità

Cosa succede se procfs non è montato con hidepid=2? Bene, allora le app sarebbero in grado di leggere liberamente lo stato di altre app (e punti di montaggio) in esecuzione sul sistema senza bisogno di autorizzazioni aggiuntive*. Google monta procfs con hidepid=2 sui propri dispositivi, ma non applica questo requisito sui dispositivi di altri produttori. Diversi dispositivi LG, OnePlus, Huawei/Honor, Xiaomi e altri non hanno installato procf hidepid=2, che è ciò di cui app come Fate/Grand Order sfruttano per rilevare se Magisk è presente il dispositivo.

*Una modifica alla sicurezza in Android 9 Pie impedisce alle app di leggere informazioni al di fuori del proprio "contesto SELinux" perché ogni app è ora isolata individualmente. SELinux è un modulo del kernel che funge da sorta di custode, impedendo ad app e servizi di accedere a file a cui non dovrebbero accedere. Un contesto SELinux è come un'etichetta per un file che contiene informazioni come l'utente e il ruolo. Le app con lo stesso contesto SELinux possono leggere informazioni su altre app nello stesso contesto se il flag hidepid=2 non è abilitato per procfs. Sui dispositivi con Android 9 Pie, solo le app create per Android Pie avranno le nuove modifiche SELinux di Android Pie applicate. Le app destinate ad Android 8.1 Oreo o versioni precedenti utilizzeranno le vecchie regole SELinux, consentendo loro l'accesso informazioni sui processi nello stesso contesto SELinux purché procfs sia montato senza hidepid=2. Grazie a, la maggior parte delle app in esecuzione sul tuo dispositivo dovrebbero avere come target almeno Android 8.0 Oreo nuovi requisiti di Google Play, ma molti non saranno ancora stati aggiornati per indirizzare Android Pie.

Gli screenshot seguenti mostrano le conseguenze del mancato montaggio di procfs con hidepid=2.

Quanto è grave questa cosa?

Se dovessimo confrontare questa vulnerabilità del sistema con exploit simili Fusée Gelée, Blueborne, KRACK, E Fusione/Spettro, allora questo bug impallidisce al confronto. Le app non possono utilizzarlo per ottenere l'accesso root o rubare le tue password. I tuoi conti bancari sono al sicuro, così come le tue carte di credito. La cosa peggiore che un'app può fare è capire se sul tuo dispositivo è in esecuzione un'altra app, il che ha usi molto limitati. Ricorda che questo è un comportamento standard su molte distribuzioni GNU/Linux e che Google solo di recente ha iniziato a bloccare l'accesso a procfs con Android Nougat. Questo bug consente alle app di evitare la necessità di determinate autorizzazioni per monitorare altri processi, ma non riescono comunque a violare la sandbox di Android e a rubare dati da altre app. In ogni caso, si tratta di un comportamento non intenzionale e interrompe una funzionalità di privacy di Android, quindi deve essere risolto.

Il mio dispositivo è interessato?

Ecco un elenco di dispositivi che abbiamo riscontrato non montare procfs con hidepid=2:

OEM

Dispositivo

Versione Android

procfs Perdite

Asus

ZenFone 5Z

Android 8.0Oreo

Mora

CHIAVE2

Android 8.0Oreo

NO

Essenziale

PH-1

Android 9 Torta

NO

Google

Pixel 2

Android 9 Torta

NO

Google

Pixel 3

Android 9 Torta

NO

Google

Pixel3XL

Android 9 Torta

NO

Onore

Magia 2

Android 9 Torta

HTC

U12+

Android 8.0Oreo

Huawei

Compagno 20X

Android 9 Torta

LG

G7 ThinQ

Android 8.0Oreo

LG

V40 ThinQ

Android 8.1Oreo

Motorola

Moto G4

Android 8.1Oreo

NO

Nokia

7.1

Android 8.1Oreo

NO

OnePlus

6

Android 8.1 Oreo/Android 9 Pie

OnePlus

6T

Android 9 Torta

Razer

Telefono 2

Android 8.1Oreo

SAMSUNG

Galassia Nota 8

Android 8.0Oreo

NO

SAMSUNG

Galassia Nota 9

Android 8.1 Oreo/Android 9 Pie

NO

SAMSUNG

Galassia S7

Android 8.0Oreo

NO

SAMSUNG

Galassia S8

Android 8.0Oreo

NO

SAMSUNG

Galassia S9

Android 9 Torta

NO

SAMSUNG

Galaxy S9+ (Exynos)

Android 8.0Oreo

Sony

XperiaXZ1

Android 9 Torta

NO

Xiaomi

Mi Mix 2S

Android 9 Torta

Xiaomi

POCO F1

Android 8.1Oreo

Come verificare se il tuo dispositivo è interessato

È abbastanza semplice verificare se il tuo dispositivo sta divulgando informazioni sul processo ad altre app (in altre parole, procfs non è montato con hidepid=2). Anche se puoi utilizzare i comandi della shell come abbiamo fatto noi, puoi anche controllare utilizzando un'app sviluppata da topjohnwu. La sua app ti consente anche di rimontare procfs con hidepid=2, se il tuo telefono è rootato.

Scarica Procgate

Ci sarà una soluzione?

Sì, questo verrà risolto. Google ora richiederà che tutti i dispositivi montino procfs con hidepid=2. Lo faranno rispettare in aggiornamento la Compatibility Test Suite (CTS), una serie di test che tutti i dispositivi devono superare per poter utilizzare app e servizi Google Play. Tutti gli OEM (che desiderano vendere dispositivi con Google Play Store preinstallato) dovranno eventualmente rilasciare un aggiornamento per rimontare procfs con hidepid=2 nel prossimo futuro. Poiché i dispositivi OnePlus sono stati i primi a essere scoperti con questo problema, OnePlus è già stata informata e sta lavorando a una soluzione. Aggiorneremo questo articolo se altri OEM commentano questo bug, ma non è necessario chiedersi se l'OEM del tuo dispositivo rilascerà un aggiornamento. Se vogliono che il loro aggiornamento superi CTS, devono correggere questo bug.