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:
- URL del servidor C&C.
- 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.
- Una cadena de caracteres que identifica una campaña.
- 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 [email protected]!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