RSAC: Ingeniería inversa de una aplicación Android en cinco minutos

Una de las tácticas más comunes para la propagación de malware -o incluso de aplicaciones malas- en Android es el reempaquetado de aplicaciones. Durante su presentación en la Conferencia RSA, Pau Oliva Fora, de viaForensics, demostró que sólo se tarda unos minutos en aplicar ingeniería inversa a las aplicaciones de Android.

Conseguir la aplicación
El primer paso para aplicar ingeniería inversa a una aplicación, dijo Fora, era conseguir una aplicación. Aunque parezcan elegantes en el teléfono, las aplicaciones de Android (o APK) son en realidad archivos ZIP con una nueva extensión. En su interior se encuentra todo lo que la aplicación necesita para funcionar, desde el código hasta los medios que pueda necesitar.

Hay varias formas de conseguir un APK. Si tienes una aplicación a la que te gustaría hacer ingeniería inversa en tu Android, puedes utilizar un gestor de archivos como ASTRO para guardar una copia de seguridad en una tarjeta SD. También es posible conectar tu Android a un ordenador y luego utilizar Android Debugging Bridge para transferir la aplicación a tu PC. También puedes utilizar herramientas online para sacar los APK de Google Play.

Desmontando
Una vez que tengas un APK con el que trabajar, tendrás que convertirlo en algo más utilizable. Para esto, Fora presentó dos opciones. Puedes desensamblar tu objetivo con una herramienta como Apktool, que convertirá el archivo de código de aplicación compilado del APK (Dalvik Executable, o DEX) en un lenguaje ensamblador como Smali. O puedes descompilar, que convierte el DEX en un archivo Java (JAR), y luego en Java.

Fora señaló que debido a que algunos datos pueden perderse en el proceso de descompilación, es mejor utilizar un descompilador que fue hecho con Android en mente. Esto se salta el paso del JAR, convirtiendo DEX directamente a Java.

Para la gente que no esté interesada en buscar todas esas herramientas por su cuenta, Fora sugirió Santoku. Se trata de una distribución especial de Linux de viaForensics que viene precargada con todas las herramientas necesarias para desmontar, modificar y volver a empaquetar una aplicación Android. Es una poderosa herramienta forense digital sobre la que hemos escrito en el pasado.

Rapid Reverse
Si te has quedado dormido durante los últimos párrafos, aquí es donde te despiertas. Usando Santoku, Fora cogió una aplicación Android muy básica que había creado y la desmontó. A continuación, buscó en el código una línea concreta, modificó el código, lo volvió a empaquetar, lo firmó, reinstaló la aplicación modificada en su Android y la lanzó. Todo el proceso le llevó menos de cinco minutos.

Ahora bien, el de Fora era un ejemplo muy sencillo. La aplicación era muy básica y no incluía código ofuscado. Sin embargo, su demostración tenía poderosas implicaciones. «Puedes hacer esto para cambiar el comportamiento de cualquier aplicación de Android», dijo Fora, enumerando las vidas infinitas en un juego o las funciones de pago en una aplicación gratuita como algunos ejemplos.

¿Un ejemplo más aterrador? Basta con echar la vista atrás y pensar en cualquiera de las aplicaciones clónicas maliciosas que hemos visto. Piensa en esto antes de descargar ese clon de FlappyBird.

PCMag Tech Deals

¿Buscas ofertas en la última tecnología?

Este boletín puede contener publicidad, ofertas o enlaces de afiliados. La suscripción a un boletín de noticias indica su consentimiento a nuestras condiciones de uso y política de privacidad. Puede darse de baja en cualquier momento.

Acerca de Max Eddy

Deja una respuesta

Tu dirección de correo electrónico no será publicada.