La mayoría de los arquitectos de seguridad móvil y desarrollo de aplicaciones son conscientes de los peligros de ejecutar sus aplicaciones en dispositivos rooteados (o Jailbroken en terminología iOS). En Verimatrix compartimos esa preocupación, por lo que la detección de root y jailbreak es una de las capas defensivas integradas en nuestras herramientas avanzadas de seguridad móvil.

Este blog pretende examinar algunos de los conceptos erróneos que se han creado en torno a los dispositivos rooteados y las medidas de seguridad necesarias para migrar los riesgos.

En primer lugar, ¿qué es el rooting? Un dispositivo móvil está rooteado cuando un usuario o una aplicación obtiene acceso a partes del entorno operativo a las que no debería.

Los sistemas operativos modernos ejecutan cada aplicación en su propia caja de arena, lo que impide que una aplicación tenga acceso incontrolado al teléfono, a los datos y a otras aplicaciones que se ejecutan en el teléfono. Rootear el teléfono es el acto de romper algunas o todas estas cajas de arena, dando más control sobre el teléfono y sus aplicaciones.

Una aplicación que se ejecuta en un teléfono rooteado es más vulnerable al malware, una aplicación de juegos es más sospechosa de hacer trampas y una aplicación de streaming de vídeo corre más riesgo de piratería.

La detección de raíces es binaria

Un dispositivo está rooteado o no lo está, ¿verdad? Por desgracia, no es tan sencillo. Hay muchos matices de gris.

En una visión tradicional del mundo de los administradores de sistemas, el usuario root es el que tiene plenos derechos de administrador sobre el ordenador. Este usuario puede hacer lo que desee con el sistema.

Cuando se trata de móviles, las cosas no son tan sencillas. La expresión "rooteado" se utiliza para describir cualquier escalada de privilegios que pueda haber obtenido un usuario o una aplicación. Puede tratarse de derechos completos de administrador o de un conjunto limitado de derechos de acceso adicionales en el teléfono.

Por ejemplo, una de las razones más comunes para rootear un teléfono es cambiar el aspecto predeterminado de la interfaz de usuario.

Esto significa que, en lugar de una única comprobación sí/no, la detección de root debe ser una colección de muchas microcomprobaciones del sistema.

Algunos dispositivos incluso salen de fábrica sin estar totalmente bloqueados. Estos dispositivos están en efecto arraigados.

Las técnicas de detección son bien conocidas

Si buscas rápidamente en Google, encontrarás respuestas en Stackoverflow y proyectos de código abierto que afirman detallar todo lo que tu aplicación debe hacer para detectar correctamente un teléfono rooteado. Las soluciones que proponen estas páginas son relativamente simplistas, lo que significa muchos falsos positivos y también muchos dispositivos rooteados perdidos, lo peor de ambos mundos.

La detección de root desarrollada profesionalmente adopta un enfoque de grano mucho más fino para su detección. Sondea suavemente el sistema operativo para ver qué recursos y permisos están expuestos en lugar de un enfoque de mazo.

El enraizamiento siempre es malicioso

Los datos de Verimatrix muestran que el 3% de los dispositivos a nivel mundial declaran estar rooteados, y en algunas geografías aumenta hasta el 8%.

Una de las razones más comunes para rootear un teléfono es eliminar las aplicaciones preinstaladas no deseadas.

La ciberseguridad consiste en equilibrar el riesgo empresarial y la detección de root ahora es diferente. ¿Es más costoso bloquear a un usuario legítimo o pasar por alto a un usuario que se ejecuta en un dispositivo rooteado? Como los usuarios suelen tener motivos benignos para rootear, los falsos negativos suelen ser más perjudiciales que los falsos positivos.

En última instancia, una buena solución de detección de root minimizará ambas cosas y sólo reportará como rooteados los dispositivos que realmente lo estén. Por supuesto, como ya se ha dicho, no siempre se trata de una respuesta binaria sí/no. Se necesita experiencia para encontrar el equilibrio adecuado.

La detección de raíces sólo debe realizarse una vez

El panorama de las amenazas evoluciona tan rápido como el ecosistema móvil. Su detección de root debe evolucionar con él.

Los frameworks utilizados para rootear dispositivos se actualizan constantemente para eludir la detección de root. A esto lo llaman "ocultar el root". Esto significa que la detección de root debe ser cada vez más sofisticada.

Del mismo modo, minimizar los falsos positivos significa que la detección de root debe comprender los dispositivos y el funcionamiento de su aplicación. Con nuevas versiones de Android e iOS cada año, y un flujo constante de pequeñas actualizaciones y nuevos dispositivos, la comprensión incorporada en una solución de detección de root debe actualizarse constantemente.

La detección de raíces es la única medida de seguridad necesaria

Corrijamos esta idea errónea con un tópico muy manido: la seguridad se aplica por capas. Aunque es un tópico, no deja de ser cierto. La detección de raíces es sólo una capa. Comprueba que el sandbox del sistema operativo en el que se ejecuta la aplicación está intacto. No impide que un atacante saque tu aplicación de un teléfono para realizar ingeniería inversa. No impide que un atacante cambie tu código o vuelva a empaquetar tu aplicación. Y no impide que tu aplicación se ejecute en un emulador o sea analizada con las innumerables herramientas y técnicas utilizadas por los atacantes.

Las soluciones de Blindaje de Verimatrix proporcionan una seguridad integral de aplicaciones móviles de nivel empresarial.

Vea cómo podemos ayudarle a proteger su empresa:

- Aplicaciones móviles y API
- Contenidos de vídeo
- Pagos digitales