Anatomía de una vulnerabilidad – Explicamos la debacle del “Android Master Key”

Si lees los periódicos o estás al tanto de la seguridad informática, habrás oído que existe una vulnerabilidad, ya corregida por Google, que afectaba al 99% de los dispositivos Android.

Todo comenzó con unos titulares explosivos de una startup de seguridad para móviles: Bluebox. En su blog proclamaban que habían descubierto la master key de Android por lo que el 99% de los dispositivos eran vulnerables a un ataque.

Sin embargo el titular es bastante metafórico porque no mostraba ninguna master key, ni nada que se le pareciera. Lo que si encontraron es una manera de modificar los archivos de instalación sin que Android se diera cuenta.

.APKs

Los ficheros con extensión APK (Android Packages) son los que usa Android para instalar una aplicación. Básicamente son un archivo ZIP en el que encontramos una carpeta llamada META-INF que contiene la suma de verificación de los archivos que contiene el paquete.

1-apk-list-orig

La idea es que si alteras cualquier fichero, por ejemplo cambiándolo por otro modificado, Android lo detectará y bloqueará la instalación.

Android usa una librería de Java para comprobar que cada fichero se corresponde con la verificación y que por lo tanto es el original

1-manifest

El sistema parece funcionar.

Es fácil cambiar el APK usando cualquier herramienta estándar de ZIP, como en el ejemplo:

 2-apk-list-changed

Pero cuando intentamos instalarlo, nos encontramos que ha detectado el cambio y no podemos continuar con la instalación.

2-changed-inst

Hasta ahora todo marcha bien.

La vulnerabilidad

La siguiente pregunta fue la que se hicieron los chicos de Bluebox ¿qué ocurre si hay dos ficheros con el mismo nombre dentro del APK?

3-apk-list-hacked

Los ficheros ZIP no permiten dos ficheros con el mismo nombre porque no sabrían cual de los dos deberían descomprimir. Pero esto no implica que con una herramienta adecuada puedes incluir dos archivos con el mismo nombre en un fichero APK.

¿Sabes lo que ocurre?

La verificación de Android se aplica al primero pero extrae el segundo. En otras palabras, puedes modificar el archivo que quieras, por lo que fácilmente puedes instalar malware o cualquier otra cosa que se te ocurra haciéndolo pasar por una aplicación original.

3-hacked-inst

¿Existe una solución?

Bluebox notifició este vulnerabilidad a Google quien ya ha creado un parche que bloquea este agujero de seguridad.

La actualización busca nombres de archivo duplicados dentro del fichero APK, asegurándose que solo hay una versión de cada fichero del manifiesto. Si encuentra un nombre duplicado, da un mensaje de error y para la instalación.

1-patched-code

¿Qué puedo hacer?

Obviamente, aunque ya existe una solución, tienes que esperar hasta que el fabricante de tu dispositivo publique una actualización de tu firmware. Y eso puede llevar su tiempo.

Así que mientras no recibas la actualización te aconsejamos que:

No salgas del Google Play Store, donde suponemos que Google, ahora que está avisada, estará prestando especial atención a aplicaciones que usen este truco.

Usa un antivirus para Android que escanee las aplicaciones antes de que las instales. Por supuesto que te recomendamos el de Sophos, es bueno y gratis.

No podemos asegurarte al 100% que con estos dos trucos estés libre de riesgos, pero por lo menos estarás mucho más protegido.

 

Para manteneros al día de las últimas amenazas haceros fans de nuestra página de Facebook o síguenos en Twitter para intercambiar experiencias en torno al mundo de la seguridad. Si deseas recibir nuestro boletín semanal de seguridad en tu correo electrónico, suscríbete en la siguiente aplicación:

Dejar un comentario

Your email address will not be published. Required fields are marked *