PokerAgent y el robo de 16.000 contraseñas de Facebook

El siguiente post es una traducción y adaptación de «PokerAgent botnet stealing over 16,000 Facebook credentials» publicado en el blog de ESET Norteamérica por nuestro compañero Robert Lipovsky.

La red de “bots” llamada “PokerAgent”, a la que le seguimos la pista desde 2012, fue diseñada para conseguir datos de acceso a Facebook. También recogía datos de las tarjetas de crédito ligadas a cuentas de Facebook y estadísticas de los jugadores de “Zynga Poker”, supuestamente con la intención de estafar a las víctimas. Israel ha sido el país donde la amenaza ha sido más activa, con 800 ordenadores infectados y más de 16.000 credenciales de Facebook robadas.

Introducción

Hace aproximadamente un año, el laboratorio de investigación de ESET descubrió un troyano que le llamó la atención. Todo parecía indicar que había algo interesante: referencias a Facebook y a la aplicación Zynga Poker (que aparecían en cadenas de texto dentro del código), el código ejecutable “PokerAgent” y características de botnet, ya que el troyano contactaba con una red de control remoto.

ESET ha estado detectando diferentes variantes del troyano, denominado genéricamente MSIL/Agent.NKY. Tras el descubrimiento inicial, fuimos capaces de encontrar otras variantes del troyano, unas más antiguas y otras más modernas. También se consiguieron estadísticas de detección, que revelaron a Israel como el país con mayor actividad del código malicioso.

Hemos llevado a cabo un análisis profundo del código del troyano (tarea fácil, ya que estaba programado con C#, muy fácil de descompilar) e iniciamos la monitorización de la botnet. Los resultados se presentan a continuación y se encuentran ampliados en el whitepaper que analiza esta amenaza.

Funciones del malware

El autor del malware tiene una gran base de datos con credenciales de Facebook robadas (nombres de usuario y contraseñas). Al principio, no sabíamos cómo las había conseguido, pero al continuar la investigación se aclaró. Cuando el bot se conecta al centro de mando y control, le solicita tareas para llevar a cabo. Una de esas tareas equivale a un usuario de Facebook. El troyano está programado para iniciar sesión en una cuenta de Facebook y conseguir la siguiente información:

  1. Estadísticas de Zynga Poker de la cuenta de Facebook en cuestión
  2. Número de métodos de pago (p.ej. tarjetas de crédito) almacenadas en la cuenta de Facebook.

Las estadísticas del usuario en Zinga Poker se consiguen pasando la respuesta de la URL http://facebook2.poker.zynga.com/poker/inc/ajax/profile_popup.php?zid=1:%_FACEBOOK_ID%&signed_request=%_SIGNATURE% &platform=1.

Los datos devueltos se asemejan mucho a los mostrados más abajo, y tienen  información sobre el usuario, como su nombre, género, imagen del perfil de la cuenta, clasificación y puntos en Zynga Poker, número de amigos y estadísticas sobre cada mano jugada.

1_eset_nod32_zynga-stats

Al troyano solamente le interesa el género del usuario, sus puntos y su clasificación. Esta información se envía de vuelta al centro de mando y control.

Hay que tener en cuenta que para hacer la consulta el atacante solo necesita el identificador numérico de la cuenta de Facebook y un parámetro válido firmado por la aplicación Zynga Poker. En diferentes versiones del bot hemos detectado que se usaban diferentes parámetros.

Se puede encontrar más información sobre el popular juego Zynga Poker  aquí.

Con el fin de determinar el número de formas de pago vinculadas a la cuenta de Facebook, el bot primero tiene que entrar en esa cuenta, utilizando el nombre de usuario y contraseña que ya están en poder del atacante. Entonces, el troyano busca en https://secure.facebook.com/settings?tab=payments&section=methods y simplemente consigue el número que hay entre las etiquetas HTML en la cadena “You have <strong>X</strong> payment methods saved.” que se devuelve en HTML.

2_eset_nod32_fb_payment_settings

Siempre recomendamos que se sea muy cauteloso a la hora de almacenar datos de tarjetas de crédito en una aplicación, no solo en Facebook. De nuevo, toda la información se manda al centro de mando y control para actualizar la base de datos de víctimas.

El sistema infectado puede llevar a cabo diversas tareas en nombre de una víctima de Facebook:

  1. Publicar enlaces en el muro del usuario de Facebook.

El propósito de esta función es llevar a otros usuarios de Facebook (por ejemplo, amigos de los usuarios a los que se les ha robado las credenciales de acceso) a una página falsa de acceso a Facebook, para robarles también a ellos su nombre de usuario y contraseña.

La tarea mandada al bot, aparte de un nombre de usuario y contraseña de Facebook, también contiene una URL (mandada de manera cifrada) y posiblemente algún texto de acompañamiento para publicarla (aunque no hemos visto que esta característica la use la botnet). El troyano, una vez iniciada sesión en Facebook, publica el link descifrado en el muro del usuario.

Aquí pueden verse unos cuantos ejemplos.

3_eset_nod32_fb_share

El enlace apuntará a una página web similar a la que aparece en la imagen más abajo. Durante la monitorización del botnet, hemos visto que redirecciona a diferentes páginas web. Tanto desde nuestra telemetría como desde el texto de las páginas web, podemos ver que los ataques están dirigidos mayormente a usuarios de Israel. Las páginas ofrecen noticias de prensa amarillista, que el usuario puede sentir curiosidad por ver.

4_eset_nod32_middle_site

Independientemente del tema de la página a la que redirigen, todas tienen un factor común: cada imagen tiene un enlace HTML a una página falsa de Facebook en la que iniciar sesión, como se puede ver más abajo. De nuevo, se han ido usando diferentes URL a lo largo del tiempo.

5_eset_nod32_fake_facebook

Como cabría esperar, cuando una víctima rellena sus datos en esta página falsa de Facebook, sus datos son mandados al atacante.

El análisis del código también revela una interesante característica de la lógica de programación del troyano. El código contiene una función llamada “ShouldPublish”, que determina si los enlaces a las páginas de phishing deben ser publicados en el muro del usuario. Esto dependerá de si la víctima tiene alguna tarjeta de crédito vinculada a su cuenta y su clasificación en Zynga Poker. Aparentemente, si se cumple una de las condiciones, el atacante lo considera un éxito, y, si no (no hay tarjetas y tiene una clasificación baja), el troyano buscará otras víctimas.

6_eset_nod32_should_publish

¿Cómo funciona el ataque?

Hay que aclarar que, a diferencia de otros troyanos que hemos visto propagarse frecuentemente por Facebook, este no intenta entrar ni interferir con la cuenta de Facebook del usuario que está infectado (de hecho, podría no tener una cuenta en Facebook). La botnet sirve más bien como un proxy, por lo que las actividades ilegales (las tareas ordenadas a los bots) no se ejecutan fuera del ordenador infectado.

Una vez dicho esto, todo lo anterior nos lleva a la conclusión de que el propósito de la botnet es:

  1. Aumentar el tamaño de la base de datos de usuarios y contraseñas robados de Facebook.
  2. Actualizar la base de datos: comparar los datos de los usuarios de Facebook con las estadísticas de Zynga Poker y las tarjetas de crédito almacenadas.

Solo nos cabe especular acerca de cómo el atacante emplea los datos robados. El código sugiere que el atacante busca usuarios de Facebook con cosas de valor que merezcan la pena robar, determinándolo por las estadísticas del juego de poker y los datos de la tarjeta de crédito almacenados en su cuenta de Facebook. Posteriormente, el cibercriminal puede usar para sí los datos de la tarjeta de crédito o quizá vender la base de datos a otros delincuentes.

Vector de propagación

Antes hemos visto la página falsa de Facebook que el atacante emplea para hacer que las víctimas le den sus datos de Facebook. Por lo que se refiere a la distribución del troyano “PokerAgent”, no hemos tenido la suerte necesaria para pillarle “con las manos en la masa”. Cuando monitorizamos la botnet en marzo de 2012, esta no seguía propagándose activamente. Lo que sí sabemos, sin embargo, es que el troyano se descarga en el sistema por algún otro componente (de los que hemos visto varias versiones). Este componente de descarga fue visto en la web, (en varias URL que cambiaban dinámicamente) y las víctimas han sido engañadas para descargarlo.

Por las técnicas que utiliza el troyano, es lógico suponer que el downloader también se distribuyó por Facebook, haciendo también uso de técnicas de ingeniería social.

Escala de los ataques y acciones llevadas a cabo

Hemos estado detectado el troyano MSIL/Agent.NKY desde el 3 de diciembre de 2011. Poco después nos dimos cuenta de que era algo que requería más atención y llevamos a cabo un análisis a fondo del código. Así, iniciamos el seguimiento de la amenaza y tras analizar el protocolo de su centro de mando y control, empezamos la monitorización de la botnet.

Gracias a nuestra detección genérica, pudimos conseguir tanto versiones iniciales como más modernas del troyano. En total encontramos 36 versiones distintas de “PokerAgent” con fechas de compilación comprendidas entre septiembre de 2011 y marzo de 2012. Los “hashes” MD5 se pueden encontrar al final del documento. Por tanto, comprobamos cómo el creador del malware estaba desarrollando activamente su proyecto.

El seguimiento de la botnet reveló que al menos 800 ordenadores habían sido infectados con el troyano, y el atacante tenía al menos 16.194 entradas únicas en su base de datos de credenciales de Facebook el 20 de marzo de 2012. Estos números no se corresponden exactamente con el número de credenciales válidas robadas, ya que puede haber muchas más que no hemos visto. Sin embargo, por lo que comprobamos, no todas las entradas eran válidas, y muchos usuarios que intentaron ser engañados introdujeron nombres de usuario y contraseñas visiblemente falsos.

Tal y como muestra la evolución de detecciones en nuestro ESET LiveGrid®, el autor del malware dejó la propagación activa del troyano a mediados de febrero de 2012.

7_eset_nod32_pokeragent_stats

Los ataques se concentran en un solo país. Nuestra telemetría indica que precisamente el 99% de todas las detecciones de MSIL/Agent.NKY de los productos de seguridad de ESET provienen de Israel.

En cuanto conseguimos información fidedigna de estas actividades delictivas, cooperamos tanto con el CERT de Israel como con la Policía. Los detalles de la investigación no pueden ser hechos públicos por razones de confidencialidad.

También hemos avisado a Facebook, y ha llevado a cabo tareas de prevención para frustrar futuros ataques en las cuentas robadas.

Conclusión

El caso “PokerAgent” representa un ataque con éxito a los usuarios de la red social más grande del mundo y a los jugadores del mayor sitio de Poker del mundo. Hay, sin embargo, varias prácticas de seguridad, además de la obvia recomendación de utilizar un antivirus actualizado, que habrían evitado que los atacantes tuvieran tanta suerte.

  • No solo son necesarias medidas técnicas, sino que también la vigilancia del usuario es una protección contra todos los ataques que emplean ingeniería social. Aunque a simple vista la página falsa de Facebook es una copia perfecta de la auténtica, el usuario puede reconocerla como una copia si comprueba la barra de direcciones, aunque la mayoría de las víctimas fueron engañadas por la página.
  • Facebook ha implementado varios mecanismos para mejorar la seguridad de sus usuarios. En concreto, el doble factor de autentificación podría haber evitado que los bots entraran en las cuentas de Facebook de las víctimas.
  • Queremos insistir en que hay que ser cauteloso antes de permitir a los navegadores “recordar” contraseñas de servicios importantes, y mucho más si se están almacenando los datos de la tarjeta de crédito en cualquier aplicación, no solo en Facebook.

Con las redes sociales más populares siendo atacadas por malware, spam, phishing y otros propósitos nefastos, es muy recomendable asegurarse de que estamos protegidos de estos vectores de ataque también. Para mantener la cuenta de Facebook limpia, ESET ha presentado la aplicación ESET Social Media scanner.

8_eset_nod32_PokerAgent_infographic

Traducido y adaptdo por Yolanda Ruiz, Fernando de la Cuadra y Josep Albors

 

Sin comentarios

Comentar

Acerca de las cookies en este sitio

Este sitio web utiliza cookies propias y de terceros para mejorar tu experiencia de usuario y obtener información estadística. Para poder seguir navegando pulsa en "Sí, estoy de acuerdo". Podrás retirar este consentimiento en cualquier momento a través de las funciones de tu navegador. Ver nuestra política de cookies..