sábado, 9 de diciembre de 2017

IDEs y herramientas de ingeniería inversa afectados por la vulnerabilidad ParseDroid

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.

PoC del ataque, con exito en el robo de ficheros.
Obtenida de https://research.checkpoint.com/parsedroid-targeting-android-development-research-community/


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.

PoC del ataque de ejecución de código arbitrario en servicios web que usen APKTools. 
Obtenida de https://research.checkpoint.com/parsedroid-targeting-android-development-research-community/



PoC del ataque de ejecución de código arbitrario en servicios web que usen APKTools. 
Obtenida de https://research.checkpoint.com/parsedroid-targeting-android-development-research-community/
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/