¿Un kernel comprometido da control completo sobre un dispositivo?

15

Parece que una vulnerabilidad reciente en el firmware de WiFi permite una el atacante ejecuta el código en el espacio del kernel , por ejemplo, Reemplace una función del kernel con código malicioso. En Android / Linux:

  • ¿Eso le daría a un atacante el control completo por teléfono? Por ejemplo, ¿podrían instalar un keylogger u otro malware?
  • ¿Permitiría que un dispositivo comprometido realice un ataque OTA en otros dispositivos de la misma manera (convirtiéndose en un gusano)?
  • ¿Estas preocupaciones se mitigan con otras funciones de seguridad, como SELinux, dm-verity, etc.?

Básicamente, me pregunto qué tan significativo es esta vulnerabilidad de OTA es para teléfonos sin parche.

    
pregunta z0r 13.04.2017 - 16:21
fuente

2 respuestas

18
  

¿Eso le daría a un atacante el control completo por teléfono? Por ejemplo, ¿podrían instalar un keylogger u otro malware?

Esto es posible. Dado que todas las comprobaciones de permisos (es decir, el acceso a archivos, el acceso al teclado ...) se realizan dentro del kernel, el código que se ejecuta dentro del kernel podría invocar las acciones necesarias simplemente directamente sin ejecutar estas verificaciones.

  

¿Permitiría que un dispositivo comprometido realice un ataque OTA en otros dispositivos de la misma manera (convirtiéndose en un gusano)?

Es posible que algunas acciones necesiten acceso al kernel, como la capacidad de crear paquetes de red manipulados que se pueden usar para comprometer un dispositivo diferente. Pero esto no significa que siempre necesite acceso al kernel para tales ataques, es decir, el acceso a la raíz suele ser suficiente y, a veces, incluso un proceso de usuario normal puede hacerlo, dependiendo del ataque exacto.

  

¿Estas preocupaciones se mitigan con otras funciones de seguridad, como SELinux, dm-verity, etc.?

Una vez que el atacante tiene acceso al kernel, estas técnicas no ayudan. Pero pueden ayudar para que el atacante no tenga acceso al kernel. Pero si ayudan o no depende del vector de ataque exacto. Por ejemplo, no ayudan en caso de la reciente vulnerabilidad en el controlador de red de Broadcom que podría ser activada por paquetes de red específicos.

    
respondido por el Steffen Ullrich 13.04.2017 - 16:41
fuente
22

Ejecutar código en "espacio del kernel" significa ejecutarlo en el espacio ring 0 . En otras palabras, es la definición estricta de "tener control total".

La única excepción sería si está ejecutando un hipervisor. En tal caso, la ejecución del código en el anillo 0 del sistema operativo virtualizado "solo" le otorgaría el control total del dispositivo virtualizado, no el hipervisor (que se dice que se ejecuta en el anillo -1) en el que se está ejecutando. Necesitarías un exploit de escape separado para llegar a eso.

    
respondido por el Stephane 13.04.2017 - 16:36
fuente

Lea otras preguntas en las etiquetas