Cabecera-v2-web.jpg

Vulnerabilidad Janus de Android permite la modificación de aplicaciones sin afectar su firma


Un fallo en los formatos APK y DEX podrí­a permitir que la inyección de código malicioso fuera indetectable como actualización de una aplicación legí­tima.

Android-logo.png

Un equipo de investigadores de la empresa Guard Square, ha hecho pública una vulnerabilidad en los formatos de ficheros APK y DEX que, combinada con el comportamiento de las máquinas virtuales Android, podrí­a permitir la manipulación del código de las aplicaciones sin alterar su firma.

Identificada como CVE-2017-13156 y llamada "Janus", por el dios romano de la dualidad, la vulnerabilidad radica en que un fichero puede ser manipulado de forma que resulte un APK y un DEX válido al mismo tiempo.

El formato DEX es un formato de fichero binario propio de la máquina virtual Dalvik, utilizada hasta la versión 4.4 "KitKat" para ejecutar aplicaciones Android. A partir de esta versión fue sustituida por la máquina virtual Android Runtime (ART) pero el formato DEX se ha mantenido. Los APKs, por otro lado, son ficheros zip basados en el formato JAR que contienen, entre otros, ficheros DEX.

¿Cómo es posible que un fichero sea DEX y APK a la vez?

De una forma bastante curiosa. Por un lado, los ficheros APK permiten introducir bytes arbitrarios al inicio del fichero, antes de las entradas zip. El esquema de firma JAR usado por Android ignora estos bytes y solo utiliza las entradas zip para calcular la firma.

Pero por otro lado, los ficheros DEX permiten la inclusión de bytes arbitrarios al final del fichero. Por tanto, incluyendo uno de estos ficheros al inicio de un APK, un fichero serí­a valido en ambos formatos sin alterar la firma generada para el paquete.


Apk_Dex_Dual.png

Esquema de como realizar la inyección de DEX en un APK. Obtenida de GuardSquare

Un fichero manipulado de esta manera serí­a además ejecutado sin problemas por las máquinas virtuales, tanto Dalvik como ART. El APK serí­a aceptado por la VM, dado que su firma es correcta, pero el que serí­a finalmente ejecutado es el fichero DEX inyectado.

El escenario de mayor riesgo es el de las actualizaciones: la firma es el método de verificación para la instalación de nuevas versiones de una aplicación. Usando esta vulnerabilidad, un atacante podrí­a inyectar un DEX malicioso dentro de un APK legí­timo sin alterar su firma y hacerlo pasar por una actualización del mismo. Una vez instalado, el malware puede aprovechar los permisos aplicados a la versión legí­tima previa para acceder a todo tipo de información sensible o redirigir los datos de la victima a sitios maliciosos.

La vulnerabilidad está presente en versiones recientes de Android (de la 5 en adelante) aunque no afecta a aquellas aplicaciones que corren en Android 7.0 y que han sido firmadas usando el esquema de firma APK v2, que sí­ toma todo el contenido del fichero para generar la firma. La solución al fallo de seguridad ha sido publicada en el boletí­n de seguridad de Android del pasado dí­a 4 de diciembre.


Fuente: hispasec.com


pie.png

CERT-PY | Centro de Respuestas a Incidentes Cibernéticos
Ministerio de Tencnologí­as de la Información y Comunicación (MITIC)

Avda. Gral. Santos c/ Concordia | Telefono: (595 21) 217-9000
República del Paraguay

80x15.png

Versión del Template 1.11