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.
Precio: Gratis.
4.
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.
Precio: Gratis.
4.2.
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 |
Sí |
Mora |
CLAVE2 |
Android 8.0 Oreo |
No |
Básico |
PH-1 |
Pastel Android 9 |
No |
Píxel 2 |
Pastel Android 9 |
No |
|
Píxel 3 |
Pastel Android 9 |
No |
|
Píxel 3XL |
Pastel Android 9 |
No |
|
Honor |
Magia 2 |
Pastel Android 9 |
Sí |
HTC |
U12+ |
Android 8.0 Oreo |
Sí |
Huawei |
compañero 20 x |
Pastel Android 9 |
Sí |
LG |
G7 ThinQ |
Android 8.0 Oreo |
Sí |
LG |
V40 ThinQ |
Android 8.1 Oreo |
Sí |
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 |
Sí |
OnePlus |
6T |
Pastel Android 9 |
Sí |
Razer |
Teléfono 2 |
Android 8.1 Oreo |
Sí |
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 |
Sí |
sony |
Xperia XZ1 |
Pastel Android 9 |
No |
Xiaomi |
Mi Mix 2S |
Pastel Android 9 |
Sí |
Xiaomi |
POCO F1 |
Android 8.1 Oreo |
Sí |
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.