Técnica de análisis dinámico de malware de Android mediante la inyección de pequeños dispositivos – JPCERT/CC Eyes


Summarize this content to 600 words
Al analizar dinámicamente el malware de Android, actualmente es difícil seguir su código utilizando depuradores, a diferencia del malware de Windows. Aunque existe una técnica [1] enganchar un método dinámicamente por Frida [2]obtener el estado en progreso del método sigue siendo difícil y, dado que Frida no es una herramienta dedicada a Android, solo se puede obtener información limitada. En este artículo, presento la técnica de inyección de dispositivos pequeños como un método más flexible para el análisis dinámico de malware de Android. Este método permite el análisis dinámico mediante la creación e inyección de un gadget para análisis en el archivo APK para crear un archivo APK reempaquetado.

Confirmar el resultado de la compilación inversa.

Primero, verifique el código del malware de Android para identificar en qué parte desea realizar un análisis dinámico. Los resultados de la descompilación de archivos APK se pueden ver como código Java utilizando una herramienta de descompilación como JADX o JEB Pro. La Figura 1 muestra un ejemplo del resultado de la descompilación. En esta técnica, es necesario conocer de antemano los métodos para decodificar y descomprimir el resultado de la descompilación. En el ejemplo de la Figura 1, puede ver que el malware recibe un argumento de tipo String en el método a de la clase a en el paquete com.fky.lblabjglab. Luego descifra la cadena y devuelve una variable de tipo String. Tenga en cuenta que, aunque se utiliza RC4 para el cifrado, no es necesario identificar el algoritmo de cifrado en esta técnica.

Figura 1: Resultados de descompilación de un método para descifrar cadenas RC4 usando JADX

Extraiga el archivo pequeño e inyecte el gadget

Una vez que identifique qué parte analizar, extraiga el malware de Android a continuación. Puedes usar Apktool [3] para extraer archivos APK. Al ejecutar el siguiente comando, el archivo APK especificado se extrae como se muestra en la Figura 2 y se puede editar el archivo pequeño para inyectar un gadget. El archivo pequeño se puede encontrar consultando el resultado de descompilación obtenido por JADX u otras herramientas. En este ejemplo, supongamos que el gadget se inyectará en el archivo pequeño. pequeño/com/fky/lblabjglab/a.smalique llama a la función de descifrado RC4.

$ apktool d mal.apk

Figura 2: Estructura de directorios de archivos APK descomprimidos

Aquí, como ejemplo, el archivo pequeño/com/fky/lblabjglab/a.smali se abre en un editor de texto y se inyecta un gadget que genera el argumento y devuelve el valor al registro de depuración, como se muestra en la Figura 3. Debe especificar las variables que se mostrarán. En el método, p0 es este puntero y p1 es el primer argumento. Por lo tanto, si desea comprobar el valor del primer argumento, p1 se especifica y el registro de cadena se genera en android.util.Log.e.

Figura 3: Ejemplo de inyección de un dispositivo para análisis

Armar y firmar un archivo pequeño.

Después de inyectar el dispositivo para su análisis, monte el archivo pequeño y cree un archivo APK. Después de eso, cree un archivo de certificado y firme el archivo APK. Puede crear un archivo APK con el gadget para análisis inyectado ejecutando los siguientes comandos.

$ apktool b mal
$ keytool -genkey -v -keystore test.store -alias example -keyalg RSA -validity 32767
$ apksigner sign –ks test.store -v –v2-signing-enabled true –ks-key-alias example mal.apk

Ejecute el archivo APK reempaquetado

Finalmente, puede realizar un análisis dinámico. Utilice Android Estudio [4] u otras aplicaciones para iniciar un dispositivo virtual Android como se muestra en la Figura 4 e instalar en él el archivo APK reempaquetado. Tenga en cuenta que el entorno del dispositivo virtual debe desconectarse de Internet antes de ejecutar el malware de Android.

Figura 4: Instalación del archivo APK en el emulador de Android Studio

Después de instalar el archivo APK, inicie la aplicación en el dispositivo virtual. Luego, como se muestra en la Figura 5, al consultar la pestaña Logcat y configurar el filtro apropiado, puede ver las cadenas antes y después del descifrado. Esta técnica se puede aplicar para realizar varios tipos de análisis, como hacer referencia o cambiar el contenido de una variable o llamar a otro método en medio de un método.

Figura 5: Resultado de la salida de cadenas descifradas

Para terminar

Esta técnica permite un análisis dinámico flexible, que ha sido difícil de lograr con el malware de Android, aunque requiere algunos preparativos por adelantado, como verificar los resultados de descompilación y preparar un dispositivo pequeño adecuado. El malware de Android utilizado para probar esta técnica se presenta en el Apéndice.

Yuma Masubuchi

(Traducido por Takumi Nakano)

Referencias

[1] Fridahttps://frida.re/

[2] Guía práctica: derrotar a un empaquetador de Android con FRIDAhttps://www.fortinet.com/blog/threat-research/defeating-an-android-packer-with-frida

[3] silla apkhttps://apktool.org/

[4] Estudio Androidhttps://developer.android.com/studio

Apéndice: valor hash del malware de Android utilizado

Cerbero: 1249c4d3a4b499dc8a9a2b3591614966145daac808d440e5202335d9a4226ff8

Source link

Artículos y alertas de seguridad

Consultar más contenidos y alertas

Alertas y noticias de seguridad de la información

Contacta

Contacta con nosotros para obtener soluciones integrales en IT y seguridad de la información

Estamos encantados de responder cualquier pregunta que puedas tener, y ayudarte a determinar cuáles de nuestros servicios se adaptan mejor a tus necesidades.

Nuestros beneficios:
¿Qué sucede a continuación?
1

Programamos una llamada según tu conveniencia.

2

Realizamos una reunión de descubrimiento y consultoría.

3

Preparamos una propuesta.

Agenda una consulta gratuita