Hace tiempo que los gamers son considerados por los delincuentes como un objetivo muy atractivo y desde hace años venimos alertando en este blog sobre las estrategias que se han usado para intentar engañarlos. Con el auge de las plataformas de distribución digital de juegos como Steam y el uso que hacen de ellas millones de usuarios cada día, estas se han convertido en un objetivo que atrae cada vez a más delincuentes.
Durante esta semana hemos visto cómo se ha utilizado el Marketplace de Steam y otros sitios similares como CSGolounge para vender supuestos chollos de bienes virtuales utilizados por algunos jugadores en sus juegos favoritos. Los delincuentes han utilizado estas ofertas para atraer a usuarios despistados y convencerlos para que instalen un aparentemente inofensivo salvapantallas pero que en realidad contenía una amenaza para sus preciados bienes digitales.
¿Cómo funciona esta amenaza?
Son varios los usuarios que han informado de la desaparición de algunos de sus bienes virtuales tras acceder a un intercambio con otros usuarios y haber pulsado sobre un enlace en el que se proporcionaba este misteriosos salvapantallas.
Gracias a la investigación realizada por algunos usuarios como JvHummel en algunos foros de usuarios podemos comprobar que el aparentemente inofensivo salvapantallas, que los usuarios identifican como tal por su extensión .scr, es en realidad una aplicación maliciosa desarrollada en .NET C# con algunas características que sacan a relucir sus verdaderas intenciones.
Hay muchas cosas interesantes en este trozo de código, comenzando por el Identificador de Steam del ladrón localizada en la función “addOffer” y otras funciones que destacan como la llamada “addItemsToSteal”, la cual claramente realiza un listado de aquellos objetos virtuales de valor que pudiera tener la víctima haciendo una búsqueda por sus nombres. Los delincuentes buscan varios objetos usados en distintos juegos aunque principalmente se ha observado que están interesados en los juegos Counter Strike: Global Offensive, DOTA 2 y Team Fortress 2.
Si nos fijamos en la última función “sendMessageToFriends” veremos cómo su finalidad es enviar un mensaje de forma automática a todos nuestros contactos en el sistema de mensajería instantánea de Steam
De esta forma, los delincuentes consiguen que su amenaza se propague como si de un gusano clásico de mensajería se tratase, ya que cuantos más usuarios pulsen sobre el enlace, más víctimas y, por ende, objetos valiosos conseguirán los creadores de esta amenaza.
Diseccionando las funciones
Tras analizar el código, este no parece haber sido realizado por aficionados y es posible que lo estén usando varios delincuentes bien organizados en varias partes del mundo. De hecho, si echamos un vistazo una a una a todas las funciones que componen el código de esta amenaza encontramos cosas muy interesantes.
- SteamWorker worker = new SteamWorker(); Esta función genera un objeto llamado “worker” y que pertenece a la clase “SteamWorker” que contiene información muy interesante para el atacante (amigos, objetos de interés y la cookie de sesión que se ha utilizado para conectarnos a nuestra cuenta).
- addOffer(«76561198125064394», «164798666», «Kodf_JPO»); Aquí el delincuente proporciona su ID de Steam (primer número) para iniciar la transacción (segundo número). La última cadena de caracteres es un token de negociación. De esta forma, el ladrón consigue añadir su oferta a una lista de ofertas para, probablemente, reutilizarla con otro código.
- ParseSteamCookies(); Con esta función, el delincuente consigue robar las cookies de sesión del usuario en Steam. Esto permite al atacante registrarse en Steam como si fuera la víctima sin conocer su contraseña.
- getSessionID(); Función que permite robar la sesión en Steam gracias a las cookies que el atacante ha obtenido en la función anterior.
- addItemsToSteal (“”); Aquí el delincuente define los artículos que quiere obtener de su víctima. Obviamente estos serán los más raros y valiosos aunque en esta amenaza parece limitarse a juegos de Valve como DOTA 2, CS: GO o TF2. Esta función llama a otras dos como son “AddItemsToList”, que muestra los objetos del usuario gracias a las cookies robadas, y “GetItems” que envía una solicitud webRequest a Steam. Tras conseguir el listado de los objetos de la víctima, la función “AddItemsToList” los filtra en función de su rareza y los añade a la lista de objetos a robar.
- SendItems(«»); Tal y como su nombre indica, está función es la encargada de enviar los objetos robados a la cuenta del ladrón. Esto lo consigue enviando otra webRequest utilizando la ID robada del usuario y usando la URL que Steam envía para realizar la transacción.
Tras realizar estos pasos, el ladrón ha conseguido robar los objetos valiosos de la cuenta de Steam de la víctima y procede a enviar un mensaje con un enlace malicioso que contiene esta amenaza a todos sus contactos.
Medidas a adoptar
Tras analizar a fondo la amenaza podemos concluir que la finalidad de esta no es infectar el sistema ni robar nuestra contraseña de Steam, pero no estaría de más que la cambiásemos si tenemos sospecha de haber sido afectados. Como medida adicional de protección podemos reinstalar Steam para forzar que se genere un nuevo ID de sesión y evitar así que el anterior sea utilizado de forma fraudulenta.
Valve ya se encuentra trabajando para solucionar este tipo de amenazas aunque, como usuarios, nunca está de más tomar ciertas precauciones, evitando aceptar enlaces de usuarios (conocidos o no) si no sabemos a dónde nos dirigen o qué descargan. Contar con una protección antivirus también nos puede ayudar a detectar estas amenazas al tratar de descargarlas y evitar sorpresas desagradables.
Y si hemos tenido la mala suerte de caer víctimas de estos delincuentes, no olvidemos que Steam cuenta con un buen equipo de soporte que nos puede ayudar a recuperar nuestros objetos robados y seguir disfrutando de nuestros juegos preferidos.