jueves, 26 de marzo de 2015

La mitad de los dispositivos Android afectados por una vulnerabilidad

Investigadores de Palo Alto Networks han publicado una alerta en la que informan de una vulnerabilidad en Android que podría permitir la instalación de aplicaciones maliciosas sin conocimiento del usuario.

La vulnerabilidad se ha bautizado como "Android Installer Hijacking" (Secuestro del Instalador Android). Básicamente el problema reside en que durante el proceso de instalación un atacante puede modificar o reemplazar una aplicación legítima con malware sin el conocimiento del usuario. Esto solo afecta a aplicaciones descargadas desde repositorios alternativos o cualquier otra fuente diferente a "Google Play". La aplicación maliciosa podría conseguir acceso total al dispositivo comprometido.

El problema afecta a todos los sistemas Android anteriores a la versión 4.3 y a algunas distribuciones de Android 4.3, un parque que se estima en torno a un 49,5 por ciento de los dispositivos Android actuales.

Como se sabe, Android soporta la posibilidad de instalar aplicaciones descargadas desde la propia tienda de Google o bien desde cualquier otra fuente alternativa. Google Play descarga los paquetes de instalación Android (APKs) a un espacio protegido del sistema de archivos. Sin embargo al descargar desde terceras partes (repositorios alternativos o cualquier otra fuente) los archivos APK se almacenan en una carpeta no protegida (p.ej. /sdcard/) y desde esa localización se instalan directamente. Para completar la instalación siempre se emplea una aplicación del sistema llamada "PackageInstaller".

El problema reside en una vulnerabilidad de "Time of Check to Time of Use" (TOCTOU) en el "PackageInstaller". Este tipo de vulnerabilidades se da cuando se produce un cambio entre el momento en que se realiza una comprobación ("Time of Check") y el momento en que se usa esa comprobación ("Time of Use"). Esto se traduce en que "PackageInstaller" no verifica el archivo APK entre el momento en que se muestran al usuario los permisos necesarios y después de haber aceptado la instalación, por lo que en ese momento se puede reemplazar la aplicación que se está instalando.

La vulnerabilidad de secuestro del instalador afecta a archivos APK descargados en un espacio no protegido porque cualquier otra aplicación puede acceder a dicho espacio, algo que no ocurre en el espacio protegido de la Play Store.

Diferentes escenarios

Se pueden dar varios escenarios para explotar la vulnerabilidad, se puede emplear una aplicación aparentemente benigna, que no requiera permisos especiales, para comprometer otras aplicaciones en el futuro. Por ejemplo si la víctima instala una "App X" aparentemente legítima (que ni siquiera requiere ningún tipo de permisos especiales). Posteriormente, la víctima instala una tienda de aplicaciones totalmente legítima (como la tienda de aplicaciones de Amazon) que permite instalar archivos APK desde el sistema de archivos local. Cada vez que se instalan archivos desde esta tienda se lanza una vista de "PackageInstallerActivity". Sí el usuario intenta descargar una "App Y" desde esta tienda, la "App X" detectará que se lanza la vista de "PackageInstallerActivity" y comprueba si la "App Y" se encuentra en un espacio público (p.ej. en /sdcard) en cuyo caso, mientras el usuario visualiza la pantalla de permisos, la "App X" podría sobreescribir la "App Y". Si el usuario acepta la instalación, se instalará la "App Y" comprometida con el malware y los permisos que el atacante necesite.

También se puede emplear la vulnerabilidad para enmascarar los permisos que la aplicación requiere realmente. La víctima instalará la "App X" aparentemente legítima. Mientras la usa se promociona una "App Y" legitima para su instalación. Si el usuario instala la aplicación se iniciará la vista "PackageInstallerActivity" que no requerirá ningún permiso especial. Y al igual que en el ejemplo anterior mientras el usuario visualiza la pantalla de permisos la "App X" podría sobreescribir la "App Y" con malware. Si el usuario acepta la instalación, se instalará la "App Y" comprometida con el malware ignorando los permisos solicitados.

Recomendaciones

Palo Alto Networks ha publicado un escáner en Google Play para comprobar si la vulnerabilidad puede afectar al dispositivo. Se encuentra disponible desde:
Además ofrece el código del escáner en:

Como es habitual se aconseja a todos los usuarios descargar las aplicaciones de Android desde el repositorio oficial de Google (https://play.google.com/store).

Desde la Android Open Source Project (AOSP) de Google se ha confirmado la publicación de parches para este problema para la distribución Android 4.3 y posteriores. La actualización está disponible desde
El equipo de seguridad de Android también confirma que no han detectado ataques intentando aprovechar esta vulnerabilidad.

Como siempre el problema está en el tempo que los fabricantes se toman para implantar y distribuir las actualizaciones del sistema operativo a sus usuarios.

Amazon, por su parte, también ha solucionado el problema en su tienda de aplicaciones, que puede actualizarse desde www.amazon.com/getappstore

Más información:

Android Installer Hijacking Vulnerability Could Expose Android Users to Malware

una-al-dia (19/02/2014) Android, a vueltas con el problema de los parches que nunca llegan



Antonio Ropero
Twitter: @aropero


No hay comentarios:

Publicar un comentario en la entrada