• TREND MICRO
  • ACERCA
Buscar:
  • Seguridad
  • Nube
  • Movilidad
  • Noticias de la Industria
Home   »   Movilidad   »   Un Análisis de Xavier: Una Librería de Anuncios para Android que extrae Información

Un Análisis de Xavier: Una Librería de Anuncios para Android que extrae Información

  • Posted on:July 24, 2017
  • Posted in:Movilidad
  • Posted by:Trend Micro
0

Recientemente descubrimos un Troyano para Android -una librería de anuncios (ad library) denominada Xavier (que Trend Micro detectó como ANDROIDOS_XAVIER.AXM)-, el cual roba y filtra información de los usuarios. El impacto de Xavier ha sido amplio. De acuerdo con datos del Servicio de Reputación de Aplicaciones Móviles de Trend Micro, se han detectado más de 800 aplicaciones que contienen el SDK de la librería de anuncios y que se han descargado millones de veces desde Google Play. Estas aplicaciones van desde utilerías y editores fotográficos hasta fondos de pantalla y tonos.

El mayor número de intentos de descarga se registró en países del sureste asiático como Vietnam, Filipinas e Indonesia; mientras que en Estados Unidos y Europa se reportó el menor número.

Si bien hemos cubierto con anterioridad las librerías de anuncios maliciosas – como la MDash SDK— ésta incluye características importantes que la diferencian de la librería anterior. Primero, tiene un comportamiento malicioso que descarga códigos desde un servidor remoto, los instala y ejecuta. Segundo, hace todo lo posible por protegerse de ser detectada mediante el uso de métodos como la encripción de secuencias, datos de Internet y detección de emuladores.

Las capacidades de robo y filtración de Xavier son difíciles de detectar debido a un mecanismo de autoprotección que le permite eludir el análisis estático y dinámico. Además, Xavier también tiene la capacidad de descargar y ejecutar otros códigos maliciosos, los cuales podrían ser incluso uno de sus aspectos aún más peligrosos. El comportamiento de Xavier depende del código descargado y de su URL, los cuales son configurados por el servidor remoto.

Antes de entrar de lleno al análisis de Xavier, vamos a explicar cómo ha evolucionado esta librería de anuncios en el tiempo.

La Evolución de Xavier

Xavier pertenece a la familia AdDown, la cual ha estado presente por más de dos años. La primera versión, llamada joymobile, apareció a principios de 2015. Esta variante ya era capaz de ejecutar código de forma remota.

Además de recolectar y filtrar información de los usuarios, esta librería era capaz de instalar otros APKs y hacerlo silenciosamente si el dispositivo es ruteado silenciosamente.

Establecía comunicación con el servidor de Comando y Control (C&C) sin encripción. Sin embargo, todas las secuencias constantes se encriptaban en el código.

La segunda variante que se derivó de la familia AdDown se llamó nativemob. Al hacer una comparación de nativemob con joymobile, podemos observar que en la primera la estructura del código se ha reorganizado. También agregó algunas funcionalidades nuevas, principalmente comportamientos y utilerías publicitarias. Aunque lo hacía con la instalación de aplicaciones de forma silenciosa, la instalación de aplicaciones que involucran la confirmación del usuario aún existía.

También reunía más información de los usuarios que joymobile y la decodificaba en base64 antes de enviarla al servidor C&C.

La siguiente variación apareció en enero de 2016. Recortaba su algoritmo de encripción de secuencias, encriptaba los códigos descargados del servidor remoto y añadía algunas reflection calls (llamadas de reflexión).

Al mes siguiente, actualizaba los aspectos de la configuración del módulo de publicidad y eliminaba la encripción de los datos por alguna razón:

En los meses siguientes se realizaron más actualizaciones. Sin embargo, ninguna de ellas hizo cambios importantes a la librería de anuncios.

Análisis Técnico de Xavier

La variante conocida como Xavier surgió en septiembre de 2016 con un código más simplificado. La primera versión de Xavier eliminó la instalación de APK y la comprobación del archivo raíz, pero añadió la encripción de datos con el algoritmo TEA.

Poco después, añadió un mecanismo para evadir la detección dinámica como ya se mencionó anteriormente.

Xavier tiene la siguiente estructura:

Una vez cargado, Xavier obtendrá su configuración inicial del servidor C&C hxxps://api-restlet[.]com/services/v5/, que se encripta dentro de Xavier.

El servidor también encripta los datos de respuesta:

Después de la encripción, podemos ver que es realmente un archivo Json:

  • V indica la versión del SDK;
  • L indica el URL del SDK;
  • G indica el Sid del SDK
  • S indica las configuraciones del SDK.
  • Au se refiere a la configuración de la publicidad.

Xavier descargará entonces el mencionado SDK de hxxp://cloud[.]api-restlet[.]com/modules/lib[.]zip, que se lee desde la configuración. Sin embargo, lib.zip no es un archivo zip completo.

Después de obtener lib.zip, Xavier agrega 0x50 0x4B antes de lib.zip y lo nombra como xavier.zip. Este es un archivo zip válido.

Antes:

Después:

Xavier.zip contiene un archivo classes.dex que Xavier descarga e invoca.

Este archivo dex reunirá la siguiente información del dispositivo del usuario, que encriptará y transmitirá al servidor remoto: hxxps://api-restlet[.]com/services/v5/rD.

  • manufacturer
  • source
  • simcard country
  • product
  • publisher_id
  • simcard operator
  • service id
  • language
  • resolution
  • model
  • os version
  • Device name
  • Device id
  • Installed apps
  • Android id
  • Email Address

Asimismo, Xavier oculta su comportamiento publicitario agresivo detectando si el sistema está corriendo en un emulador a fin de evadir la detección dinámica.

Comprobará si el Nombre de Producto del dispositivo, el fabricante, la marca del dispositivo, el nombre del dispositivo, el módulo del dispositivo, el nombre del hardware o la huella contiene la siguiente secuencia:

  • vbox86p
  • Genymotion
  • generic/google_sdk/generic
  • generic_x86/sdk_x86/generic_x86
  • com.google.market
  • Droid4X
  • generic_x86
  • ttVM_Hdragon
  • generic/sdk/generic
  • google_sdk
  • generic
  • vbox86
  • ttVM_x86
  • MIT
  • Andy
  • window
  • unknown
  • goldfish
  • sdk_x86
  • generic_x86_64
  • phone
  • TTVM
  • sdk_google
  • Android SDK built for x86
  • sdk
  • Android SDK built for x86_64
  • direct
  • com.google
  • XavierMobile
  • TiantianVM
  • android_id
  • generic/vbox86p/vbox86p
  • com.google.vending
  • nox

Xavier también oculta su comportamiento al escanear la dirección de correo del usuario para comprobar si contiene las siguientes secuencias:

  • pltest
  • @facebook.com
  • tester
  • @google.com
  • review
  • playlead
  • agotschin
  • gptest
  • rxwave 15
  • rxplay
  • admob
  • gplay
  • adsense
  • gtwave
  • rxtest
  • wear.review
  • qaplay
  • test
  • rxtester
  • playtestwave

Xavier tiene los siguientes comportamientos para evitar la detección:

1) Encripta todas las secuencias constantes, dificultando aún más la detección estática y el análisis manual.

2) Realiza la transmisión a través de HTTPS para evitar que el tráfico sea interceptado. También los datos son encriptados:

3) Utiliza una amplia serie de métodos para invocar la reflexión, con el nombre de la clase y el nombre de método que se van a encriptar

4) Ocultará su comportamiento de acuerdo con el entorno en que se ejecuta.

Este es un ejemplo de una aplicación de Google Play que contiene una librería de anuncios de Xavier:

Recomendaciones y mejores prácticas

La manera más sencilla de evitar un malware ingenioso como Xavier es no descargar ni instalar aplicaciones desde una fuente desconocida, incluso si son de tiendas de aplicaciones legítimas como Google Play. Además, puede ayudar a leer los análisis de otros usuarios que hayan descargado la aplicación. Otros usuarios pueden ser una excelente fuente de información, especialmente si pueden señalar si una aplicación específica muestra un comportamiento sospechoso. Actualizar y parchar los dispositivos móviles también ayudará a evitar el malware que busca aprovecharse de las vulnerabilidades.

Además, los usuarios finales y las empresas pueden considerar soluciones de seguridad móvil como Trend Micro™ Mobile Security for Android™, que también están disponibles en Google Play. Trend Micro™ Mobile Security for Enterprise y que brindan gestión de dispositivos y aplicaciones, protección de datos y configuración, además de proteger a los dispositivos contra ataques que se aprovechan de las vulnerabilidades, evitando el acceso no autorizado a las aplicaciones, así como detectar y bloquear el malware y los sitios fraudulentos.

Puede consultar en el Apéndice una lista completa de los hashes y aplicaciones que Google ha eliminado a la fecha de esta publicación.

 

Tags: malware

Blog Security Intelligence

Blogs Trend Micro

  • Uso Doméstico
  • |
  • Empresas
  • |
  • Información sobre Seguridad
  • |
  • Acerca de Trend Micro
  • Asia Pacific Region (APAC): Australia / New Zealand, 中国, 日本, 대한민국, 台灣
  • Latin America Region (LAR): Brasil, México
  • North America Region (NABU): United States, Canada
  • Europe, Middle East, & Africa Region (EMEA): France, Deutschland / Österreich / Schweiz, Italia, Россия, España, United Kingdom / Ireland
  • Privacy Statement
  • Legal Policies
  • Copyright © 2014 Trend Micro Incorporated. All rights reserved.