30 de marzo de 2015

ANDROID. La mitad de los dispositivos 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.
Recursos afectados
  •  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 al 49,5 % de los dispositivos Android actuales.
Detalle de la vulnerabilidad 
  • 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.
  •  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
Más información:
Fuente: Hispasec