La vulnerabilidad,
descubierta por varios investigadores de CheckPoint, tiene como objetivo no
solo los IDEs más usados para desarrollar aplicaciones Android (Android Studio,
Intellij), sino que además afectan a herramientas de investigación en
seguridad, como APKTool y Cuckoo-Droid.
Todo empezó con un
primer estudio centrado en la herramienta de reversing APKTool. Estudiando la
forma en que los ficheros XML eran cargados el equipo descubrió que la función
que realiza esta tarea no deshabilita las referencias a entidades externas.
Esto produce una vulnerabilidad XXE en los procesos de decompilado y
construcción de APKs.
Mediante un fichero
'AndroidManifest.xml' malicioso, un atacante podría explotar esta
vulnerabilidad y potencialmente tener acceso a todos los ficheros del sistema,
para posteriormente enviarlos a un servidor bajo su control, por poner un
ejemplo de escenario posible.
La función vulnerable
en cuestión, denominada 'loadDocument', es parte de un procesador de XML
llamado "DocumentBuilderFactory". Lo grave es que este procesador es
también utilizado en algunas de las más importantes interfaces de desarrollo
para Android, como Android Studio, Intellij y Eclipse.
Estos IDEs no solo
serían vulnerables al fallo descrito más arriba, sino que además la información
podría ser accedida través del uso de un repositorio especialmente manipulado
que contenga una librería AAR (Android Archive Library) maliciosa con el payload
del ataque XXE.
Volviendo a APKTool,
otra vulnerabilidad descubierta permitiría la ejecución de código arbitrario en
el equipo de la victima. Para ello se explota un fallo introducido al leer el
fichero de configuración "APKTOOL.YML". Este fichero puede contener
una sección llamada 'unknownFiles' a través de la cual se puede especificar
rutas cuyo contenido será guardado durante la reconstrucción del APK en un
directorio especificado previamente.
Manipulando estas
rutas, y aprovechando que no son validadas, un atacante podría almacenar
ficheros arbitrarios en cualquier lugar del sistema, e incluso ejecutar código
de manera remota. De hecho, los investigadores ponen como ejemplo un servicio
web similar al proporcionado por APKTool para decompilar APKs en linea. Usando
esta vulnerabilidad, han sido capaces de ejecutar código remoto en la máquina
donde se aloja la aplicación web.
Los fabricantes de
los IDEs y de APKTool ya han solucionado los problemas encontrados, y las
versiones no vulnerables de sus productos ya están disponibles.
Más información:
- ParseDroid: Targeting The Android Development &
Research Community: https://research.checkpoint.com/parsedroid-targeting-android-development-research-community/
Fuente: Hispasec