La vulnerabilidad Janus permite a los atacantes modificar aplicaciones sin afectar sus firmas. Fue descubierto por GuardSquare y Google lo ha solucionado.
Android está instalado en una gran cantidad de dispositivos y eso lo convierte en un objetivo para atacantes maliciosos. Cada mes se siguen descubriendo vulnerabilidades en el sistema operativo móvil de Google, pero la buena noticia es que Google suele ser diligente a la hora de solucionarlos mediante parches de seguridad periódicos que luego se ofrecen a los OEM, quienes luego los envían a dispositivos.
Recientemente, investigadores de seguridad descubrieron una vulnerabilidad que engañó a los usuarios para que permitieran a los atacantes grabar la pantalla de su dispositivo. Ese exploit en particular se solucionó en Android Oreo, pero los analistas de Plaza de la Guardia Recientemente se informó sobre otra vulnerabilidad grave que afecta a las aplicaciones de Android firmadas por esquemas de firma más antiguos.
Plaza de la GuardiaEl informe afirma que el
Janovulnerabilidad (CVE-2017-13156) en Android permite a los atacantes modificar el código de las aplicaciones sin afectar sus firmas. El informe continúa diciendo que la raíz de la vulnerabilidad es que un archivo puede ser un archivo APK válido y un archivo DEX válido al mismo tiempo.Janus aprovecha el hecho de que los bytes adicionales pasan desapercibidos en archivos APK y archivos DEX. El Plaza de la Guardia El informe explica que un archivo APK es un archivo ZIP que puede contener bytes arbitrarios al principio, antes y entre sus entradas ZIP. El esquema de firma JAR solo tiene en cuenta las entradas ZIP, ignorando los bytes adicionales al calcular o verificar la firma de la aplicación.
Continúa explicando que un archivo DEX, por otro lado, puede contener bytes arbitrarios al final, después de las secciones regulares de cadenas, clases, definiciones de métodos, etc. Por lo tanto, un archivo puede ser un archivo APK válido y un archivo DEX válido al mismo tiempo.
Plaza de la Guardia También menciona que un elemento clave de la vulnerabilidad es una característica "inofensiva" de la máquina virtual Dalvik/ART. El informe afirma que, en teoría, el tiempo de ejecución de Android carga el archivo APK, extrae su archivo DEX y luego ejecuta su código. Sin embargo, en la práctica, la máquina virtual (VM) puede cargar y ejecutar tanto archivos APK como archivos DEX. El problema es que cuando la VM obtiene un archivo APK, todavía mira los bytes mágicos en el encabezado para decidir qué tipo de archivo es: DEX o APK. Al encontrar un encabezado DEX, carga el archivo como un archivo DEX. Si no encuentra un encabezado, carga el archivo como un archivo APK que contiene una entrada zip con un archivo DEX. Por lo tanto, puede malinterpretar archivos duales DEX/APK.
Plaza de la Guardia dice que un atacante puede aprovechar esta característica de dualidad de la VM para agregar un archivo DEX malicioso a un archivo APK normal sin afectar su firma. El tiempo de ejecución de Android aceptará el archivo APK como una actualización válida de una versión anterior legítima de la aplicación, pero Dalvik VM cargará el código del archivo DEX, al que se le ha inyectado código malicioso.
Normalmente, cada vez que un usuario instala una versión actualizada de una aplicación, el tiempo de ejecución de Android verifica la firma de la aplicación para garantizar que coincida con la versión anterior. Cuando la verificación es positiva, la aplicación actualizada obtiene los permisos que se le habían otorgado a la aplicación original. De esta manera, los atacantes pueden utilizar la vulnerabilidad Janus para eludir el proceso de verificación de firmas e instalar código no verificado en los dispositivos de usuarios desprevenidos.
Lo que es aún peor es que este código no verificado puede obtener acceso a permisos potentes. Esto da lugar a algunas posibilidades graves. Plaza de la Guardia estados:
"Un atacante puede reemplazar una aplicación confiable con altos privilegios (una aplicación del sistema, por ejemplo) por una actualización modificada para abusar de sus permisos. Dependiendo de la aplicación de destino, esto podría permitir al pirata informático acceder a información confidencial almacenada en el dispositivo o incluso apoderarse del dispositivo por completo. Alternativamente, un atacante puede pasar un clon modificado de una aplicación sensible como una actualización legítima [que] puede verse y comportarse como la aplicación original pero inyectar un comportamiento malicioso".
La compañía agregó que hasta el momento no habían visto ninguna aplicación que explotara a Janus en la naturaleza. La otra buena noticia es que la vulnerabilidad requiere que el usuario instale una actualización maliciosa desde una fuente fuera de Google Play Store. Por lo tanto, los usuarios que limitan la instalación de aplicaciones a Play Store están protegidos.
La vulnerabilidad Janus afecta a los dispositivos que ejecutan Android 5.0+. Las aplicaciones que han sido firmadas con el esquema de firma APK v1 se ven afectadas. Los APK firmados con el esquema de firma v2 están protegidos contra la vulnerabilidad. Esto requiere que los APK se ejecuten en dispositivos que admitan el último esquema de firma (Android 7.0 y posterior). El esquema v2 está protegido porque, a diferencia del esquema v1, considera todos los bytes del archivo APK.
"Las versiones más antiguas de aplicaciones y las aplicaciones más nuevas que se ejecutan en dispositivos más antiguos siguen siendo susceptibles. Los desarrolladores deberían al menos aplicar siempre el esquema de firma v2", Plaza de la Guardia estados.
Plaza de la Guardia informó este problema a Google el 31 de julio de 2017 y recibió acuse de recibo el mismo día. El informe de la compañía dice que Google lanzó un parche para sus socios en noviembre y publicó el error (CVE-2017-13156) en el Boletín de seguridad de Android el 4 de diciembre de 2017. La vulnerabilidad tiene Se ha solucionado en el parche de seguridad de Android de diciembre de 2017.. Por otra parte, se ha confirmado que las aplicaciones F-Droid de su repositorio oficial son seguras. Por último, se ha confirmado que la vulnerabilidad ha sido reparada APKMirror.
Fuente: Plaza de la Guardia