- Introducción
- Esquema general del ataque ZitMo
- Casos de ataques conocidos
- Plataformas
- ¿Y qué después?
Introducción
Hoy en día la banca online se ha convertido en algo cotidiano para muchas personas. Un número cada vez mayor de bancos se esmeran en expandir al máximo el espectro de servicios al que se puede acceder después de darse de alta en el sistema de banca online. Comodidad, velocidad…, parece que todo es positivo. Pero allí donde hay dinero, aunque no sea en forma de billetes reales, siempre habrá estafadores.
Es difícil decir cuándo empezaron los primeros ataques contra los usuarios de la banca online. Pero no es tan importante en este caso. Nos hemos enfrentado a dos tipos de ataques: los que usan métodos de phishing “clásico” y los hechos mediante diferentes programas maliciosos. El blanco inicial de estos ataques eran los medios de identificación del usuario en el sistema de banca online. Es decir, el login y la contraseña. A medida de que se iban perfeccionando los mecanismos de protección de los bancos, también mejoraban los programas maliciosos: los delincuentes informáticos aprendieron a burlar la mayoría de los métodos existentes de confirmación de operaciones de la banca online.
Actualmente los métodos más populares de protección de la banca online son los códigos de autorización, (TAN, transaction authentication number) y la firma digital. En algunos casos, el banco puede enviar los códigos de autorización en mensajes SMS (mTAN, mobile transaction authentication number). Hasta septiembre de 2010 no se habían registrado ataques contra los códigos de autorización de operaciones en teléfonos móviles. En 2009 hubo un par de noticias sobre hackers que hacían compras masivas de teléfonos Nokia 1100 por decenas de miles de dólares, pero no cualquier teléfono, sino sólo aquellos producidos en la fábrica de Bochum, Alemania. Parece ser que estos teléfonos tenían características (¿o más bien vulnerabilidades?) que permitían interceptar todos los SMS, entre ellos los que contenían códigos mTAN. Sin embargo no se registraron casos concretos de captura de datos.
El troyano ZeuS para smartphones (ZeuS-in-the-Mobile, o ZitMo), que apareció a finales de septiembre de 2010 fue el primer programa malicioso para móviles que robaba códigos de autentificación de transacciones bancarias. Es precisamente a este programa malicioso que dedicamos este artículo.
Esquema general del ataque ZitMo
El ZeuS móvil, Trojan-Spy*.Zitmo tiene un solo objetivo: de una forma rápida e inadvertida robar los códigos mTAN. En primer lugar hay que destacar un factor importante: ZitMo funciona en estrecha colaboración con ZeuS. Llamaremos simplemente ZeuS a la modificación del troyano para la plataforma Win32, Trojan-Spy.Win32.Zbot según la clasificación de Kaspersky Lab.
Recordamos que el ZeuS para los PC que funcionan con Windows es conocido desde hace bastante tiempo. Las primeras modificaciones de este programa malicioso aparecieron en el lejano 2007. En el artículo de mi colega Dmitry Tarakanov se puede leer cómo funciona este programa malicioso.
¿Qué pasa si un usuario en cuyo sistema está instalado ZeuS trata de autorizarse en su sistema de banca online? El usuario trata de visitar la página de su banco para autorizarse en el sistema. ZeuS, al darse cuenta de que la víctima visita esta dirección, modifica la página web en el navegador de tal manera que los datos personales que el usuario ingresa para autorizarse no se envían al banco, sino al servidor de administración de la botnet ZeuS.
Esquema general de funcionamiento de ZeuS
Alrededor de septiembre de 2010 los delincuentes agregaron una nueva función a ZeuS. El esquema de su funcionamiento no ha sufrido cambios, pero ahora en la página modificada de autorización, además del login y contraseña, se pide al usuario que indique el modelo de smartphone y escriba su número, supuestamente para renovar los certificados.
Parte de la página de autorización en el sistema de banca online modificada por los delincuentes donde se pide indicar el modelo y número de teléfono. (http://securityblog.s21sec.com/2010/09/zeus-mitmo-man-in-mobile-ii.html)
Los usuarios que enviaban a los delincuentes la información sobre los teléfonos móviles, después de un tiempo recibían en el número indicado un SMS que les pedía instalar un nuevo certificado de seguridad. El “certificado de seguridad” se podía bajar en el enlace indicado en el mensaje SMS. Pero en realidad el certificado era la versión móvil del troyano ZeuS. Si el usuario visitaba el enlace, descargaba e instalaba la aplicación, su teléfono se contagiaba con ZitMo, cuya principal función es enviar a los teléfonos de los delincuentes los mensajes SMS indicados en el cuerpo del troyano.
Desde entonces el esquema de propagación del ZeuS móvil no ha cambiado: los usuarios lo instalan en sus smartphones pensando que se trata de software legítimo.
Los delincuentes que consiguieron robar mediante ZeuS los datos personales que el usuario escribe para ingresar al sistema de banca online e infectaron el smartphone con ZitMo, pueden superar la última línea de defensa del sistema de banca online, mTAN. Usando el login y contraseña del usuario se autorizan en el sistema de banca online y tratan de ejecutar la transacción (por ejemplo, enviar dinero de la cuenta del usuario a su propia cuenta). Para realizar la transacción se necesita una confirmación adicional mediante el código de autorización que el banco envía por SMS al teléfono del cliente. El banco, después de recibir la solicitud del cliente pidiendo la transacción, envía a su teléfono un SMS con el código de autorización. El SMS llega al teléfono infectado por ZitMo, que de inmediato lo envía al teléfono del delincuente, que usando el mTAN robado, confirma la transacción. Mientras todo esto pasa, el cliente del banco no sospecha nada.
El esquema general del ataque es el siguiente:
- Con la ayuda de ZeuS el delincuente roba los datos necesarios para obtener acceso a la banca online y el número móvil del cliente del banco.
- Se envía un SMS al smartphone de la víctima que le pide instalar una actualización del certificado de seguridad u otro software necesario. En realidad, el enlace del SMS lleva a una versión móvil de ZeuS.
- Si el usuario ha instalado este software, es decir, si infectó su teléfono, el delincuente -usando los datos personales robados al usuario- trata de hacer una transferencia de dinero desde la cuenta del usuario, para lo cual es necesario ingresar el código mTAN.
- El banco envía un mensaje SMS con este código al smartphone del cliente.
- ZitMo envía el SMS con el código de autorización al número de teléfono del delincuente.
- El delincuente, mediante el mTAN robado, confirma la transacción.
Casos de ataques conocidos
La primera noticia que se tiene de ZitMo fue publicada el 25 de septiembre de 2010. Fue la compañía española S21sec, dedicada a la protección de información, la que escribió sobre el asunto. Sin embargo, hasta ahora no se sabe qué clientes de qué banco estuvieron bajo riesgo. De toda la información disponible, se puede sacar la conclusión de que lo más probable es que se haya tratado de un banco español.
Después de esta publicación, las compañías antivirus llevaron a cabo sus propias investigaciones. S21sec declaró que había encontrado versiones de ZitMo para dos plataformas móviles: Symbian y Blackberry. Se logró obtener ejemplares del programas malicioso para Symbian. Sin embargo, durante mucho tiempo no se pudo capturar un ejemplar de ZitMo para Blackberry. Esta versión existía sólo en las publicaciones.
Un blogger polaco escribió sobre el segundo ataque de ZitMo el 21 de febrero de 2011. También se dieron a conocer los nombres de los bancos cuyos clientes fueron víctimas del ataque: ING y mBank.
Página de ING modificada por ZeuS (fuente: http://niebezpiecznik.pl/post/zeus-straszy-polskie-banki)
También se expandió la lista de plataformas atacadas: ahora también estaban en peligro los usuarios de smartphones con Windows Mobile.
Hasta el momento se han hecho públicos sólo los ataques de ZitMo mencionados. Pero no se sabe si hubo otros ataques. Si los hubo, lo más probable es que ya no se publique información en fuentes públicas.
Plataformas
Hasta el momento de escribir este artículo (agosto de 2011) se han detectado diferentes modificaciones de ZitMo para las siguientes plataformas: Symbian, Windows Mobile, Blackberry y Android.
Más arriba hemos descrito el esquema general del ataque y determinado el principal objetivo de la versión móvil de ZeuS, los SMS con cógidos mTAN. Las funcionalidades del troyano ZitMo para las diferentes plataformas (excepto Android) son idénticas, pero creemos necesario analizar con más detalles las versiones para cada sistema operativo móvil.
Para empezar, hay que destacar un detalle muy importante e interesante, común a todas las versiones de ZitMo, excepto la versión para Android. El troyano que funciona en el smartphone se somete a las instrucciones que le llegan por SMS. Así que en esencia ZeuS para móviles es un bot SMS, cuyo centro de administración es otro teléfono, mejor dicho, otro número de teléfono.
Hasta julio de 2011 se conocían los siguientes números de centros de administración:
- +44778148****
- +44778148****
- +44778148****
- +44778620****
- +44778148****
Todos los números son de Inglaterra. ¿Es esto una confirmación indirecta de que los autores del programa malicioso se encontraban en Inglaterra durante el ataque? Es posible.
Symbian
La versión ZitMo para Symbian fue el primer ejemplar de este programa malicioso que cayó en manos de las compañías antivirus (a finales de septiembre de 2010). Merece la pena destacar que este programa malicioso estaba firmado con una firma digital legítima (que en este momento está revocada).
Una de las firmas digitales de ZitMo
Pero ¿cómo funciona ZitMo para Symbian?
Después de infectar el smartphone, el troyano envía un SMS con el texto “App installed OK” al número del centro de administración, para informar a su dueño de que el programa malicioso está instalado y listo para recibir instrucciones. Después de esto ZitMo crea una base de datos llamada NumbersDB.db que contiene tres tablas: tbl_contact, tbl_phone_number y tbl_history.
Después de realizar la infección, ZitMo puede recibir en los SMS de su centro de administración las siguientes instrucciones:
- ADD SENDER
- REM SENDER
- SET SENDER
- SET ADMIN
- BLOCK ON / OFF
- ON / OFF
La instrucción ADD SENDER <número de teléfono> es una de las más importantes para ZitMo, porque es la que inicia el envío de mensajes SMS desde el número indicado en la instrucción (número desde el cual el banco envía los SMS con los códigos mTAN) al número del centro de administración. En otras palabras, esta instrucción da la orden de enviar a los delincuentes mensajes SMS con los códigos de autentificación de las operaciones bancarias.
La instrucción REM SENDER <número de teléfono> suspende el envío de mensajes SMS desde el número indicado en la instrucción al número del centro de administración.
La instrucción SET SENDER permite cambiar el número de teléfono desde donde se enviarán los mensajes al centro de administración.
La instrucción SET ADMIN permite a los delincuentes cambiar el número del centro de administración. Esta es la única instrucción que se puede enviar al smartphone infectado desde un número diferente al del centro de administración. De esta manera, los delincuentes tienen la posibilidad de cambiar los números de los centros de administración.
Las instrucciones BLOCK ON/BLOCK OFF permiten activar o desactivar el bloqueo de todas las llamadas entrantes y salientes.
Las instrucciones ON/OFF permiten activar o desactivar ZitMo.
ZitMo no contiene ninguna instrucción superflua y ha sido creado con un solo objetivo: enviar mensajes SMS con los códigos de autentificación de las operaciones bancarias.
La segunda versión de ZitMo, descubierta durante el segundo ataque conocido tiene ciertas diferencias respecto a la primera, pero no son importantes. En primer lugar, y es lo más comprensible, cambió el número del centro de administración. Pero el prefijo de país (Inglaterra) en este número sigue siendo el mismo. En segundo lugar, ZitMo empezó a hacer un seguimiento no sólo de los mensajes SMS entrantes, sino también de los salientes, que es un poco extraño si se toma en cuenta el principal objetivo del troyano (los códigos mTAN). Y en tercer lugar, envía los mensajes con el texto “App installed OK” cada vez que recibe y ejecuta con éxito las instrucciones SET ADMIN. En la versión anterior, este mensaje se enviaba sólo después de instalar el troyano.
Windows Mobile
ZitMo para Windows Mobile fue detectado durante el segundo ataque conocido del troyano, junto con la segunda versión del programa malicioso para Symbian. No nos sorprende que el número del centro de administración de ambos programas maliciosos (para Windows Mobile y Symbian) sea el mismo.
Fragmento del código de Trojan-Spy.WinCE.Zitmo.a
Fragmento del código de Trojan-Spy.SymbOS.Zitmo.b
No hay ninguna diferencia en las funcionalidades de la versión de ZitMo para Windows Mobile y para Symbian. El programa malicioso puede recibir y ejecutar las mismas instrucciones.
Blackberry
La historia con la versión de ZitMo para Blackberry es la más complicada y misteriosa. En el blog donde por primera vez se anunció la detección de ZitMo se mencionó que también existía para esta plataforma. Sin embargo, durante cinco meses las compañías antivirus no tuvieron en su poder el fichero de ZitMo para Blackberry. Hasta se llegó a suponer que no existía una versión para Blackberry. A finales de febrero de 2011, después de cierto tiempo del segundo ataque de ZitMo, nuestra compañía logró detectar el fichero sertificate.cod, que también era ZeuS para Blackberry.
Fragmento del fichero sertificate.cod
Un vistazo rápido al fichero mostró que, en lo que a instrucciones se refiere, en esta versión de ZitMo no hay diferencias fundamentales con las demás versiones. Un análisis más detallado dio los siguientes resultados.
Los principales métodos usados para el funcionamiento del troyano se almacenan en el fichero OptionDB.java. Entre los nombres de los métodos se puede encontrar getAdminNumber, que se usa, por ejemplo, en el siguiente procedimiento de confirmación de la instalación del troyano:
Parte del procedimiento de confirmación de la instalación del troyano
Entre los métodos también se pueden encontrar procedimientos lógicos. Por ejemplo, el valor isForwardSms determina si se remitirán mensajes SMS y el valor isBlockAllCalls determina si se bloquearán las llamadas telefónicas.
Los principales procedimientos necesarios para el funcionamiento del programa malicioso se pueden encontrar en el fichero SmsListener.java. Entre ellos está, por ejemplo, el procedimiento de verificación del número del remitente de los mensajes SMS entrantes que determina si se remitirá el mensaje entrante a los delincuentes.
Android
ZitMo para Android fue el último en ser descubierto, a principios de julio de 2011. El ejemplar del programa malicioso se diferenciaba drásticamente de todas las versiones anteriores de ZeuS para móviles. Las funcionalidades del programa malicioso eran tan primitivas que podría parecer que este fichero APK no tiene ninguna relación con ZitMo. Sin embargo, las investigaciones confirmaron que sí se trataba de ZeuS móvil para Android.
Ya hemos descrito como funciona ZeuS. En pocas palabras, cuando el usuario trata de entrar a la página de su banco y autorizarse, en realidad visualiza una página modificada por ZeuS de tal manera que los datos ingresados no se enviaban al banco, sino al servidor del delincuente.
Los primeros ataques de ZitMo para Android empezaron en la primera quincena de junio. El esquema de propagación seguía siendo el mismo. En uno de los ficheros de configuración de Trojan-Spy.Win32.Zbot se descubrió el siguiente mensaje:
Al elegir Android y pulsar Continue, el usuario llega a la siguiente página, donde le recomiendan instalar un “programa especial, que lo defenderá de estafas”:
Recomendación de descargar una “utilidad para protegerse de estafas”
Si el usuario no elige Android, sino cualquier otro sistema operativo, no pasará nada y se le mostrará el siguiente mensaje: “El sistema operativo de su teléfono móvil no necesita protección adicional”.
Mensaje que aparece si se elige un SO diferente a Android
En otras palabras, esta versión en concreto de ZitMo se orientaba sólo a los dispositivos con el SO Android.
Al descargar e instalar un supuesto software legítimo, que en realidad es malicioso, el usuario tiene en su smartphone un programa que envía todos los mensajes SMS entrantes (entre ellos los que contienen mTAN) al servidor remoto http://******rifty.com/security.jsp en el siguiente formato:
En ZitMo para Android no hay ninguna otra función adicional, ni números de centros de administración ni instrucciones SMS. Pero la conexión con el ZeuS para PC permite hablar de ZeuS para Android.
También hay que mencionar que este programa malicioso estuvo cierto tiempo en Android Market. Se lo puso allí el 18 de junio, pero se desconoce la fecha exacta de su eliminación. Desde Android Market se la bajó menos de 50 veces.
¿Y qué después?
El troyano ZitMo, que funciona en conjunción con ZeuS, es uno de los programas maliciosos más complejos detectados en los últimos tiempos, por las siguientes razones:
- La especialización del troyano: el envío al número de los delincuentes (o al servidor, en el caso de ZitMo para Android) de los SMS entrant4es con códigos mTAN para la confirmación de las operaciones financieras realizadas desde las cuentas bancarias afectadas.
- Su funcionamiento en diferentes plataformas. Se han descubierto versiones para Symbian, Windows Mobile, Blackberry y Android.
- Su funcionamiento “en pareja”. Si analizamos ZitMo aparte, es decir, sin tomar en cuenta su relación con ZeuS, es un programa espía común y corriente, capaz de enviar mensajes SMS. Sin embargo su uso conjunto con el ZeuS “clásico” permitió a los delincuentes romper la última línea de defensa de las transacciones bancarias, los códigos mTAN.
En el futuro los ataques mediante ZitMo (o programas con similares funciones), de una forma u otra dirigidos al robo de códigos mTAN (y quizá otro tipo de información secreta enviada por SMS) continuarán, sin embargo lo más probable es que tengan carácter estrictamente local y afecten a un pequeño número de víctimas.
ZeuS para móviles, hechos y conjeturas