El ataque a Zygote: una nueva etapa en la evolución de las amenazas móviles

La historia de un pequeño troyano que sí pudo

Contenidos

Ver la versión completa del artículo (en inglés)

zygote

Es difícil subestimar el peligro de las aplicaciones que, sin el conocimiento del usuario, obtienen acceso root en un dispositivo móvil. Su principal peligro es que pueden hacer que otro malware mucho más avanzado y peligroso, con una arquitectura bien pensada, también adquiera acceso al dispositivo infectado. Al principio temíamos que los troyanos que habían obtenido acceso root no autorizado y que lo utilizaban para instalar aplicaciones y mostrar publicidad, instalaran malware (además de aplicaciones legítimas). Pero por desgracia, con la ayuda de estos programas comenzó a propagarse el más complejo de todos los troyanos móviles conocidos.

Root malware

En nuestro artículo anterior contamos sobre ciertos programas maliciosos para Android -que se están haciendo cada vez más populares- y que obtienen ilegalmente acceso privilegiado al dispositivo y lo utilizan para instalar aplicaciones y mostrar mensajes publicitarios agresivos. A menudo, un tiempo después de que este malware infecta el dispositivo, se hace muy difícil utilizarlo, debido a la abundancia de anuncios molestos y aplicaciones instaladas.

Desde que escribí el primer artículo sobre este tema (en agosto de 2015), todo cambió para peor: el número de familias de este malware ha aumentado de 4 a 11, se propagan con una virulencia aún mayor y capturan los privilegios de root con mucho más éxito. De acuerdo con nuestras estimaciones, en la segunda mitad de 2015 el 10% de los usuarios de dispositivos móviles en la plataforma Android fueron atacados por troyanos que obtiene privilegios de superusuario. Se han denunciado casos de que este tipo de programas venía preinstalado en dispositivos móviles nuevos producidos en China.

Pero hay que destacar que los dispositivos con sistemas operativos posteriores a la versión 4.4.4 tienen muchas menos vulnerabilidades que puedan ser utilizadas para obtener acceso root. Así que los principales blancos de este tipo de malware son dispositivos con una versión del SO igual o menor a 4.4.4. Pero esto no significa que la amenaza ya no sea relevante: la mayoría de los dispositivos aún tienen instaladas versiones antiguas del sistema operativo. La siguiente tabla muestra la distribución de los usuarios de nuestro producto, según la versión del sistema operativo Android que usan. Como se ve en el gráfico, alrededor del 60% de los usuarios utilizan dispositivos, en los cuales los troyanos podrían obtener privilegios de root.

El ataque a Zygote: una nueva etapa en la evolución de las amenazas móviles

Versiones del sistema operativo Android utilizadas por los usuarios de nuestros productos

Los ciberdelincuentes sacan provecho de la publicidad y la configuración de las aplicaciones legítimas. Cabe señalar que los propietarios de los troyanos descritos con anterioridad, tales como Leech, Ztorg, Gorpo (así como una nueva familia de malware Trojan.AndroidOS.Iop), trabajan de forma conjunta. Los dispositivos infectados con este malware suelen formar una especie de “botnet publicitaria”, a través de la cual los troyanos publicitarios se distribuyen a sí mismos y también propagan aplicaciones de publicidad. Al cabo de solo unos minutos de instalado uno de estos troyanos en el dispositivo atacado, ya entran en funcionamiento todos los demás programas maliciosos que forman parte de esta “red”.

En 2015, junto con un gran número de aplicaciones publicitarias limpias, con la ayuda de estas “botnet publicitarias” comenzaron a propagarse programas maliciosos que representaban una amenaza directa para el usuario. Entre ellos, uno de los troyanos móviles más sofisticados de todos los que hemos analizado hasta ahora.

Un troyano sui géneris

Mediante la “botnet publicitaria” se propaga un troyano único en su género, que tiene las siguientes características:

  1. Funcionalidad modular, junto con un uso activo de los privilegios de root;
  2. El grueso de las funciones del programa malicioso sólo existe en el dispositivo de memoria;
  3. El troyano modifica en la memoria el proceso Zygote para hacerlo persistente;
  4. Durante la creación del programa malicioso se utilizaron enfoques industriales de desarrollo de software, lo que significa que sus autores están altamente cualificados.

El troyano se instala en la carpeta que contiene las aplicaciones del sistema, bajo nombres que de verdad podrían ser de aplicaciones del sistema (por ejemplo, AndroidGuardianship.apk, GoogleServerInfo.apk, USBUsageInfo.apk, etc.).

Al comienzo de su labor, el malware recopila la siguiente información:

  • Nombre del dispositivo
  • Versión del sistema operativo
  • Tamaño de la tarjeta SD
  • Información sobre la memoria operativa del sistema (desde el archivo “/ proc / mem”)
  • IMEI
  • IMSI
  • Lista de aplicaciones instaladas

La información recogida se envía a un servidor malicioso, cuya dirección está en una lista incrustada en el código y que presentamos a continuación. O bien, si los servidores antes mencionados no estuvieran disponibles, de una lista de servidores de reserva también incrustada en el código.

Como respuesta llega un archivo de configuración cifrado, que se guarda con el nombre de “/system/app/com.sms.server.socialgraphop.db”. La configuración se actualiza a intervalos regulares y contiene los siguientes campos:

  • mSericode – Identificación del malware;
  • mDevicekey – ID del dispositivo generado por el servidor (se guarda en “/ app / OPBKEY_ <mDevicekey>”);
  • mServerdevicekey – identificación del servidor actual;
  • mCD – información utilizada por los ciberdelincuentes para introducir ajustes en el comportamiento de los módulos;
  • mHeartbea – intervalo de ejecución de la interfaz “heartbeatRequest”;
  • mInterval – intervalo de envío de solicitudes al servidor;
  • mStartInterval – tiempo, después del cual se ejecutan los archivos DEX cargados (módulos);
  • mServerDomains – lista de los principales dominios;
  • mCrashDomains – lista de dominios de reserva;
  • mModuleUpdate – enlaces necesarios para descargar los archivos DEX (módulos).

Si se llena el campo mModuleUpdate, se produce la descarga y almacenamiento de los módulos. A continuación, mediante DexClassLoader.loadClass () se cargan en la memoria los archivos descargados por el programa malicioso. Una vez cargados, los módulos se eliminan del disco, es decir, permanecen sólo en la memoria operativa del dispositivo, lo que dificulta en gran medida que los programas antivirus los detecten y eliminen.

Este mecanismo permite que la aplicación descargadora ejecute módulos con diferentes funciones y se encargue de su coordinación y sincronización.

Las aplicaciones descritas y archivos descargables utilizan los módulos “androidbin”, “conbb”, “configopb”, “feedback” y “systemcore”, almacenados en la carpeta / system / bin, para realizar diversas acciones con privilegios de root en el sistema. Por supuesto, en un sistema limpio estos archivos no existen.

Dada la arquitectura modular descrita y el acceso privilegiado al dispositivo, el programa malicioso puede crear literalmente cualquier cosa. Las posibilidades de los módulos descargables sólo están limitadas por la imaginación y las habilidades de los creadores de virus.

Al mismo tiempo, el troyano esconde sus módulos, haciéndolos invisibles en la lista de paquetes instalados, de aplicaciones instaladas, y en la lista de servicios y aplicaciones que están en ejecución. De esta manera, el troyano oculta su presencia y actividad en el sistema y hace que sea muy difícil detectar y eliminar sus componentes en el dispositivo infectado.

Principales funciones

La aplicación descargadora y los módulos que descarga pertenecen a diferentes tipos de troyanos, pero todos ellos fueron incluidos en nuestras bases de datos antivirus bajo el nombre común de Triada. En el momento del análisis, la aplicación descargadora (que detectamos como Backdoor.AndroidOS.Triada) descargaba y activaba los siguientes módulos:

  • Dos módulos con funcionalidad redundante, capaces de descargar e instalar, y también ejecutar aplicaciones (detectados como Trojan-Downloader.AndroidOS.Triada.a);
  • Un módulo capaz de enviar mensajes SMS a petición del servidor de administración (detectado como Trojan-SMS.AndroidOS.Triada.a);
  • Un módulo que ataca aplicaciones que utilizan mensajes SMS para realizar compras In-App (intercepción de mensajes de texto salientes) (detectado como Trojan-Banker.AndroidOS.Triada.a);

Las principales funciones del troyano tienen como objetivo redireccionar las transacciones financieras que el usuario realiza mediante SMS cuando paga por diversos contenidos adicionales en aplicaciones legítimas.

El troyano modifica los mensajes SMS salientes enviados por otras aplicaciones. Creemos que los atacantes utilizaron esta técnica para robar dinero de forma encubierta: después de que el usuario paga por algún contenido adicional en una aplicación, su dinero no lo reciben los desarrolladores de software, sino los atacantes.

Por ejemplo, cuando el usuario compra algo en la tienda de un juego para Android (si el juego utiliza un SDK para pagar las compras en el juego a través de SMS, por ejemplo, mm.sms.purchasesdk), los atacantes pueden modificar el mensaje SMS saliente de tal manera que sean ellos quienes reciben el dinero del usuario en lugar de los desarrolladores del juego. Como resultado, es probable que el usuario ni siquiera sospeche que su dinero fue robado por los delincuentes informáticos. Pero al no recibir el contenido que pagó, es probable que piense que se trata de un error en el juego.

Otra opción es que el dinero se lo lleven los atacantes, pero el usuario reciba el contenido pagado. En este caso, el troyano roba el dinero no tanto del usuario, sino más bien de los desarrolladores del software legal.

El troyano también puede filtrar los SMS entrantes. El malware verifica desde qué número se envió y qué texto contiene el mensaje SMS recibido. Se filtran los de mensajes provenientes de números de la lista, o que contengan palabras clave (el troyano recibe las listas de números y palabras clave del servidor de administración de los delincuentes). Como resultado, el mensaje filtrado no lo verá ni el usuario ni ninguna aplicación instalada en el sistema.

Utilización del proceso Zygote

Una característica distintiva de la aplicación maliciosa es que usa el proceso Zygote para incrustar su código en el contexto de todas las aplicaciones del dispositivo. El proceso Zygote es un proceso primario para todas las aplicaciones Android y contiene las bibliotecas del sistema y los frameworks utilizados por casi todas las aplicaciones. Este proceso funciona como una plantilla para cada nueva aplicación, lo que significa que una vez que el troyano se introduce en el proceso, se convierte en una parte de la plantilla y por lo tanto estará presente en cada aplicación que se ejecute, pudiendo cambiar la lógica de su funcionamiento. Esto abre una amplia gama de oportunidades a los atacantes.

Esta es la primera vez que nos enfrentamos a una tecnología de ITW similar. Antes de que Zygote la usara en la práctica, era solo una prueba de concepto.

Los atacantes toman muchas precauciones antes de emprender una acción tan compleja como introducir cambios en Zygote, ya que cualquier acción imprudente en este proceso puede dar lugar a la caída inmediata del sistema. Por esta razón, el troyano lleva a cabo una prueba preliminar, que le permite validar el funcionamiento de la técnica maliciosa en el dispositivo del usuario.

El ataque a Zygote: una nueva etapa en la evolución de las amenazas móviles

Arquitectura de Triada

La descripción completa del troyano está disponible aquí (en inglés).

Conclusión

Las aplicaciones que sin el conocimiento del usuario obtienen acceso root en el dispositivo móvil, pueden proporcionar este acceso al dispositivo infectado a otro malware aún más sofisticado y peligroso. Con la ayuda de los rooteadores se propaga Triada, el más complejo de todos los troyanos móviles de que tenemos noticia. Después de irrumpir en el dispositivo de usuario, Triada se incrusta en casi todos los procesos en ejecución, y continúa existiendo sólo en la memoria. Además, todos los procesos del troyano iniciados estarán ocultos para el usuario y otras aplicaciones. Como resultado, la detección y eliminación del troyano se torna extremadamente difícil tanto para el usuario, como para las empresas de soluciones antivirus.

Es evidente que el troyano Triada fue diseñado por delincuentes cibernéticos que están muy bien versados en la plataforma móvil atacada. La gama de técnicas utilizadas por este troyano no se encuentra en ninguno de los programas maliciosos móviles que conocemos. Los métodos que usa para ocultarse y convertirse en persistente le permiten hacer que, una vez instalados en el dispositivo infectado, sea muy difícil detectar y eliminar sus componentes maliciosos. Por su parte, la arquitectura modular permite a los atacantes ampliar y modificar sus funciones, que están sólo limitadas por las posibilidades del sistema operativo y las aplicaciones instaladas en el dispositivo. Como el malware penetra en todas las aplicaciones instaladas en el sistema, los criminales cibernéticos pueden modificar su lógica de funcionamiento para implementar nuevos vectores de ataques contra los usuarios y maximizar sus ganancias.

Por su complejidad, Triada no tiene nada que envidiarle al malware para Windows, lo que marca un hito en la evolución de las amenazas dirigidas a la plataforma Android. Si antes la mayoría de los troyanos para esta plataforma eran bastante primitivos, ahora están entrando en escena nuevas amenazas que tienen un alto nivel de complejidad técnica.

Publicaciones relacionadas

Hay 3 comentarios
  1. Fideloso

    Quizá una de las mejores opciones de estar protegido, es no instalar aplicaciones bajadas de cualquier página, aunque eso no garantiza de todas formas algún problema con malware. Esa es mi opinión.

  2. Rocio

    Creo ser victima de esw troyano. Si me pueden ayudar a comprobarlo les agradecere

  3. Ariel

    hola, gente necesito consultar sobre el virus zigote, soy root y sin querer apareció en la pantalla la aplicación y pidiendo permiso de super usuario lo que le otorgue pensando que era de algunas aplicaciones que tengo instaladas,pero enseguida me di cuenta que era un logo nuevo y no tenia eso, así que les negue los permisos y la borre; lo que quiero saber es si ya tengo el virus en el móvil o logre sacarlo a tiempo, por favor necesito ayuda

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *