En nuestro rol de investigadores de seguridad, recurrentemente debemos practicar ingeniería reversa de las muestras que están bajo nuestro escrutinio. Usualmente, los algoritmos que otorgan al malware su funcionamiento eclipsan el análisis; no obstante, un archivo ejecutable puede sutilmente ocultar entre sus metadatos otras pistas de utilidad.

Certificado de la aplicación

Parte de los datos que muchos analistas olvidan chequear al momento de estudiar una muestra se encuentran en el certificado con el que fue firmada la aplicación. Este certificado suele llevar el nombre de CERT.RSA y se encuentra en la carpeta META-INF dentro del APK.

Contiene un conjunto de datos que pueden llegar a ser muy útiles cuando intentamos seguir los pasos de un único desarrollador de malware en el marco de una campaña de códigos maliciosos. Para leer la información en él almacenada podemos utilizar la herramienta keytool de JRE con la siguiente línea de comando:

keytool -printcert -file META-INF\CERT.RSA

Al hacerlo, obtendremos un resultado similar al que se ilustra en la siguiente captura de pantalla, donde se observa el certificado de una app descargada desde un mercado no oficial. Podremos encontrar el nombre de organización o desarrollador que generó el APK bajo las categorías de “Propietario” y “Emisor”, nombres que podrían ser utilizados para determinar si dos muestras corresponden al mismo cibercriminal, incluso aunque sean un sinsentido.

image_01

El hash es también útil al momento de utilizar buscadores como Koodous para encontrar muestras firmadas con ese mismo certificado. Por ejemplo, algún tiempo atrás realizamos el análisis de Twitoor, una botnet móvil comandada a través de Twitter. Si extraemos la información de su certificado –como se observa en la imagen– y realizamos una búsqueda en este sitio, daremos además con un troyano bancario detectado por las soluciones de seguridad de ESET como Android/Spy.Banker.EQ. De este modo se puede analizar la correlación entre firmas y diferentes familias de malware para estudiar su desarrollo en el tiempo.

image_02

Fecha de creación

Otro dato que puede ayudarnos a correlacionar diferentes familias de malware de un mismo autor y sus versiones es la fecha de compilación del archivo. Desde el punto de vista de una empresa de seguridad, también nos permite determinar cuánto tiempo transcurrió entre el momento en que la muestra fue creada y aquel en que comenzó a ser detectada por nuestro motor.

Para dar con ella podemos utilizar una herramienta de extracción de metadatos como exiftool y fijarnos en el campo “Zip Modify Date”.

image_03

También podemos convertir el APK a formato ZIP y luego chequear la fecha de modificación de los componentes empaquetados utilizando el explorador de archivos.

image_04

Si la muestra posee además archivos de especial importancia dentro de los assets, es posible que estos tengan metadatos relevantes. Del mismo modo, si los recursos de imágenes han sido editados por algún software con capacidad de firmar el archivo con el nombre o sitio web del creador. En raras ocasiones, los cibercriminales cometen el error de editar las imágenes de sus estafas con los mismos programas que sirven a sus "creaciones artísticas".

El archivo manifiesto

Claro está que una gran fuente de metadatos cuando de APK se trata es el manifiesto de la aplicación. En él es posible que podamos advertir la versión del código –que no siempre se condice con el versionado que el autor del malware realmente puede estar utilizando en alguna clase de configuración del ejecutable–, nombre del paquete, plataforma objetivo, listado de permisos necesarios para el funcionamiento del ejecutable, entre otros.

Estos datos se obtienen no solo descompilando la muestra, sino también utilizando las herramientas incluidas con el SDK de Android mediante el comando aapt dump badging <ruta_apk>.

image_05

Estas pequeñas pistas pueden llegar a ser la diferencia cuando de analizar campañas de malware se trata. Por ello, aunque normalmente no las necesitemos, debemos siempre tenerlas en cuenta.

Sigue leyendo: 5 consejos para iniciarte en el análisis de malware