È 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.
Prezzo: gratuito.
4.
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.
Prezzo: gratuito.
4.2.
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 |
SÌ |
Mora |
CHIAVE2 |
Android 8.0Oreo |
NO |
Essenziale |
PH-1 |
Android 9 Torta |
NO |
Pixel 2 |
Android 9 Torta |
NO |
|
Pixel 3 |
Android 9 Torta |
NO |
|
Pixel3XL |
Android 9 Torta |
NO |
|
Onore |
Magia 2 |
Android 9 Torta |
SÌ |
HTC |
U12+ |
Android 8.0Oreo |
SÌ |
Huawei |
Compagno 20X |
Android 9 Torta |
SÌ |
LG |
G7 ThinQ |
Android 8.0Oreo |
SÌ |
LG |
V40 ThinQ |
Android 8.1Oreo |
SÌ |
Motorola |
Moto G4 |
Android 8.1Oreo |
NO |
Nokia |
7.1 |
Android 8.1Oreo |
NO |
OnePlus |
6 |
Android 8.1 Oreo/Android 9 Pie |
SÌ |
OnePlus |
6T |
Android 9 Torta |
SÌ |
Razer |
Telefono 2 |
Android 8.1Oreo |
SÌ |
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 |
SÌ |
Sony |
XperiaXZ1 |
Android 9 Torta |
NO |
Xiaomi |
Mi Mix 2S |
Android 9 Torta |
SÌ |
Xiaomi |
POCO F1 |
Android 8.1Oreo |
SÌ |
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.