Ya lo habéis oído todos: se ha descubierto una vulnerabilidad de Android que afecta al 99% de dispositivos y que permitiría a un atacante reemplazar ciertas APKs por un fallo en el sistema criptográfico y de actualizaciones.
Antes de seguir, vamos a pararnos un poco. Intentemos explicar para todo el mundo y sin omitir detalles qué es lo que realmente está pasando. Como siempre, vamos primero a las bases: exploremos las aplicaciones de Android, por qué van firmadas y cómo se actualizan.
¿Quién puede actualizar aplicaciones?

Cualquiera mínimamente familiarizado con Android sabe que las aplicaciones están empaquetadas en archivos APK: básicamente, un archivo ZIP con el ejecutable (podríamos decir que es como si fuese un .EXE), información y recursos e imágenes de la aplicación.
Android tiene todas las aplicaciones de vuestro teléfono en archivos APK en el sistema. A la hora de actualizar una aplicación, la cosa es sencilla: reemplazamos el APK viejo con el nuevo . Puede que haga más tareas, pero esto es lo principal.
Ahora bien, hay un problema potencial: ¿qué pasa si el APK nuevo no es del mismo desarrollador? Por ejemplo, ¿qué debería hacer Android si tú creas una actualización de Gmail y quieres instalarla sustituyendo la que ya tienes? La respuesta obvia es que no debería dejarte. Android sólo permite actualizaciones en las que el APK nuevo ha sido creado por el mismo que creó el APK viejo. Para ello usa un proceso llamado firma criptográfica.
En qué consiste la firma de un APK

Esquema de firma digital. Fuente original.
Plantearos que la firma criptográfica es como sellar un papel. Sólo tú tienes ese sello, y si alguien escribe algo más en el papel tendrá que hacerlo por encima del sello (usad la imaginación), de tal forma que sabrás que se ha modificado.
El proceso más técnico, pero simplificado, es el que sigue:
- Obtenemos la huella digital del APK. Esta huella o hash es como tu huella dactilar: es única para ese APK y no se repite (teóricamente). Si algo cambia, el _hash_ cambia también.
- Ciframos el _hash_ con la clave privada del desarrollador. Esta clave sólo la tiene él y no la comparte con nadie más, por algo es privada. Ese hash cifrado es la firma digital.
Vayamos ahora a la parte de verificación de la firma:
- Recibimos la firma digital, y la desciframos con la clave pública del desarrollador.
- Calculamos el _hash_ del APK que hemos recibido y comparamos con lo que hemos descifrado de la firma digital. Si coinciden, la firma es válida.
Como el hash es único para cada APK, nos aseguramos de que el paquete no se ha modificado desde que lo creó el desarrollador. Por otra parte, si un mensaje se cifra con una clave privada sólo se puede descifrar con la clave pública correspondiente; y con esa clave pública no podrás descifrar mensajes de ninguna otra clave privada. De esta forma que te aseguras que sólo ha podido ser el desarrollador quien ha creado el paquete.
Es decir, que tal y como está planteada la firma digital, es un certificado imposible de falsificar (como siempre, en teoría) que te asegura que el desarrollador fue el que creó esa aplicación y que nadie más la ha modificado.
A la hora de instalar la actualización, Android comprueba dos cosas: que la firma del APK sea válida y que la clave privada sea la misma con la que se firmó la versión anterior. Si el paquete se ha firmado con otra clave, el sistema lo reconocerá como una aplicación nueva y no sustituirá a la vieja.
Este método asegura que sólo el desarrollador original, y nadie más que él, puede crear actualizaciones para sus aplicaciones.
¿Dónde está la vulnerabilidad?
Una vez que ya sabemos perfectamente cómo se actualiza una aplicación de Android, veamos dónde se ha encontrado la vulnerabilidad. Bluebox no ha desvelado todos los detalles del fallo, ni cómo funciona ni cómo explotarlo. Sólo ha dicho dónde está y en qué consiste.
Se trata de un fallo en el sistema de verificación de la firma de las aplicaciones. Gracias a él, alguien podría modificar un APK de tal forma que la firma digital seguiría siendo válida. Por ejemplo, podría cambiar el APK de Gmail y Android seguiría pensando que no ha sido modificado desde que lo firmó Google al crearlo.
Una vez que podemos modificar los paquetes sin invalidar la firma, alguien podría introducir código malicioso en un APK conocido sin que el sistema lo detecte. Básicamente, pueden conseguir que instales una aplicación maliciosa disfrazada de aplicación conocida y confiable.
Un ejemplo de escenario de ataque: te envían un enlace diciendo que ha salido una nueva actualización de Google Maps. Descargas el paquete (un APK de Google Maps firmado por Google), te aparece el aviso preguntando si quieres actualizar, aceptas y listo. Android no detecta que en realidad ese paquete ha sido modificado y tiene un troyano que permitirá a un atacante obtener acceso a tu teléfono.
Al ser una actualización no necesita pedirte permisos: ya se los diste al instalar la aplicación original. Quizás no pase nada si instalas una actualización maliciosa de Angry Birds: al fin y al cabo no tendrá muchos más permisos que la aplicación original. Pero, ¿y si la actualización es para Gmail, por ejemplo? Tendrían acceso a todos tus correos, a Internet... Perfecto para montar una _botnet_ o para robar tus cuentas.
Incluso hay un esceneario peor: una actualización de una aplicación de sistema que tenga todos los permisos posibles. El atacante tendría acceso ilimitado a tu sistema mientras tú piensas que has instalado una actualización inocente para mejorar algún ajuste del móvil.
¿Cómo protegernos?
Este fallo afecta a cualquier tipo de aplicación de Android. La cuestión es cómo puede hacerte llegar el atacante esa aplicación modificada.
La recomendación es no instalar ninguna aplicación fuera de Google Play.
Para que te llegasen estas aplicaciones maliciosas a través de una actualización de Google Play, los atacantes deberían de haber entrado en los servidores de Google y enviado una actualización manualmente. No es precisamente una tarea fácil, así que podéis contar con que usar el mercado oficial de Android, Google Play, es seguro.
La única forma que nos queda es instalando aplicaciones de orígenes no oficiales: descargándolas de otros mercados con menos controles y seguridad, o simplemente haciendo un clic en una página web que descargue el APK.
En resumen: si queréis protegeros frente a esta vulnerabilidad, desactivad la opción de instalar las aplicaciones de orígenes desconocidos.
Google tiene difícil corregirlo

El fallo es grave. Se notificó a Google y demás fabricantes en febrero, pero sólo Samsung ha podido preparar un parche para su S4. Como afecta a casi todos los teléfonos desde Android 1.6, y teniendo en cuenta el ritmo de actualizaciones de Android, un buen número de teléfonos se van a quedar con él para siempre.
Muchos usuarios poco experimentados pueden caer en la trampa de confiar en estas actualizaciones, ya que pueden parecer totalmente legítimas y no resultar tan extrañas como un juego de pinball que pide acceso a tus SMS. Incluso podrían caer usuarios más avanzados: con distribuir enlaces de "Nueva versión filtrada de Gmail para Android" valdría para infectar un buen número de teléfonos de gente que conoce perfectamente el sistema.
Con fallos como este, cada vez se hace más necesaria una vía de actualizaciones rápidas por parte de Google y los fabricantes. Al menos a mí no me parece serio que una gran parte de los móviles con Android se vayan a quedar con un fallo grave de seguridad porque no puedan actualizarse a siguientes versiones del sistema.
Ver 28 comentarios
28 comentarios
TioVinagre
jajaja
esto no pasa con...
zakatolapan
Recordemos que los usuarios principiantes no tienen permitido instalar aplicaciones que no sean de la tienda. Hay que ir manualmente a una opción de configuración y aceptar una advertencia de peligro para que esto sea posible.
jgarciaherreros
¿Alguien sabe qué limitaciones tiene android a la hora de instalar parches del sistema operativo como hace linux o windows por ejemplo? Vale que un terminal con un procesador de 600Mhz y 256 MB de RAM no se pueda actualizar a Jelly Bean, pero ¿no puede instalar algo que modifique una pequeña parte del código del sistema que tiene instalado para arreglar estos fallos?
mirsof
mmm no entiendo porque tanta alarma ...
digo la gran mayoría de las personas que se baja fuera del google play es porque bajan aplicaciones piratas , no digo que haya aplicaciones buenas fuera de la tienda porque yo también las he bajado , pero esas se podría considerar como de des arrolladores "Confiables" porque aunque el bug no existiera ... si te bajas un juego pirata se puede modificar de tal forma que el usuario no se diera cuenta que tiene mil cosas detrás..
Así hay tantas aplicaciones en foros modificadas con troyanos en Internet así que solo hay que tener un poco de sentido comun , como en el caso de las PC ya que no te la pasas instalando todas las aplicaciones que te encuentres por ahi ... sin saber quien la subió.
Escapology
¿Pero eso de modificar un APK y conservar la firma no es algo que siempre se ha podido hacer en Android? Lo dijo por todos los juegos piratas para Android que han sido modificados para que no compruebe la licencia o para por ejemplo ofrecer gratis todos sin micropagos.
royendershade
Si dispositivos como la psp (el primer ejemplo que me viene a la cabeza) pueden actualizarse tan facilmente, llegando a hacer modificaciones importantes del sistema aun a bajo nivel, no se por que no hacen lo mismo con Android, la diferencia de complejidad no debe ser muy alta.
elpetakas
En android deberían simplificar el proceso de actualización de terminales, porque luego pasan cosas de estas, y millones de terminales con android sin parche de seguridad y sin poder actualizar.
Quien se piense que android es seguro está muy equivocado, hay que andarse con pies de plomo, cualquier app de terceros puede vulnerar la privacidad del teléfono y transferir datos personales, mandar sms, y rastrear el uso de tu teléfono.
También me atrevería a decir que las aplicaciones de la Play Store no pasan filtros de calidad suficientes, ni de rendimiento, ni de batería, apenas de seguridad.
Google gana una parte muy importante del dinero que se genera de las apps que te inundan el teléfono con publicidad y les da igual la experiencia de sus usuarios si resulta ser la publicidad demasiado invasiva, mientras ellos ganen dinero todos contentos, los filtros de Google play son de risa, y el que se come toda la "basura" es el usuario, al principio todo bien, pero luego vienen los llantos y los lloros.
Demasiada libertad a veces significa menos libertad, en otras plataformas eres libre de instalar lo que quieras sin ningún tipo de miedo ni restricción, en android el rendimiento puede caer en picado por instalar X aplicación indeseada, incluso si es descargada de Google Play, luego vuélvete loco para buscarla.
Saludos.
luix_al
Sería interesante que las updates "críticas" (como éstas de seguridad) las pudiera liberar google directamente para todos los firmwares. El problema es que para poder hacerlo se quitaría libertad a los fabricantes, que no podrían toquetear hasta el último resquicio (como hace samsung).
Para mi la mejor solución sería algo como "si mantienes esta parte de tu firmware compatible con ésto, google se encarga de los updates de seguridad y llevarás el badge 'Google Secure', si no... que te zurzan".
hjvpjhb
A mí markets como F-Droid, donde todo el software es de código abierto me inspiran bastante más confianza que Google Play. Aptoide es verdad que da más regomello, pero en realidad lo que me cabrea más es el abuso continuado de las aplicaciones "legítimas".
¿Por qué narices tantos y tantos programas quieren leer mi IMEI, mi número de teléfono y el número de serie de mi teléfono? Acaso cuando consulto Gmaps, o Facebook desde mi ordenador me piden el número de teléfono o el número de serie de la placa base de mi ordenador? ¿Y qué c*ño es eso de que un programa chorra como uno para usar el flas como una linterna cuyo nombre no recuerdo, quisiera leer mis contactos y poder enviar SMS porque él lo vale?
Y es que no te queda otra que aceptarlos, porque prácticamente todos los programas son igual de espías, hay poquitos porgramas decentes que sólo pidan lo que necesitan para funcionar, y cuando soy consciente de que existen alternativas decentes intento usarlas. De nuevo recomiendo el impagable F-Droid: tiene pocas aplicaciones, la interfaz tanto de la web como de la aplicación para el móvil, es espartana a más no poder, pero las aplicaciones que tienen so nde código abierto y la gente de F-Droid las revisa, cosa que si bien no es la solución perfecta (la solución perfecta sería que un p*to gestor de wifis no pretenda saber el teléfono y la dirección de mi tía, por ejemplo), sí que da más tranquilidad.
Ya, ya sé que rooteando le SO de mi móvil e instalando aplicaciones como Aplicaciones Sospechosas o LBE Privacy Guard puedo capar esos inaceptables permisos, pero la mayoría de los usuarios no saben rootear su Android o no saben adónde acudir para que se lo rooteen.
Así que como digo, me preocupa bastante más el abuso constante y la constante invasión de mi privacidad que "legítimamente" cometen los programas para Android que el eventual riesgo de bajarme algo pirateado y que me robe la información que por otra parte ya m están robando el resto de aplicaciones que tengo instaladas (porque desde luego no pueden obternet mucho más. No soy tan imbécil como para realizar operaciones bancarias o compras en Internet por wifi, y mucho menos desde un móvil...).
Carlos Sanz
Vamos a ponernos conspiranoicos:
Esto es una estrategia de Google y sus allegados para que la peña:
1.- Sólo utilice Google Play y/o tiendas de fabricantes
2.- Para que la peña tenga miedo y liquide sus teléfonos viejos y renueve.
Es una posibilidad lógica y posible ¿no? y después de lo de prisma y demás...
Piensa mal y acertarás.
sathwan
menudo boquetazo de seguridad. luego decimos que el softwate libre es 100% seguro y tal.
qué hacer con móviles antiguos que no tienen acceso al market 'oficial'? pues un incremento en la tasa de robo de datos y delitos por el estilo. viva android!
vivaldibonao
Demasiada mucha y alarma por algo que probablemente afecte a unos pocos y curiosamete afectara a los pocos que siempre estan inventando y sabran como protegerse. Me considero un usuario avanzado de Tecnolog. y no he tenido la necesidad nunca de instalar nada fuera del google play, es más ni lo he intentado y mi telefono no lo permite a menos que no active esa caracteristica. Ni el de mi amigos no conosco a ninguno que instale nada fuera de google play, igual que apple, no conozco a ninguno que instale nada fuera de la appstore.