Troyanos en Android: vulnerando sistemas de doble autenticación

Hace algunos días, compartimos con ustedes el aviso de una nueva variante de ZITMO para Android, que almacena todos los mensajes de texto del usuario en una base de datos, para luego enviarlos al atacante. Este conocido código malicioso que forma parte del crimeware de Zeus, permite bloquear las notificaciones de mensajes de texto al usuario mientras se realizan las transacciones bancarias en línea. Esta extraña metodología evita que el usuario se de cuenta de lo que sucede con su dinero.

Según los estudios  realizados desde el Laboratorio de análisis e investigación de ESET Latinoamérica, este código malicioso cuenta con dos módulos para realizar el robo de información del usuario. El primero de ellos se conecta a  una dirección URL para recuperar los nuevos comandos y ejecutarlos en el dispositivo. La segunda interfaz de control funciona como un método alternativo a la conexión a través del protocolo HTTP y permite controlar las acciones en el dispositivo a través de mensajes de texto.

Los mensajes que recibe el dispositivo infectado deben contar comenzar con determinados caracteres para activar las funcionalidades del malware:

  • #: Es el comando inicial que le permite al atacante conocer si el dispositivo está infectado o no.
  • /: Permite definir a qué número de teléfono se van a enviar los mensajes que reciba el dispositivo de la víctima.
  • !: Desactiva y deshabilita la ejecución de ZITMO en el teléfono con Android.
  • ,: Finaliza la secuencia de comandos y vuelve a activar la recepción de mensajes en el dispositivo móvil de la víctima.

Controlar el dispositivo a través de mensajes de texto permite a los cibercriminales vulnerar los sistemas de doble autenticación de una manera sencilla. Manteniéndose ocultos en dentro de los sistemas del usuario, ya sea en los equipos de escritorio o los dispositivos móviles logran realizar las transferencias bancarias de una manera sigilosa y sin alertar al usuario.

La descripción de las etapas de este ataque son las siguientes:

  1. Desde un dispositivo móvil, el atacante envía un mensaje de texto con el contenido “# <número atacante>”. Luego recibe la respuesta desde el teléfono de la víctima con información acerca de la versión del malware, el modelo del teléfono, versión del Sistema Operativo.
  2. El segundo mensaje de texto que envía el atacante tiene el formato “/ <número del atacante>”. Con este formato se activa el bloqueo de recepción de los mensajes y además, todo SMS recibido será reenviado al atacante.  Otra de las acciones que incluye esta etapa es la escritura del archivo secsuite.xml en dónde se almacena el número al cuál se debe reportar y  la activación de la funcionalidad.
  3. Luego de enviar el mensaje anterior, los cibercriminales pueden proceder a realizar las transacciones bancarias, y todos los mensajes de confirmación que sean enviados al el atacante a través de esta variante de ZITMO instalada en el dispositivo móvil.
  4. Una vez que finalizó el ataque y ya se realizó la transferencia de dinero, desde la cuenta del usuario se envía un último mensaje conteniendo una “,”. Cuando el smartphone infectado recibe este mensaje, vuelve a activar la recepción de mensajes para que el usuario pueda recibirlos.

Mediante la ejecución de estos pasos, se realizan las acciones pertinentes en el smartphone infectado en dónde se logra engañar completamente al usuario. Ocultar mensajes al  usuario es una técnicas ampliamente utilizada a través de la creación de BroadcastReceivers, y la alteración del funcionamiento normal de las aplicaciones en los dispositivos con Android. Al recibir el primer mensaje de texto,  se ejecuta la primera sección del método AlternativeControl que vimos en la primera entrega de este análisis.  Cuando se cumple la condición del “#“, y se llama a SendControlInformation() y se devuelve la información correspondiente del equipo. Al analizar este método podemos ver en detalle que va recopilando la información almacenada del dispositivo para luego enviar el mensaje de texto:

Esta es una función de rutina para recopilar los datos del teléfono, e incluso cuando se recibe un mensaje que comience con una “/” también se devuelve esta información. Sin embargo, en esos casos e agrega el número a la lista de los habilitados para el control remoto y el reporte de mensajes. Técnicamente las funcionalidades de este código no tienen muchos más detalles, pero son una herramienta muy efectiva para que los cibercriminales engañen a los usuarios y puedan realizar transferencias bancarias sin su conocimiento. Si nos centramos en la evolución de ZITMO en Android, observamos que ha tenido cambios considerables, desde ser un simple troyano SMS hasta la capacidad que actualmente estamos analizando, y seguramente veremos nuevas variantes de esta amenaza incluyendo nuevas funcionalidades.

Uno de los puntos más importantes en la comprensión de los códigos maliciosos y las personas que los desarrollan, se centra en analizar cómo se vulnera la seguridad del usuario y se utiliza su desconocimiento para el beneficio del atacante. De esta manera, a medida que los usuarios comienzan a utilizar una nueva tecnología, plataforma o software; los cibercriminales centran sus esfuerzos para adaptar las amenazas. En los últimos tiempos notamos un avance notable en el malware para dispositivos móviles y en las metodologías utilizadas para engañar a los usuarios. Seguramente esta evolución continúe, motivo por el cual tendremos que adaptarnos para proteger los entornos hogareños y corporativos por igual.

Pablo Ramos
Security Researcher

Autor , ESET

Síguenos