El blindaje de Android que impide a las apps espiar los datos de otras apps y cómo el malware logra burlarlo

A veces imaginamos el malware como ommipotente y omnipresente, pero la arquitectura del sistema operativo Android limita y dificulta mucho su funcionamiento

Apksydatos
1 comentario Facebook Twitter Flipboard E-mail

Tendemos a extrapolar a nuestros móviles el conocimiento clásico de informática de nuestros ordenadores, y no siempre funciona igual. Uno de estos casos es en el modo en el que Android gestiona y aisla los datos de las aplicaciones entre sí, para que una aplicación no pueda obtener a los datos de otras.

Los más viejos del lugar recordarán la época del Android del salvaje Oeste donde los datos de las apps se guardaban en ocasiones en lugares públicos, pero desde hace ya bastantes años, Android es muy receloso de los datos de las apps, para que sólo la misma app pueda acceder a ellos, salvo contadas excepciones.

Apps aisladas entre sí

Desgraciadamente el malware sigue acechando a Android a pesar de todos los esfuerzos de Google, y muchos seguimos pensando en estas apps maliciosas equiparándolas a los virus de Windows de hace una década: multiplicándose, expandiéndose mágicamente y espiando de todo, incluso otras apps como la del banco.

Lo cierto es que esto es bastante más complicado de lo que parece, pues Android hace uso del aislamiento de aplicaciones de Linux para que cada aplicación funcione en su propia "burbuja", sin acceso fuera de la misma salvo con los puntos de conexión establecidos por las API de Android. Es lo que se conoce como sandboxing.

Cada aplicación Android vive en su propia burbuja y no puede acceder a los datos de las otras apps ni del sistema, salvo comunicándose con las API del sistema

Cada aplicación tiene un identificador único asociado a su proceso que aisla sus recursos, incluidos sus datos, para que otras apps no puedan interceptarlos, leerlos, modificarlos o borrarlos. El sandboxing de Android se ha ido reforzando con las distintas versiones de Android desde hace años, tal y como recoge Google en su documentación.

Owner Google lleva años limitando el acceso a todos los archivos en Android, como es el caso de Scoped Storage que conocimos en Android Q

Desde Android 9, por ejemplo, las apps deben ejecutarse en sandboxes de SELinux independientes, evitando que dejen sus datos accesibles al resto, y desde Android 10 Google ha limitado versión tras versión el acceso a los archivos del sistema.

Todo esto se resume en lo siguiente: una aplicación no puede acceder a los datos de otra, maliciosa o no, sin que dichas apps se hayan configurado explícitamente para que así sea. Sí es posible compartir datos entre apps de un mismo desarrollador y que estén firmadas con la misma firma, como por ejemplo Messenger y Facebook o WhatsApp y WhatsApp Business.

Entonces, ¿cómo lo hace el malware?

El malware optar por el camino más sencillo a la hora de intentar burlar este tipo de protecciones. En lugar de lidiar con el sandboxing del kernel de Linux, la solución más popular por la que optan las apps maliciosas es, en vez de acceder físicamente a los datos, espiar lo que sale en la pantalla, con el permiso de accesibilidad.

Para los creadores de malware es más fácil abusar del permiso de accesibilidad que burlar el sandboxing de Android

El permiso de accesibilidad es muy potente pues permite a una app ver y controlar lo que pasa en el, convirtiéndose en la principal herramienta para el malware. En lugar de acceder a los datos del banco (y posiblemente tener que descifrar su base de datos, etc), es más fácil espiar lo que se muestra en la pantalla, esperar a que el usuario introduzca sus credenciales, capturarlas y enviarlas por Internet al dueño del malware. Si el banco envía algún código de verificación por SMS, el código puede también ser capturado con este permiso.

Fedex Ejemplo de malware que aprovecha el permiso de accesibilidad para sus actividades maliciosas

Otro modo más radical, aunque está un poco en desuso hoy en día, es que el malware aproveche un agujero de seguridad para obtener permiso root. Con permiso root, una aplicación tiene control total para acceder al almacenamiento del móvil, incluyendo los datos privados de otras aplicaciones. Con miles de modelos de móviles Android ahí fuera, cada uno con una versión ligeramente distinta de versión, este tipo de exploits hace ya años que dejaron de ser prácticos.

No obstante, mucho malware opta por el modo más fácil y que requiere menos esfuerzo: el phishing. Es más fácil para una app maliciosa hacerse pasar por otra y que el usuario introduzca sus credenciales en ella creyendo que es la app del banco, o redirigir a páginas webs falsas, que burlar las numerosas protecciones del sistema operativo para acceder a los datos en bruto.

Imagen | Con elementos de OpenClipart-Vectors en Pixabay

En Xataka Android | Google Home para pros: así puedes crear scripts para controlar tus dispositivos inteligentes

Comentarios cerrados
Inicio