Un kernel compromesso dà il controllo completo su un dispositivo?

15

Sembra che una recente vulnerabilità nel firmware WiFi permetta a attaccante per eseguire codice nello spazio del kernel , ad es sostituire una funzione del kernel con codice dannoso. In Android / Linux:

  • Ciò consentirebbe a un utente malintenzionato di avere il controllo completo del telefono? Ad esempio, potrebbero installare un keylogger o altro malware?
  • Consentirebbe a un dispositivo compromesso di eseguire un attacco OTA su altri dispositivi nello stesso modo (diventando un worm)?
  • Questi problemi sono attenuati da altre funzionalità di sicurezza, come SELinux, dm-verity, ecc?

In sostanza, mi chiedo quanto sia significativa questa vulnerabilità OTA è per telefoni senza patch.

    
posta z0r 13.04.2017 - 16:21
fonte

2 risposte

18

Would that give an attacker complete control over the phone? For example, could they install a keylogger or other malware?

Questo è possibile. Dal momento che qualsiasi verifica dei permessi (ad esempio l'accesso ai file, l'accesso alla tastiera ...) viene eseguita all'interno del kernel, il codice in esecuzione all'interno del kernel potrebbe richiamare semplicemente le azioni necessarie senza eseguire questi controlli.

Would it allow a compromised device to perform an OTA attack on other devices in the same way (becoming a worm)?

Potrebbe essere possibile che alcune azioni richiedano l'accesso al kernel, come la possibilità di creare pacchetti di rete manipolati che possono essere usati per compromettere un dispositivo diverso. Ma questo non significa che tu abbia sempre bisogno dell'accesso al kernel per tali attacchi, ad esempio l'accesso root è di solito sufficiente ea volte anche un normale processo utente può farlo, a seconda dell'esatto attacco.

Are these concerns mitigated by other security features, such as SELinux, dm-verity, etc?

Una volta che l'attaccante ha l'accesso al kernel, queste tecniche non aiutano. Ma potrebbero aiutare in modo che l'attaccante non ottenga l'accesso al kernel. Ma se aiutano o no dipende dal vettore di attacco esatto. Ad esempio, non aiutano in caso di recente vulnerabilità nel driver di rete Broadcom che potrebbe essere attivato da specifici pacchetti di rete.

    
risposta data 13.04.2017 - 16:41
fonte
22

Eseguire il codice in "spazio del kernel" significa eseguirlo nello spazio suoneria 0 . In altre parole, è la definizione rigorosa di "avere il controllo totale".

L'unica eccezione sarebbe se si sta utilizzando un hypervisor. In tal caso, il codice in esecuzione nell'anello 0 del sistema operativo virtualizzato "solo" ti darà il pieno controllo del dispositivo virtualizzato, non l'hypervisor (che si dice funzioni nell'anello -1) su cui è in esecuzione. Avresti bisogno di un exploit di escape separato per arrivarci.

    
risposta data 13.04.2017 - 16:36
fonte

Leggi altre domande sui tag