Hace algunos días, se detectaron en distintos sitios de Internet nuevas variantes de ZITMO, versión de Zeus para dispositivos móviles que permite tomar el control del dispositivo y ejecutar comandos de manera remota. Esta versión del código malicioso, detectado por ESET Mobile Security para Android como Android/Spy.Zitmo, presenta una evolución considerable en referencia a otras amenazas reportadas anteriormente. Practicamente todo el código del troyano ha sido reescrito por los cibercriminales quienes lo propagan como una supuesta aplicación de seguridad, también conocida como Rogue. Veremos a continuación algunos puntos importantes y la interacción con el panel de control.

Anteriormente cuando se detectaron o reportaron variantes de ZITMO para dispositivos móviles suponían ser aplicaciones para las transacciones en línea. En esta oportunidad, vemos que simula ser una solución de seguridad, uno de los principales motivos para esta acción radica en que Android es un sistema basado en permisos, los cuales el usuario debe aceptar para instalar una aplicación. Al momento de ejcutar la aplicación por primera vez, el usuario observa una pantalla con un código de activación, pero pasa por alto que es lo que realmente sucede en su dispositivo.

Esta nueva variante de Android/Spy.Zitmo se trata de la versión 1.2.7 del código malicioso y permite su control a través de mensajes de texto. La amenaza almacena los mensajes recibidos en una base de datos bajo el directorio /data/data/com.android.security/secsuite.db y cuenta con tres tablas diferentes:

  • android_metadata
  • delay_data
  • sqlite_sequence

En la tabla delay_data, se almacenan todos los datos referentes a los mensajes de texto que todavía no se han enviado al atacante. Esta información se envía de manera sincrónica cada una determinada cantidad de tiempo. El primer reporte del código malicioso se hace a los 180 segundos luego de que se inició la aplicación y luego cambia a 1500 segundos. En la siguiente captura podemos ver que la clase ValueProvider concentra toda la información de administración del bot: la dirección URL a la que reporta el malware (UrlToReport), que se encuentra ofuscada, variables por defecto, versión del malware, etc:

Todos estos datos son utilizados por las distintas secciones del código malicioso. Además de que en el AndroidManifest.xml cuenta con la definición de un BroadCastReceiver, con el nombre SecurityProvider, que se dispara ante la recepción de un mensajes de texto, la realización de una llamada o cuando finaliza el inicio del sistema. Toda esta información queda detallada en el archivo de permisos, pero no suele ser visible para el usuario:

A través de la utilización de este tipo de técnicas, que ya hemos reportado con anterioridad, el bot logra obtener la información temporal, almacenarla en la base de datos y luego enviarla a la dirección URL. Otro punto importante a tener en cuenta es que el control del equipo infectado se hace a través de mensajes SMS. Cuando se dispara el evento onReceive de la clase SecurityReceiver, según el contenido del mensaje se puede interpretar como un comando o como un mensaje a almacenar basándose en las opciones de la función AlternativeControl. Este último detalle permite cambiar las opciones del bot según las necesidades del atacante y extender sus funcionalidades:

Las funcionalidades de esta amenaza le permiten al atacante tomar el control del dispositivo y realizar distintas acciones. La acción a ejecutar varía según el carácter con el cuál inicie el mensaje de texto. Para prevenir la infección de los dispositivos móviles con este tipo de amenazas es recomendable contar con una solución de seguridad que detecte proactivamente las amenazas.

Pablo Ramos
Security Researcher