Malware para Linux refuerza vínculos entre Lazarus y el ataque a la cadena de suministro de 3CX

Similitudes con el recién descubierto malware para Linux utilizado en la Operación DreamJob corroboran la teoría de que el famoso grupo alineado con Corea del Norte está detrás del ataque a la cadena de suministro de 3CX.

Investigadores de ESET descubrieron una nueva campaña del grupo de APT Lazarus llamada Operación DreamJob dirigida a usuarios de Linux. Operación DreamJob es el nombre de una serie de campañas en las que el grupo utiliza técnicas de ingeniería social para comprometer a sus objetivos mediante falsas ofertas de trabajo que utiliza como anzuelo. En este caso, hemos sido capaces de reconstruir toda la cadena, desde el archivo ZIP que entrega una oferta de trabajo falsa de HSBC como señuelo, hasta el payload final: el backdoor de Linux SimplexTea distribuido a través de una cuenta de almacenamiento en la nube de OpenDrive. Hasta donde sabemos, esta es la primera referencia pública a este importante actor de amenazas alineado con Corea del Norte utilizando malware para Linux como parte de esta operación.

Además, este descubrimiento nos ayudó a confirmar con un alto nivel de confianza que el reciente ataque a la cadena de suministro de 3CX fue en realidad llevado a cabo por el grupo Lazarus, un vínculo que se sospechaba desde el principio y que varios investigadores de seguridad han demostrado desde entonces. En esta publicación corroboramos estos hallazgos y proporcionamos pruebas adicionales que demuestran la conexión entre Lazarus y el ataque a la cadena de suministro de 3CX.

El ataque de cadena de suministro que afectó a 3CX

3CX es un desarrollador y distribuidor de software VoIP que ofrece servicios de sistema telefónico a muchas organizaciones a nivel internacional. Según su sitio web, 3CX tiene más de 600,000 clientes y 12,000,000 de usuarios en varios sectores, incluyendo el aeroespacial, la salud y el de la hospitalidad. 3CX proporciona software de cliente para utilizar sus sistemas a través de un navegador web, aplicación móvil o una aplicación de escritorio. A fines de marzo de 2023, se descubrió que la aplicación de escritorio tanto para Windows como para macOS contenía código malicioso que permitía a un grupo de atacantes descargar y ejecutar código arbitrario en todas las máquinas donde se instaló la aplicación. Rápidamente, se determinó que este código malicioso no fue agregado por 3CX, sino que 3CX fue comprometido y que su software fue utilizado en un ataque de cadena de suministro impulsado por actores de amenazas externos para distribuir malware adicional a clientes específicos de 3CX.

Este incidente de seguridad ha sido noticia en los últimos días. Inicialmente reportado el 29 de marzo de 2023 en un hilo de Reddit por un ingeniero de CrowdStrike, seguido por un informe oficial de  CrowdStrike en el que se afirmaba con un alto grado de confianza que LABIRINTH CHOLLIMA, el nombre en clave que utiliza la compañía para referirse a Lazarus, estaba detrás del ataque (pero omitiendo cualquier evidencia que respalde la afirmación). Debido a la gravedad del incidente, múltiples compañías de seguridad comenzaron a contribuir con sus respectivos resúmenes de los eventos, como Sophos, Check Point, Broadcom, Trend Micro y más.

Además, la parte del ataque que afectó a los sistemas que ejecutan macOS fue cubierta en detalle en un hilo de Twitter y en una publicación realizada por Patrick Wardle.

Cronología de los hechos

Figura 1. Cronología de los eventos relacionados con la preparación y distribución de aplicaciones de 3CX troyanizadas.

La cronología muestra que los perpetradores planearon los ataques mucho antes de la ejecución. Tan temprano como diciembre de 2022. Esto sugiere que ya tenían un pie dentro de la red de 3CX desde finales del año pasado.

Mientras que la aplicación troyanizada de 3CX para macOS muestra que fue firmada a finales de enero, no fue hasta el 14 de febrero de 2023 que vimos la aplicación maliciosa en nuestra telemetría. No está claro si la actualización maliciosa para macOS se distribuyó antes de esa fecha.

Aunque la telemetría de ESET muestra la existencia del payload de segunda etapa para macOS tan pronto como febrero, no teníamos una muestra ni metadatos que nos alertaran sobre su malicia. Incluimos esta información para ayudar a quienes trabajan en seguridad para determinar cuánto tiempo atrás los sistemas podrían haber sido comprometidos.

Varios días antes de que se revelara públicamente el ataque, se subió a VirusTotal una muestra de un misterioso downloader para Linux. Este downloader descarga un nuevo payload malicioso de Lazarus para Linux y más adelante en esta publicación explicamos su relación con el ataque.

Atribución a Lazarus del ataque de cadena de suministro a 3CX

Lo que se ha publicado hasta el momento

Hay un dominio que tiene un papel significativo en nuestra atribución: journalide[.]org. Se menciona en algunos de los informes de otros proveedores mencionados anteriormente, pero su presencia nunca se explica. Curiosamente, los artículos de SentinelOne y ObjectiveSee no mencionan este dominio. Tampoco lo hace una publicación de Volexity, que incluso se abstuvo de proporcionar atribución, indicando “Volexity actualmente no puede relacionar la actividad divulgada con ningún actor de amenazas”. Sus analistas fueron de los primeros en investigar el ataque en profundidad y crearon una herramienta para extraer una lista de servidores de C&C a partir de iconos cifrados en GitHub. Esta herramienta es útil, ya que los atacantes no embebieron los servidores C&C directamente en las etapas intermedias, sino que utilizaron GitHub como dead-drop resolver. Las etapas intermedias son downloaders para Windows y macOS que denominamos IconicLoaders, y los payloads que obtienen como IconicStealer y UpdateAgent, respectivamente.

El 30 de marzo, Joe Desimone, un investigador de seguridad de Elastic Security, fue uno de los primeros en proporcionar, a través de un hilo de Twitter, pistas sustanciales que señalan que los ataques a 3CX probablemente están relacionados con el grupo Lazarus. Desimone observó que un fragmento de código de shellcode agregado al payload desde d3dcompiler_47.dll es similar a fragmentos en el loader de AppleJeus atribuidos a Lazarus por CISA en abril de 2021.

El 31 de marzo se informó que 3CX había contratado a Mandiant para proporcionar servicios de respuesta a incidentes relacionados con el ataque de cadena de suministro.

El 3 de abril, Kaspersky, a través de su telemetría, mostró una relación directa entre las víctimas del ataque de cadena de suministro a 3CX y el despliegue de un backdoor denominado Gopuram, y señalo cómo los elementos en común payloads con el mismo nombre: guard64.dll. Los datos de Kaspersky muestran que Gopuram está conectado a Lazarus porque coexistieron en máquinas víctimas junto con AppleJeus, un malware que ya fue atribuido a Lazarus. Tanto Gopuram como AppleJeus se observaron en ataques contra una compañía de criptomonedas.

Luego, el 11 de abril, el CISO de 3CX resumió las conclusiones de un informe intermedio elaborado por Mandiant en una publicación. Según ese informe, dos muestras de malware para Windows, un loader de shellcode llamado TAXHAUL y un downloader complejo llamado COLDCAT, estuvieron involucrados en el compromiso de 3CX. No se proporcionaron hashes, pero la regla YARA de Mandiant, llamada TAXHAUL, también se activa en otras muestras que ya se encuentran en VirusTotal:

  • SHA-1: 2ACC6F1D4656978F4D503929B8C804530D7E7CF6 (ualapi.dll),
  • SHA-1: DCEF83D8EE080B54DC54759C59F955E73D67AA65 (wlbsctrl.dll)

Los nombres de archivo, pero no los MD5, de estas muestras coinciden con los del artículo de Kaspersky. Sin embargo, 3CX afirma explícitamente que COLDCAT difiere de Gopuram.

La siguiente sección contiene una descripción técnica del nuevo payload malicioso de Lazarus para Linux que analizamos recientemente, y una explicación de cómo nos ayudó a fortalecer esta conexión entre Lazarus y el ataque a 3CX.

Operación DreamJob con un payload para Linux

La Operación DreamJob del grupo Lazarus involucra el acercamiento a sus objetivos a través de LinkedIn y tentarlos con ofertas de trabajo dirigidas a líderes de ciertas industrias. El nombre fue acuñado por ClearSky en un artículo publicado en agosto de 2020. Ese artículo describe una campaña de ciberespionaje de Lazarus dirigida a empresas de defensa y aeroespaciales. La actividad se superpone con lo que ESET denominó Operación In(ter)ception, que fue el análisis de una serie de ataques con fines de ciberespionaje que han estado en curso desde al menos septiembre de 2019 y que apuntan a empresas aeroespaciales, militares y de defensa y en los cuales se utilizan herramientas maliciosas específicas, inicialmente solo para Windows. Durante julio y agosto de 2022, encontramos dos instancias de Operación In(ter)ception que apuntaban a macOS. Se subió una muestra de malware a VirusTotal desde Brasil, y otro ataque apuntó a un usuario de las soluciones de ESET en Argentina. Hace unas semanas, se encontró en VirusTotal un payload nativo para Linux junto con un documento utilizado como señuelo en formato PDF y que utiliza el nombre de HSBC. Esto completa la capacidad de Lazarus de poder comprometer todos los principales sistemas operativos de escritorio.

El 20 de marzo, un usuario en el país de Georgia cargó a VirusTotal un archivo ZIP llamado HSBC job offer.pdf.zip. Teniendo en cuenta otras campañas de Lazarus en las que utilizó falsas ofertas de trabajo, es probable que este payload se haya distribuido a través de spearphishing o mensajes directos en LinkedIn. El archivo contiene un solo archivo: un binario nativo de Intel de 64 bits escrito en Go y llamado HSBC job offer․pdf que en español se traduce como “HSBC oferta de trabajo.pdf”.

Curiosamente, la extensión del archivo no es .pdf. Esto se debe a que el carácter de punto en el nombre de archivo es un líder de punto representado por el carácter Unicode U+2024. El uso del carácter de líder de punto en el nombre de archivo probablemente fue un intento de engañar al administrador de archivos para que trate al archivo como un ejecutable en lugar de un PDF. Esto podría hacer que el archivo se ejecute cuando se hace doble clic en él en lugar de abrirlo con un visor de PDF. Al ejecutarlo, se muestra al usuario un documento PDF falso utilizando xdg-open, que abrirá el documento utilizando el lector de PDF de preferencia del usuario (ver figura 3). Decidimos llamar a este downloader ELF OdicLoader, ya que tiene un rol similar a los IconicLoaders en otras plataformas y el payload se obtiene de OpenDrive.

OdicLoader droppea un documento PDF falso que abre utilizando el visor de PDF predeterminado del sistema (ver figura 2), y luego descarga un backdoor de segunda etapa desde el servicio en la nube de OpenDrive. El archivo descargado se almacena en~/.config/guiconfigd (SHA-1: 0CA1723AFE261CD85B05C9EF424FC50290DCE7DF). Llamamos a este backdoor de segunda etapa SimplexTea.

Como último paso de su ejecución, OdicLoader modifica ~/.bash_profile, y de esta manera se inicia SimplexTea con Bash y su salida se mutea (~/.config/guiconfigd >/dev/null 2>&1).

Figura 2. Ilustración de la probable cadena de compromiso.

Figura 3. Un señuelo que utiliza el nombre de HSBC en la campaña de DreamJob para Linux.

SimplexTea es un backdoor para Linux escrito en C++. Como se destaca en la Tabla 1, los nombres de sus clases son muy similares a los nombres de las funciones encontradas en una muestra, con el nombre de archivo “sysnetd“, enviada a VirusTotal desde Rumania (SHA-1: F6760FB1F8B019AF2304EA6410001B63A1809F1D). Debido a las similitudes en los nombres de las clases y las funciones entre SimplexTea y sysnetd, creemos que SimplexTea es una versión actualizada, reescrita de C a C++.

Tabla 1. Comparación de los nombres de los símbolos originales de dos backdoors para Linux que se cargaron a VirusTotal.

guiconfigd
(SimplexTea for Linux, from Georgia)

sysnetd
(BADCALL for Linux, from Romania)

CMsgCmd::Start(void) MSG_Cmd
CMsgSecureDel::Start(void) MSG_Del
CMsgDir::Start(void) MSG_Dir
CMsgDown::Start(void) MSG_Down
CMsgExit::Start(void) MSG_Exit
CMsgReadConfig::Start(void) MSG_ReadConfig
CMsgRun::Start(void) MSG_Run
CMsgSetPath::Start(void) MSG_SetPath
CMsgSleep::Start(void) MSG_Sleep
CMsgTest::Start(void) MSG_Test
CMsgUp::Start(void) MSG_Up
CMsgWriteConfig::Start(void) MSG_WriteConfig
  MSG_GetComInfo
CMsgHibernate::Start(void)  
CMsgKeepCon::Start(void)  
CMsgZipDown::Start(void)  
CMsgZip::StartZip(void *)  
CMsgZip::Start(void)  
CHttpWrapper::RecvData(uchar *&,uint *,uint,signed char)  
  RecvMsg
CHttpWrapper::SendMsg(_MSG_STRUCT *) SendMsg
CHttpWrapper::SendData(uchar *,uint,uint)  
CHttpWrapper::SendMsg(uint,uint,uchar *,uint,uint)  
CHttpWrapper::SendLoginData(uchar *,uint,uchar *&,uint *)  

¿Cómo está relacionado sysnetd con Lazarus? La siguiente sección muestra similitudes con el backdoor para Windows de Lazarus llamado BADCALL.

BADCALL para Linux

Atribuimos sysnetd a Lazarus debido a sus similitudes con los siguientes dos archivos (y creemos que sysnetd es una variante para Linux del backdoor para Windows de Lazarus llamado BADCALL):

  • P2P_DLL.dll (SHA-1: 65122E5129FC74D6B5EBAFCC3376ABAE0145BC14), muestra similitudes de código con sysnetd en la forma de los dominios utilizados como fachada para una conexión TLS falsa (ver Figura 4). CISA lo atribuyó a Lazarus en diciembre de 2017. A partir de septiembre de 2019, CISA comenzó a llamar a las versiones más nuevas de este malware BADCALL (SHA-1: D288766FA268BC2534F85FD06A5D52264E646C47).

Figura 4. Similitudes entre una variante de BADCALL para Windows y una para Linux (una lista de dominios utilizados como fachada para una conexión TLS falsa)

  • prtspool (SHA-1: 58B0516D28BD7218B1908FB266B8FE7582E22A5F) muestra similitudes de código con sysnetd (ver Figura 5). Fue atribuido a Lazarus por CISA en febrero de 2021. También se observa que SIMPLESEA, un backdoor para macOS descubierto durante la respuesta al incidente de 3CX, implementa el cifrado de flujo A5/1.

Figura 5. Similitudes entre AppleJeus para macOS y la variante para Linux de BADCALL (la clave para el cifrado de flujo A5/1)

Esta versión para Linux del backdoor BADCALL, sysnetd, carga su configuración desde un archivo llamado /tmp/vgauthsvclog. Dado que los operadores de Lazarus han disfrazado previamente sus payloads, el uso de este nombre, que es utilizado por el servicio de autenticación de invitados de VMware, sugiere que el sistema objetivo puede ser una máquina virtual VMware de Linux. Es interesante destacar que la clave XOR en este caso es la misma que la utilizada en SIMPLESEA de la investigación de 3CX.

Figura 6. Cargando un archivo de configuración por BADCALL para Linux, ver Figura 8

Al observar los tres enteros de 32 bits, 0xC2B45678, 0x90ABCDEF y 0xFE268455 de la Figura 5, que representan una clave para una implementación personalizada del cifrado A5/1, nos dimos cuenta de que el mismo algoritmo y las claves idénticas se utilizaron en un malware para Windows que se remonta a finales de 2014 y que estuvo involucrado en uno de los casos más notorios de Lazarus: el ciber-sabotaje a Sony Pictures Entertainment (SHA-1: 1C66E67A8531E3FF1C64AE57E6EDFDE7BEF2352D).

Figura 7. Procedimiento de descifrado compartido entre BADCALL para Linux y el malware destructivo dirigido a Windows de 2014

Puntos adicionales para la atribución

Para resumir lo que hemos mencionado hasta ahora, atribuimos el ataque a la cadena de suministro de 3CX al grupo Lazarus con un alto nivel de confianza. Esto se basa en los siguientes factores:

  1. Malware (el conjunto de intrusiones):
    • El IconicLoader (samcli.dll) utiliza el mismo tipo de cifrado fuerte – AES-GCM – que SimplexTea (cuya atribución a Lazarus se estableció a través de la similitud con BALLCALL para Linux); solo difieren las claves e inicialización de vectores.
    • Basado en los encabezados PE Rich, tanto IconicLoader (samcli.dll) como IconicStealer (sechost.dll) son proyectos de un tamaño similar y compilados en el mismo entorno de Visual Studio que los ejecutables iertutil.dll (SHA-1: 5B03294B72C0CAA5FB20E7817002C600645EB475) e iertutil.dll (SHA-1: 7491BD61ED15298CE5EE5FFD01C8C82A2CDB40EC) reportados en las campañas de criptomonedas de Lazarus por Volexity y Microsoft. Incluimos a continuación la regla YARA RichHeaders_Lazarus_NukeSped_IconicPayloads_3CX_Q12023, que notifica todas estas muestras, y ningún archivo malicioso o limpio no relacionado, como se probó en las bases de datos actuales de ESET y las muestras cargadas recientemente a VirusTotal.
    • El payload de SimplexTea carga su configuración de una manera muy similar al malware SIMPLESEA según la respuesta oficial sobre el incidente a 3CX. La clave XOR difiere (0x5E vs. 0x7E), pero la configuración tiene el mismo nombre: apdl.cf (ver Figura 8).

Figura 8. Carga de un archivo de configuración por SimplexTea para Linux, cf. Figura 6

Infraestructura:

  • Hay una infraestructura de red compartida con SimplexTea, ya que utiliza https://journalide[.]org/djour.php como su C&C, cuyo dominio se informó en los resultados oficiales proporcionados por la respuesta al incidente a 3CX realizada por Mandiant.

Figura 9. Una URL hardcodeada en SimplexTea para Linux

Conclusión

El ataque a la cadena de suministro de 3CX ha llamado mucho la atención de la comunidad de seguridad desde su divulgación el 29 de marzo. El software comprometido, desplegado en varias infraestructuras de TI, permite la descarga y ejecución de cualquier tipo de payload, por lo tanto el impacto de un ataque de estas características puede ser devastador. Desafortunadamente, ningún proveedor de software está expuesto a ser comprometido y distribuir inadvertidamente versiones troyanizadas de sus aplicaciones.

La sigilosa naturaleza de un ataque de cadena de suministro hace que este método de distribución de malware sea muy atractivo desde la perspectiva del atacante. Lazarus ya ha utilizado esta técnica en el pasado. Por ejemplo, en una campaña dirigida a usuarios del software WIZVERA VeraPort en Corea del Sur en 2020. Las similitudes con otras piezas de malware conocidas y que forman parte del conjunto de herramientas que utiliza Lazarus, además de las técnicas típicas del grupo, sugieren fuertemente que el reciente compromiso de 3CX es también obra de Lazarus.

También es interesante destacar que Lazarus puede producir y utilizar malware para atacar a los principales sistemas operativos de escritorio: Windows, macOS y Linux. Ambos sistemas Windows y macOS fueron atacados durante el incidente de 3CX a través del versiones troyanizadas del software VoIP de 3CX para ambos sistemas operativos que permitían a los atacantes obtener payloads arbitrarias. En el caso de 3CX, existen versiones de malware de segundo nivel para Windows y macOS. Este artículo demuestra la existencia de un backdoor para Linux que se corresponde con el malware SIMPLESEA para macOS visto en el incidente de 3CX. Nombramos este componente de Linux como SimplexTea y mostramos que forma parte de Operation DreamJob, la campaña insignia de Lazarus que se caracteriza por utilizar ofertas de trabajo para atraer y comprometer a víctimas desprevenidas.

IoCs

Archivos

SHA-1 Filename ESET detection name Description
0CA1723AFE261CD85B05C9EF424FC50290DCE7DF guiconfigd Linux/NukeSped.E SimplexTea for Linux.
3A63477A078CE10E53DFB5639E35D74F93CEFA81 HSBC_job_offer․pdf Linux/NukeSped.E OdicLoader, a 64-bit downloader for Linux, written in Go.
9D8BADE2030C93D0A010AA57B90915EB7D99EC82 HSBC_job_offer.pdf.zip Linux/NukeSped.E A ZIP archive with a Linux payload, from VirusTotal.
F6760FB1F8B019AF2304EA6410001B63A1809F1D sysnetd Linux/NukeSped.G BADCALL for Linux.

Red

IP address Domain Hosting provider First seen Details
23.254.211[.]230 N/A Hostwinds LLC. N/A C&C server for BADCALL for Linux
38.108.185[.]79
38.108.185[.]115
od[.]lk Cogent Communications 2023-03-16 Remote OpenDrive storage containing SimplexTea (/d/NTJfMzg4MDE1NzJf/vxmedia)
172.93.201[.]88 journalide[.]org Nexeon Technologies, Inc. 2023-03-29 C&C server for SimplexTea (/djour.php)

Técnicas de MITRE ATT&CK

Tactic ID Name Description
Reconnaissance T1593.001 Search Open Websites/Domains: Social Media Lazarus attackers probably approached a target with a fake HSBC-themed job offer that would fit the target’s interest. This has been done mostly via LinkedIn in the past.
Resource Development T1584.001 Acquire Infrastructure: Domains Unlike many previous cases of compromised C&Cs used in Operation DreamJob, Lazarus operators registered their own domain for the Linux target.
T1587.001 Develop Capabilities: Malware Custom tools from the attack are very likely developed by the attackers.
T1585.003 Establish Accounts: Cloud Accounts The attackers hosted the final stage on the cloud service OpenDrive.
T1608.001 Stage Capabilities: Upload Malware The attackers hosted the final stage on the cloud service OpenDrive.
Execution T1204.002 User Execution: Malicious File OdicLoader masquerades as a PDF file in order to fool the target.
Initial Access T1566.002 Phishing: Spearphishing Link The target likely received a link to third-party remote storage with a malicious ZIP archive, which was later submitted to VirusTotal.
Persistence T1546.004 Event Triggered Execution: Unix Shell Configuration Modification OdicLoader modifies the victim’s Bash profile, so SimplexTea is launched each time Bash is stared and its output is muted.
Defense Evasion T1134.002 Access Token Manipulation: Create Process with Token SimplexTea can create a new process, if instructed by its C&C server.
T1140 Deobfuscate/Decode Files or Information SimplexTea stores its configuration in an encrypted apdl.cf.
T1027.009 Obfuscated Files or Information: Embedded Payloads The droppers of all malicious chains contain an embedded data array with an additional stage.
T1562.003 Impair Defenses: Impair Command History Logging OdicLoader modifies the victim’s Bash profile, so the output and error messages from SimplexTea are muted. SimplexTea executes new processes with the same technique.
T1070.004 Indicator Removal: File Deletion SimplexTea has the ability to delete files securely.
T1497.003 Virtualization/Sandbox Evasion: Time Based Evasion SimplexTea implements multiple custom sleep delays in its execution.
Discovery T1083 File and Directory Discovery SimplexTea can list the directory content together with their names, sizes, and timestamps (mimicking the ls -la command).
Command and Control T1071.001 Application Layer Protocol: Web Protocols SimplexTea can use HTTP and HTTPS for communication with its C&C server, using a statically linked Curl library.
T1573.001 Encrypted Channel: Symmetric Cryptography SimplexTea encrypts C&C traffic using the AES-GCM algorithm.
T1132.001 Data Encoding: Standard Encoding SimplexTea encodes C&C traffic using base64.
T1090 Proxy SimplexTea can utilize a proxy for communications.
Exfiltration T1041 Exfiltration Over C2 Channel SimplexTea can exfiltrate data as ZIP archives to its C&C server.

Apéndice

Esta regla YARA notifica el cluster que contiene tanto IconicLoader como IconicStealer, así como también los payloads desplegados en las camáñas apuntando a criptomonedas que tuvieron lugar en diciembre de 2022.

Fuente:  www.welivesecurity.com