Grazie ad AndrewT che ha pubblicato un link in chat , avendo questo documento di ricerca come riferimento in una delle risposte . Questa risposta è interamente basata su questo documento (maggio 2015) ed evidenzia aspetti comprensibili dell'utente comune (ha un sacco di materiale relativo alla sicurezza per gli interessati)
Quali sono i pro ei contro a parte quanto sopra?
Se un dispositivo ha entrambe le opzioni: il rooting basato sull'app e il rooting tramite metodi da parte degli sviluppatori, quale dovrei optare?
Risposta: riguarda la vulnerabilità del malware. L'uso degli exploit di root è un ENORME rischio per la sicurezza e questo appesantisce qualsiasi altro vantaggio
Che cos'è Soft Root e Hard Root?
Soft Root: il root si ottiene direttamente eseguendo un software (ad esempio exploit di root) - installandolo direttamente sul dispositivo o richiedendo adb
shell tramite una connessione al PC
Hard Root: il root si ottiene eseguendo il flashing del binario esternamente tramite un pacchetto di aggiornamento o una ROM
Minaccia malware - in generale
Anche se legittimi, molti pratici metodi di root con un clic funzionano sfruttando le vulnerabilità nel sistema Android. Se non attentamente controllati, tali exploit possono essere abusati dall'autore di malware per ottenere privilegi di root non autorizzati.
Come descritto in Android Malware Genome Project , il 36,7% (su 1260) campioni di malware aveva incorporato almeno un exploit di root.
Questi exploit ben progettati non sono ben protetti, è estremamente pericoloso se cadono nelle mani sbagliate.
Chi sono i principali fornitori di root e in generale, come funziona?
Quali sono i tipi di exploit root?
L'articolo copre 78 exploit studiati. In generale, l'ordine di impatto (dal più alto al più basso ):
Exploit del kernel: grazie alla sua posizione privilegiata, il targeting del kernel Linux è naturale per ottenere il pieno controllo su un dispositivo Android, ad esempio TowelRoot
Exploit delle librerie : gli exploit destinati alle librerie utilizzate dai processi di sistema Android o librerie esterne utilizzate per supportare diverse applicazioni, ad esempio exploit ZergRush, libsysutils utilizzati dal demone di Volume Manager
Quadro applicativo e applicativo Sfruttamento root a livello di applicazione: exploit rivolti ad applicazioni o servizi di sistema, per lo più includono logiche vulnerabili introdotte da setuid
utility, applicazioni di sistema o servizi. esempio è setuid
un'utilità vulnerabile presente solo su dispositivi XoomFE che presenta una vulnerabilità all'iniezione di comandi
Kernel o driver specifici del fornitore : i fornitori personalizzano il kernel (ad esempio, il ramo del kernel Linux personalizzato di Qualcomm) o forniscono driver di dispositivo specifici del fornitore per varie periferiche (ad esempio, telecamera, suono). Tale codice viene eseguito all'interno dello spazio del kernel e il suo compromesso può anche portare al pieno controllo del dispositivo.
Per quanto riguarda il numero , gli exploit sono come nella figura seguente
Quanto è difficile mettere le mani su Exploit (sorgente o binario)?
Molto facile.Facilmente disponibile dalla ricerca di Google, rendendolo un gioco da ragazzi per gli autori di malware per sfruttare tali exploit. Googling per 73 exploit porta a renderne disponibili 68 - 46 con codice sorgente e 22 con file binari
Come funzionano questi exploit?
Requisiti principali per il funzionamento degli exploit (ordinati dal più difficile al meno ) (il tag malware contiene molte di queste istanze)
Interazioni utente richieste: (6 su 78 studiate)
- Chiedere all'utente di scaricare un'app e interrompere manualmente l'installazione
- Chiedere all'utente di avviare il ripristino almeno una volta.
- Chiedere all'utente di mettere manualmente il dispositivo in modalità "risparmio batteria".
- Chiedere all'utente di aprire un'app specifica del fornitore e premere un pulsante
Richiede adb
shell tramite una connessione PC: (17 su 78 studiati). Per alcuni exploit, adb
è richiesta la connessione shell a causa dei seguenti motivi più comuni:
L'exploit può modificare correttamente un'impostazione in local.prop
cui abilita root adb
solo per la shell.
L'exploit deve scrivere in un file di proprietà della shell di gruppo e scrivibile in gruppo (non scrivibile in tutto il mondo)
L'exploit prende di mira il processo del demone adb che richiede l'esecuzione del processo di attacco con l'utente shell. Ad esempio, l' exploit Rage Against the Cage prende di mira la vulnerabilità del controllo mancante del daemon adb sul valore restituito disetuid()
Riavvio: (6 su 78 studiati) In genere, molti exploit di root richiedono almeno un riavvio. Ad esempio, un attacco simbolico al collegamento consentirebbe a un utente malintenzionato di eliminare un file di proprietà del sistema con autorizzazioni deboli, per impostare un collegamento nella stessa posizione in un file protetto. Dopo un riavvio, gli script di init corrispondenti tenterebbero di modificare l'autorizzazione del file originale in scrivibile a livello mondiale, che in realtà cambia l'autorizzazione del file collegato
Nessuna o autorizzazione: (44 su 78 studiati) Gli exploit in questa categoria non hanno requisiti rigidi, tuttavia, alcuni di essi potrebbero richiedere determinate autorizzazioni Android come READ LOGS
per far sì che il proprietario del processo venga inserito in un determinato gruppo di utenti.
Questi exploit possono essere rilevati da Anti-Virus?
Poiché gli exploit di root sono altamente sensibili e possono essere sfruttati da vari malware Android, si prevede che i software antivirus su piattaforma Android possano identificarne la maggior parte, inclusi quelli implementati dai provider di root. Nel complesso, il risultato mostra che i prodotti di sicurezza all'avanguardia sulla piattaforma Android non sono ancora in grado di affrontare efficacemente gli exploit di root
Sono stati utilizzati 4 prodotti antivirus Android rappresentativi per testare il più grande fornitore (nome non rivelato) con 167 exploit. Poiché gli exploit originariamente scaricati dal database dei provider hanno impacchettato il codice di exploit effettivo e utilizzato un meccanismo di rilevamento di manomissioni, studia 3 versioni diverse per ogni exploit:
Exploit originale prelevato direttamente dai server dei provider, con impacchettamento e rilevazione manomissione attivi.
Exploit non compresso, che esporrà tutta la logica di exploit effettiva ai prodotti antivirus.
Reimpacco exploit con rilevamento manomissione disabilitato.
I file binari di exploit progettati da grandi provider di root sono sorprendentemente "puliti" poiché tutti i principali software antivirus hanno difficoltà a rilevarli come mostra la tabella seguente
Conclusione
Semplice. Stai lontano dai metodi di Soft Root se non sei in grado di affrontarne le conseguenze