Un error de 9 años en el kernel de Linux denominado 'vaca sucia' puede rootear todas las versiones de Android

Dirty Cow es un error recién descubierto, pero de hace 9 años, que puede explotarse para otorgar acceso de root en todas las versiones de Android.

A pesar de que decenas de miles de usuarios estudian minuciosamente el código fuente del kernel de Linux en busca de fallos de seguridad, no es raro que errores graves pasen desapercibidos. Después de todo, aunque las posibilidades de pasar por alto algo increíblemente grave se reducen al tener más ojos auditando el código, todos seguimos siendo humanos y estamos destinados a cometer un error. Desafortunadamente, el error esta vez parece ser bastante grave. A exploit de escalada de privilegios fue descubierto recientemente la semana pasada, y aunque ya ha sido parcheado en el kernel principal de Linux, el error podría potencialmente ser explotado en casi todos los teléfonos Android del mercado hasta que cada dispositivo reciba el parche de kernel adecuado.


Entra la vaca sucia

El error de escalada de privilegios se conoce coloquialmente como el exploit Dirty Cow, pero está catalogado en el sistema de seguimiento de errores del kernel de Linux como CVE-2016-5195. Aunque se descubrió la semana pasada, el error ha existido dentro del código del kernel de Linux durante 

9 años. Además, el código explotable se encuentra en una sección del kernel de Linux que se incluye en prácticamente todos los sistemas operativos modernos construidos sobre el kernel de Linux, incluido Android, por el camino. Lo peor es que los investigadores que descubrieron el exploit encontraron evidencia de que el exploit es siendo utilizado maliciosamente en el mundo real, por lo que están aconsejando a todos y cada uno de los proveedores de software integrado en el kernel de Linux que parcheen inmediatamente el exploit.

Dirty Cow en sí mismo no es un exploit, sino más bien una vulnerabilidad. Sin embargo, esta vulnerabilidad permite escalar los privilegios de un proceso de espacio de usuario, otorgándole privilegios de superusuario. Al explotar esta vulnerabilidad, un proceso de espacio de usuario malicioso puede tener acceso root sin restricciones en el dispositivo de la víctima. En términos más técnicos, el error implica una condición de carrera de la técnica de duplicación de memoria de Linux conocida como copia en escritura. Al explotar esta condición de carrera, los usuarios pueden obtener acceso de escritura a asignaciones de memoria que normalmente están configuradas como de solo lectura. Se pueden obtener más detalles de la vulnerabilidad de aquí, aquí, y aquí.

Se dice que la vulnerabilidad de seguridad es bastante trivial de explotar y, de hecho, a los pocos días de hacerse pública la vulnerabilidad, Explotación de escalada de privilegios de prueba de concepto ha sido demostrado por todos los dispositivos Android. Cualquier dispositivo Android que ejecute una versión del kernel de Linux superior a 2.6.22 (lea: todas las distribuciones de Android que existen) puede potencialmente ser víctima de este exploit de prueba de concepto. Aunque el exploit de prueba de concepto en realidad no logra acceso de root, atacar el sistema usando esta vulnerabilidad lo hace bastante simple. En un correo electrónico enviado a ArsTechnica, Phil Oester, un desarrollador del kernel de Linux que está catalogando exploits conocidos de Dirty Cow en el mundo real en su sitio web Tenía esto que decir sobre el error:

Cualquier usuario puede convertirse en root en <5 segundos en mis pruebas, de manera muy confiable. Cosas de miedo.

La vulnerabilidad se explota más fácilmente con acceso local a un sistema como cuentas shell. De manera menos trivial, cualquier vulnerabilidad de servidor web/aplicación que permita al atacante cargar un archivo en el sistema afectado y ejecutarlo también funciona.

El exploit particular que se cargó en mi sistema fue compilado con GCC 4.8.5 lanzado en 20150623, aunque esto no debería implicar que la vulnerabilidad no estuviera disponible antes de esa fecha dada su longevidad. En cuanto a quién es el objetivo, cualquiera que ejecute Linux en un servidor web es vulnerable.

Durante los últimos años, he estado capturando todo el tráfico entrante a mis servidores web para realizar análisis forenses. Esta práctica ha resultado invaluable en numerosas ocasiones y la recomendaría a todos los administradores. En este caso, pude extraer el binario cargado de esas capturas para analizar su comportamiento y escalarlo a los mantenedores apropiados del kernel de Linux.

Después de que los desarrolladores trabajaran más para demostrar la efectividad de explotar Dirty Cow en Android, un desarrollador pudo rootear exitosamente su HTC dispositivo en cuestión de segundos explotando la vulnerabilidad. En XDA generalmente damos la bienvenida a la posibilidad de que los usuarios adquieran acceso root, pero no celebramos la existencia de exploits de raíz como este, especialmente uno que está tan extendido y potencialmente increíblemente peligroso de terminar usuarios. Para darle una idea de lo peligrosa que puede ser la Vaca Sucia en la naturaleza, YouTuber Computerphile preparó un video rápido. demostrando los posibles vectores de ataque maliciosos que los piratas informáticos pueden utilizar para obtener silenciosamente acceso root en su dispositivo.


Fuente: ArsTechnica [1]

Fuente: ArsTechnica [2]