La industria de los videojuegos sigue en el radar de los atacantes

Los desarrolladores asiáticos de videojuegos fueron nuevamente el objetivo de un ataque a la cadena de suministro que distribuyó el malware Winnti en software firmado legítimamente.

Esta no es la primera vez que la industria de los juegos ha sido blanco de atacantes que buscan comprometer a los desarrolladores de juegos para insertar puertas traseras en sus entornos de desarrollo y así tener la posibilidad de distribuir su malware como parte de un software legítimo. En abril de 2013, Kaspersky Lab informó que un videojuego popular se modificó en 2011 para incluir una puerta trasera. Este ataque fue atribuido a ciberdelincuentes que Kaspersky denominó Grupo Winnti.

Recientemente, nuevos ataques a la cadena de suministro llamaron la atención de los investigadores de ESET. En esta oportunidad, dos juegos y una aplicación de plataforma de videojuegos para incluir un backdoor. Una vez logrado esto, los ataques fueron mayormente diríticos al continente asiático ya la industria de los juegos; por lo que no debe sorprender que se trate de un trabajo realizado por el mismo grupo que Kaspersky describió como "Winnti - Más que un simple juego".

Tres casos: el mismo backdoor

Aunque el malware usa configuraciones diferentes para cada caso, los tres productos de software afectados incluyen el mismo código de puerta trasera y se lanzaron usando la misma máquina. Si bien dos de los productos afectados no incluyen el backdoor, uno de los desarrolladores afectados aún continúa distribuyendo la versión troyana que, irónicamente, se aprovecha de un juego llamado "infestación", que en español significa "infección", y que es producido por los desarrolladores tailandeses de “Electronics Extreme”. Desde el mes de febrero hemos intentado informarles varias veces y por diferentes canales, pero sin éxito.

Observe primero cómo se incrusta la carga útil maliciosa y luego analice los detalles de la propia puerta trasera.

Embebiendo el payload

El código del payload se inició en una etapa muy temprana durante la ejecución del archivo ejecutable backdoreado. Justo después del punto de entrada de PE, el estándar de llamada de inicialización de C Runtime (__scrt_common_main_seh en la Figura 1) está enganchado para ejecutar el payload malicioso antes que nada (Figura 2). Esto podría sugerir que los actores maliciosos cambiaron una configuración de construcción en lugar del código fuente.

Figura 1: Archivo ejecutable de punto de entrada limpio

Figura 2: Archivo ejecutable de punto de entrada comprometido

El código agregado al ejecutable descifra y ejecuta la puerta trasera en la memoria, antes de reanudar la ejecución normal del código de inicialización de C Runtime y todo el código posterior de la aplicación host. Los datos integrados en la carga útil presentan una estructura específica que se puede ver en la Figura 3, que se analiza mediante el código de desempaquetado agregado.

Figura 3. Estructrura del payload embebido

Incluye una clave RC4 (que es XOReada con 0x37) que se utiliza para descifrar el número de archivo y el archivo DLL incrustado.

El payload malicioso

La carga útil maliciosa real es bastante pequeña y contiene aproximadamente 17 KB de datos y código.

Configuración

Ilustrado en la Figura 4, los datos de configuración son simplemente una lista de cadenas separadas por espacios en blanco.

Figura 4 – Datos de configuración de la carga útil

La configuración consta de cuatro campos:

  1. URL del servidor C&C.
  2. Variable (t) utilizado para determinar el tiempo de apagado en milisegundos antes de continuar con la ejecución. El tiempo de espera se elige aleatoriamente en el rango de 2/3 t un 5/3 t.
  3. Una cadena de caracteres que identifica una campaña.
  4. Una lista separada por punto y coma de nombres de archivos ejecutables. Si cualquiera de estos se está ejecutando, el backdoor detiene su ejecución.

Los investigadores de ESET han identificado cinco versiones de la carga útil:

SHA-1 truncado Tiempo de compilación de PE (UTC) URL del servidor C&C
a045939f 2018-07-11 15:45:57 https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_bsod.php
a260dcf1 2018-07-11 15:45:57 https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_Include.php
dde82093 2018-07-11 15:45:57 https://bugcheck.xigncodeservice[.]com/Común/Lib/común.php
44260a1d 2018-08-15 10:59:09 https://dump.gxxservice[.]com/common/up/up_base.php
8272c1f4 2018-11-01 13:16:24 https://nw.infestexe[.]com/version/last.php

En las tres primeras variantes no se recompilaba el código, sino que se editaban los datos de configuración en el propio archivo DLL. El resto del contenido es una copia byte a byte.

Infraestructura C&C

Los nombres de dominio se eligieron cuidadosamente para que aparecieran en relación con el juego o el autor de la aplicación. El ápice de dominio fue configurador para redirigir hacia un sitio legítimo importante usando el servicio de redirección Namecheap, mientras que el subdominio apointa al serverido malicioso C&C.

Nombre de dominio Fecha de Registro Objetivo de redirección
xsigncodeservice.com 2018-07-10 09:18:17 https://namu.wiki/[w]/CÓDIGOXIGN
gxxservice.com 2018-08-14 13:53:41 Ninguno o desconocido
infectexe.com 2018-11-07 08:46:44 https://www.facebook.com/infest.[in].[th]
nombre de subdominio Direcciones IP Proveedor
bugcheck.xigncodeservice.com 167.99.106[.]49, 178.128.180[.]206 océano digital
dump.gxxservice.com 142.93.204[.]230 océano digital
nw.infestexe.com 138.68.14[.]195 océano digital

Al momento de escribir este artículo, ninguno de estos dominios resuelve y los servidores C&C no están respondiendo.

Informe de reconocimiento

Se genera un identificador de bot a partir de la dirección MAC de la máquina. La puerta trasera informa información sobre la máquina, por ejemplo, nombre de usuario, número de computadora, versión de Windows e idioma del sistema con el servidor C&C y espera instrucciones. Los datos están en cifrado XOR con la llave “*&b0i0rong2Y7un1” y codificado en base64.

Comandos

Esta puerta trasera simple tiene cuatro comandos que puede utilizar el atacante:

  • DownUrlFile
  • DownRunUrlFile
  • RunUrlBinInMem
  • Desinstalar

Los comandos son bastante autoexplicativos. Permitir al atacante ejecutar ejecutables adicionales desde una URL dada.

El último es quizás menos obvio. El comando Desinstalar no elimina el malware del sistema. Después de todo, está embebido dentro de un ejecutable legítimo que aún necesita correr. Más que quitar algo, lo que hace es deshabilitar el código malicioso presentar el siguiente valor de registro a 1:

  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionImageFlag

Cuando se inicia el payload, se consulta el valor del registro y se cancela la ejecución si se establece el valor correspondiente. Quizás los atacantes estén tratando de reducir la carga en sus servidores de C&C al evitar la devolución de llamadas de las víctimas que no generan interés.

segunda fase

Basado en la telemetría de ESET, una de las cargas útiles de la segunda fase fue enviada a la víctima Win64/Winnti.BN. Hasta donde podemos decir, su cuentagotas fue descargado sobre HTTPS desde api.goallbandungtravel[.]com. Lo hemos visto instalado como un servicio de Windows y como una DLL es C:WindowsSystem32 utilizando los siguientes nombres de archivo:

  • cscsrv.dll
  • dwmsvc.dll
  • iassrv.dll
  • mprsvc.dll
  • nlasrv.dll
  • powfsvc.dll
  • racsvc.dll
  • slcsvc.dll
  • snmpsvc.dll
  • sspisvc.dll

Las muestras que analizamos eran bastante grandes, con aproximadamente 60 MB cada una. Sin embargo, esto es solo por apariencia, ya que el tamaño real del archivo PE está entre 63KB y 72KB, dependiendo de la versión. Los archivos del malware tienen varios archivos limpios adjuntos. Esto probablemente lo hace el componente que soltó e instaló este servicio malicioso.

Una vez que el servicio corre, adjunte la extensión .mui a su ruta DLL, lee ese archivo y lo descifra usando RC5. El archivo MUI descifrado contiene un código de posición independiente con un desplazamiento de 0. La clave RC5 se deriva del número de serie del disco duro y la cadena f@Ukd!rCto R$. — no pudimos obtener ningún archivo MUI ni el código que los installa en primer lugar. Por lo tanto, no sabemos exactamente el propósito de este servicio malicioso.

Las versiones recientes del malware incluyen un mecanismo de actualización automática mediante el uso del servidor C&C http://checkin.travelsanignacio[.]com. Este servidor C&C entregó la última versión de los archivos MUI cifrados con una clave RC5 estática. Durante nuestro análisis, el servidor C&C no estaba respondiendo.

Comenzamos por señalar aquellos que no están apuntados. Una etapa temprana en el payload, el malware revisa si el idioma del sistema es ruso o chino (Figura 5). En cualquiera de estos casos, el malware deja de correr, lo que deja bastante claro que los atacantes no están interesados ​​en computadoras con estos idiomas.

Figura 5 Revisión del idioma antes de ejecutar el payload

Estadísticas de distribución

La telemetría de ESET muestra que la mayoría de las víctimas se encuentran en Asia, siendo Tailandia el país más afectado.Dada la popularidad de las aplicaciones comprometidas, que siguen siendo distribuidas por sus desarrolladores, no sería de extrañar que el número de víctimas alcance cifras en el entorno de decenas o cientos de millas.

Los ataques a la cadena de suministro son difíciles de detectar desde la perspectiva del consumidor. Es imposible comenzar a analizar cada pieza de software que ejecutamos, especialmente con actualizaciones periódicas que son instantáneas y/o requieren instalación. Por lo tanto, depositamos nuestra confianza en los proveedores de software y que los archivos que distribuyen no incluyen malware. Quizás esta sea la razón por la que múltiples grupos apuntan a los desarrolladores de software: comprometer los resultados del proveedor en una botnet tan popular como el software que es vulnerable. Sin embargo, existe una desventaja en el uso de esta técnica: una vez que se revela el esquema, el atacante pierde el control y las computadoras pueden actualizarse regularmente.

No sabemos los motivos de los atacantes en este momento. ¿Es simplemente una ganancia económica? ¿Hay alguna razón que explicable por qué los tres productos afectados son de desarrolladores de Asia y del mercado asiático? ¿Estos ataques usan una botnet como parte de una operación de espionaje más grande?

Los productos de ESET detectan esta amenaza como, Win32/HackedApp.Winnti.A, Win32/HackedApp.Winnti.B; la carga útil como Win32/Winnti.AG y la segunda fase como Win64/Winnti.BN.

Indicadores de compromiso (IoC)

Muestra de archivos comprometidos (Win32/HackedApp.Winnti.A y B)

SHA-1 Tiempo de compilación (UTC) clave RC4 Carga útil SHA-1
7cf41b1acfb05064518a2ad9e4c16fde9185cd4b Mar 13 Nov 10:12:58 2018 1729131071 8272c1f4
7f73def251fcc34cbd6f5ac61822913479124a2a mié 14 nov 03:50:18 2018 19317120 44260a1d
dac0bd8972f23c9b5f7f8f06c5d629eac7926269 mar 27 nov 03:05:16 2018 1729131071 8272c1f4

Algunos hashes fueron redactados por solicitud de uno de los proveedores. Si por motivos particulares usted los necesita, puede contactarnos a través de:[email protected].

Muestras del payload (Win32/Winnti.AG)

SHA-1 URL del servidor C&C
a045939f53c5ad2c0f7368b082aa7b0bd7b116da https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_bsod.php
a260dcf193e747cee49ae83568eea6c04bf93cb3 https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_Include.php
dde82093decde6371eb852a5e9a1aa4acf3b56ba https://bugcheck.xigncodeservice[.]com/Común/Lib/común.php
8272c1f41f7c223316c0d78bd3bd5744e25c2e9f https://nw.infestexe[.]com/version/last.php
44260a1dfd92922a621124640015160e621f32d5 https://dump.gxxservice[.]com/common/up/up_base.php

Muestras de segunda fase (Win64/Winnti.BN)

Cuentagotas enviado por api.goallbandungtravel[.]com.

SHA-1 Tiempo de compilación (UTC) Prefijo de URL del servidor C&C
4256fa6f6a39add6a1fa10ef1497a74088f12be0 2018-07-25 10:13:41 Ninguna
bb4ab0d8d05a3404f1f53f152ebd79f4ba4d4d81 2018-10-10 09:57:31 http://checkin.travelsanignacio[.]com

Matriz de MITRE ATT&CK

IDENTIFICACIÓN Descripción
T1195 Compromiso de la cadena de suministro
T1050 Nuevo servicio
T1022 Datos encriptados
T1079 Cifrado multicapa
T1032 Protocolo criptográfico estándar (RC4, RC5)
T1043 Puerto comúnmente utilizado (80,443)
T1009 Relleno binario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
error: Content is protected !!