Cómo la detección de raíz de un juego de anime llevó al descubrimiento de una vulnerabilidad de seguridad en teléfonos de LG, OnePlus, Huawei, Xiaomi y otros

click fraud protection

Se ha descubierto que los teléfonos inteligentes de varios fabricantes como LG, OnePlus, Huawei y Xiaomi filtran la información del proceso de las aplicaciones. Esto es lo que eso significa.

El sistema operativo móvil Android se utiliza en más de 2 mil millones de dispositivos cada mes tanto por consumidores habituales como por entusiastas de la tecnología. Aunque el número de personas que desbloquean el gestor de arranque y rootean sus teléfonos inteligentes es relativamente pequeño cuando En comparación con la población general de usuarios de Android, todavía hay muchos de nosotros en foros como XDA y Reddit. Magisk es una herramienta indispensable para la comunidad de retoques. Proporciona acceso root sin sistema y tiene herramientas como MagiskHide para permitir a los usuarios rooteados continuar usando las aplicaciones, juegos y servicios que disfrutan sin restricciones. Sin embargo, un popular juego de anime ha estado abusando inteligentemente de una vulnerabilidad de seguridad del sistema para evitar la detección anti-root de Magisk. Así es como funciona y qué dispositivos se ven afectados por esta vulnerabilidad de seguridad.

  • Un juego ha utilizado un error para detectar si un dispositivo ha sido rooteado. Si el dispositivo está rooteado, el juego impide que el usuario juegue.
  • El error permite que una aplicación lea el estado de otras aplicaciones en la memoria, sin necesidad de permisos especiales. El error no permite que las aplicaciones roben datos de otras aplicaciones. El error no es grave y es bastante inofensivo.
  • Google ya lo sabe del problema y ha actualizado sus herramientas de prueba para asegurarse de que todos los dispositivos estén protegidos.

Fondo

Un popular juego de anime llamado Fate/Grand Order impide que los usuarios rooteados intenten jugar. Desarrollador reconocido por XDA topjohnwu, el desarrollador líder de Magisk, anteriormente descubrió una manera para evitar la detección de raíz de Fate/Grand Order, pero su solución no funcionó en su OnePlus 6 a pesar de sus mejores esfuerzos. Decidido a no darse por vencido, el desarrollador analizó Fate/Grand Order para descubrir cómo seguía detectando root en su dispositivo OnePlus. Como explica en su Publicación mediana, esto lo llevó al descubrimiento de una vulnerabilidad de seguridad de la que aparentemente Fate/Grand Order estaba abusando para continuar detectando acceso root en dispositivos OnePlus.

Destino/Gran Orden (inglés)Desarrollador: Aniplex Inc.

Precio: Gratis.

4.

Descargar

Procfs y Android

En los sistemas operativos basados ​​en Unix, existe un sistema de archivos especial llamado "procfs" que contiene información sobre procesos (piense en aplicaciones), como su uso de memoria (piense en RAM), estado (si el proceso se está ejecutando, dormir, etcétera). En la mayoría de los sistemas operativos basados ​​en Unix, el usuario y las aplicaciones tienen fácil acceso a procfs para ver qué tipos de aplicaciones y servicios se ejecutan en su sistema (piense en ello como el Administrador de tareas de Windows). Sin embargo, Google comenzó a bloquear el acceso a procfs a partir de Android 7.0 Nougat. Antes de Android Nougat, aplicaciones como SystemPanel podían recopilar datos sobre qué aplicaciones se estaban ejecutando sin necesidad de permisos especiales. Después de Android Nougat, las aplicaciones necesitan usar API como Estadísticas de uso o Servicio de Accesibilidad, los cuales están controlados por permisos que debe otorgar el usuario.

Panel del sistema 2Desarrollador: NextApp, Inc.

Precio: Gratis.

4.2.

Descargar

Google evita que las aplicaciones lean el estado de otras aplicaciones a través de procfs montando /proc con la bandera "hidepid=2". Al montar procfs con hidepid=2, las aplicaciones solo pueden ver el estado de su propio proceso. Por lo tanto, una aplicación necesitaría utilizar las API aceptadas como UsageStats o AccessibilityService para obtener información sobre qué aplicaciones y servicios se ejecutan en el dispositivo.

Vulnerabilidad

¿Qué pasa si procfs no está montado con hidepid=2? Bueno, entonces las aplicaciones podrían leer libremente el estado de otras aplicaciones (y puntos de montaje) que se ejecutan en el sistema sin necesidad de permisos adicionales*. Google monta procfs con hidepid=2 en sus propios dispositivos, pero no aplica este requisito en dispositivos de otros fabricantes. Varios dispositivos de LG, OnePlus, Huawei/Honor, Xiaomi y otros no han estado montando procfs con hidepid=2, que es lo que aprovechan aplicaciones como Fate/Grand Order para detectar si Magisk está presente en el dispositivo.

*Un cambio de seguridad en Android 9 Pie evita que las aplicaciones lean información fuera de su propio "contexto SELinux" porque ahora cada aplicación está aislada individualmente. SELinux es un módulo del kernel que actúa como una especie de guardián, bloqueando el acceso de aplicaciones y servicios a archivos que no deberían. Un contexto SELinux es como una etiqueta para un archivo que tiene información como el usuario y el rol. Las aplicaciones con el mismo contexto SELinux pueden leer información sobre otras aplicaciones en el mismo contexto si el indicador hidepid=2 no está habilitado para procfs. En los dispositivos que ejecutan Android 9 Pie, solo se aplicarán los nuevos cambios SELinux de Android Pie a las aplicaciones creadas para Android Pie. Las aplicaciones dirigidas a Android 8.1 Oreo o inferior utilizarán las antiguas reglas de SELinux, lo que les permitirá acceder información sobre procesos en el mismo contexto SELinux siempre que procfs esté montado sin ocultarpid=2. La mayoría de las aplicaciones que se ejecutan en su dispositivo deberían al menos estar orientadas a Android 8.0 Oreo gracias a nuevos requisitos de Google Play, pero muchos aún no se habrán actualizado para apuntar a Android Pie.

Las siguientes capturas de pantalla muestran las consecuencias de no montar procfs con hidepid=2.

¿Qué tan malo es esto?

Si tuviéramos que comparar la vulnerabilidad de este sistema con exploits como Fusée Gelée, azul, CRACK, y Fusión/Espectro, entonces este error palidece en comparación. Las aplicaciones no pueden usar esto para obtener acceso de root o robar sus contraseñas. Sus cuentas bancarias están seguras, al igual que sus tarjetas de crédito. Lo peor que puede hacer una aplicación es saber si se está ejecutando otra aplicación en su dispositivo, lo cual tiene usos muy limitados. Recuerde que este es un comportamiento estándar en muchas distribuciones GNU/Linux y que Google recientemente comenzó a bloquear el acceso a procfs con Android Nougat. Este error permite que las aplicaciones eviten la necesidad de ciertos permisos para monitorear otros procesos, pero aún así no pueden romper la zona de pruebas de Android y robar datos de otras aplicaciones. De todos modos, este es un comportamiento no intencionado y viola una característica de privacidad de Android, por lo que debe solucionarse.

¿Mi dispositivo está afectado?

Aquí hay una lista de dispositivos que hemos encontrado que no montan procfs con hidepid=2:

OEM

Dispositivo

Versión de Android

Fugas de procfs

Asus

Zenfone 5Z

Android 8.0 Oreo

Mora

CLAVE2

Android 8.0 Oreo

No

Básico

PH-1

Pastel Android 9

No

Google

Píxel 2

Pastel Android 9

No

Google

Píxel 3

Pastel Android 9

No

Google

Píxel 3XL

Pastel Android 9

No

Honor

Magia 2

Pastel Android 9

HTC

U12+

Android 8.0 Oreo

Huawei

compañero 20 x

Pastel Android 9

LG

G7 ThinQ

Android 8.0 Oreo

LG

V40 ThinQ

Android 8.1 Oreo

Motorola

Moto G4

Android 8.1 Oreo

No

nokia

7.1

Android 8.1 Oreo

No

OnePlus

6

Android 8.1 Oreo/Android 9 Pie

OnePlus

6T

Pastel Android 9

Razer

Teléfono 2

Android 8.1 Oreo

Samsung

Galaxy Nota 8

Android 8.0 Oreo

No

Samsung

Galaxy Nota 9

Android 8.1 Oreo/Android 9 Pie

No

Samsung

Galaxia S7

Android 8.0 Oreo

No

Samsung

Galaxia S8

Android 8.0 Oreo

No

Samsung

Galaxia S9

Pastel Android 9

No

Samsung

Galaxy S9+ (Exynos)

Android 8.0 Oreo

sony

Xperia XZ1

Pastel Android 9

No

Xiaomi

Mi Mix 2S

Pastel Android 9

Xiaomi

POCO F1

Android 8.1 Oreo

Cómo comprobar si tu dispositivo está afectado

Es bastante fácil verificar si su dispositivo está filtrando información del proceso a otras aplicaciones (en otras palabras, procfs no está montado con hidepid=2). Si bien puedes usar comandos de shell como lo hicimos nosotros, también puedes verificar usando una aplicación desarrollada por topjohnwu. Su aplicación también te permite volver a montar procfs con hidepid=2, si tu teléfono está rooteado.

Descargar ProcGate

¿Habrá una solución?

Sí, esto se arreglará.. Google ahora exigirá que todos los dispositivos monten procfs con hidepid=2. Lo harán cumplir mediante actualizando el Compatibility Test Suite (CTS), un conjunto de pruebas que todos los dispositivos deben pasar para poder utilizar las aplicaciones y servicios de Google Play. Todos los OEM (que quieran vender dispositivos con Google Play Store preinstalado) eventualmente deberán emitir una actualización para volver a montar procfs con hidepid=2 en un futuro próximo. Dado que los dispositivos OnePlus fueron los primeros en ser descubiertos con este problema, OnePlus ya ha sido informado y está trabajando en una solución. Actualizaremos este artículo si otros OEM comentan sobre este error, pero no hay necesidad de preguntarse si el OEM de su dispositivo emitirá una actualización. Si quieren que su actualización pase CTS, deben corregir este error.