Edición Especial: Cómo domar un Chollima
Descubrimos un nuevo malware de Corea del Norte. Y (por el momento) vivimos para contártelo.
En BCA LTD nos dedicamos a la Inteligencia de Amenazas: documentamos, perfilamos y perseguimos a quienes intentan hacerle daño a otros en internet, incluso cuando se trata de actores patrocinados por un Estado (hackers del gobierno). En nuestra breve historia, hemos perfilado infraestructura de Corea del Norte e incluso descubrimos —y bautizamos— una cepa de malware creada por ellos, QRLog.
Esta es otra historia de hackers profesionales norcoreanos lanzando una campaña de espionaje corporativo. En esta ocasión, analizamos su infraestructura y descubrimos un nuevo malware que bautizamos bajo el nombre Chaotic Capybara.
Nosotros
Trabajamos en esta investigación:
Chollimas
Un Chollima (o Cheonma, o Senrima) es un animal mitológico de Asia similar al Pegaso. Es un símbolo de progreso en Corea del Norte y hasta un importante movimiento político lleva su nombre. También es la denominación que utiliza Crowdstrike para referirse a los actores de amenazas patrocinados por el régimen norcoreano: hackers profesionales, espías corporativos, especialistas en lavado de criptoactivos y otras clases de criminales de alto perfil.
Estos actores englobados dentro del infame Grupo Lazarus, son empleados del Buró General de Reconocimiento y se agrupan en distintas divisiones con sus propias funciones y especialidades:
🇰🇵 Labyrinth Chollima: Espionaje económico, robo de criptoactivos. Son los creadores de QRLog, al que distribuían en entrevistas de trabajo falsas disfrazado como un “desafío técnico” para los entrevistados.
🇰🇵 Stardust Chollima: Robo de criptoactivos de alto perfil. Involucrados en los ataques al Banco de Chile, Cosmos Bank (India), Bancomext (México) y el ataque a los cajeros de Redbanc (Chile), entre otros.
🇰🇵 Silent Chollima: Espionaje económico de alto perfil. Condujeron la campaña de cryptojacking Papercut en 2023, donde invadieron múltiples servidores alrededor del mundo para desplegar mineros de criptomonedas.
🇰🇵 Famous Chollima: División descubierta recientemente dedicada a conseguir trabajos remotos en Occidente para hacer espionaje corporativo y robar criptoactivos.
🇰🇵 Ricochet Chollima: División especial dedicada a atacar entidades de gobierno de Corea del Sur y medios periodísticos. En 2023 llevaron a cabo una extensa campaña de Spear-Phishing contra el periódico Daily NK de Seúl.
🇰🇵 Velvet Chollima: También conocido como “Kimsuky” y definido por algunos vendors de la industria como uno de los grupos “de élite” de Lazarus. Al momento de escribir este artículo están llevando a cabo la campaña "Contagious Interview” o “DevPopper”.
Sobre dicha campaña trata este artículo.
Una entrevista contagiosa
Contagious Interview es una campaña de ciberespionaje atribuida al grupo norcoreano Velvet Chollima, dirigida al ecosistema cripto financiero y Web3.
Desde BCA LTD la estuvimos analizando, identificando varios sitios falsos suplantando a Zoom y a eventos de inversión Web3, con el objetivo de distribuir un nuevo malware al que bautizamos “Chaotic Capybara” (a veces mal clasificado como NukeSped).
Si trabajás o sos founder en el ecosistema Web3, sos un posible blanco de esta campaña. Como profesional calificado, es probable que recibas una oferta de trabajo de ensueño: tu perfil encaja perfecto con el rol, y el sueldo ofrecido supera ampliamente tus expectativas. El problema es que la entrevista es falsa. Espías norcoreanos estuvieron revisando tu perfil y estudiándote para hacerte una oferta hecha a medida.
Esa entrevista va a ir muy bien, y como último paso te van a pedir que resuelvas un challenge técnico. Al ejecutarlo, tu computadora pasa a formar parte de la infraestructura de Lazarus como miembro honorario. El principal problema ahora es que un afiliado del grupo va a recibir acceso a tu equipo, desde donde va a conducir su rutina de espionaje: robo de secretos corporativos, propiedad intelectual, e intentar propagarse hacia tus contactos o compañeros de trabajo.
Si sos founder, ejecutivo o estás más cerca de la junta que del datacenter, el riesgo es aún mayor. En lugar de ofrecerte trabajo, van a proponerte negocios, acuerdos o financiación, invitándote a una reunión por Zoom para avanzar.
Cuando intentes entrar, tus interlocutores van a fingir que no te escuchan, que no te ven, o que hay algún problema técnico que impide que la reunión se desarrolle con normalidad. Dada la importancia del encuentro, es probable que no pienses con claridad y trates de resolver el problema lo antes posible.
En ese momento, uno de ellos te va a pasar un link a una sala diferente para “probar si ahí funciona” (en algunas variantes, pueden decir que el link es una actualización de Zoom o incluso otro software de reuniones) .
Ese link va a llevarte a un sitio falso que imita visualmente la plataforma oficial. Un cartel con la misma tipografía te va a decir que necesitás actualizar Zoom para corregir errores de audio. Automáticamente descargará una “actualización” y al instalarla, le estás abriendo la puerta a Chaotic Capybara, una nueva de las tantas ciberarmas norcoreanas.
Lo peor de estos casos es que el atacante puede ingresar al sistema como si estuviera sentado al lado de la víctima, escribiendo con exactamente los mismos permisos que ella.
Veamos ahora cómo funciona en detalle el malware de esta campaña (pero antes, una pregunta).
Castores, Hurones, Nutrias y Capybaras
Esta campaña ha distribuido distintas familias de malware como Beaver Tail (cola de castor), Invisible Ferret (hurón invisible), Otter Cookie (galletita de nutria) y ahora un nuevo invento que bautizamos “Chaotic Capybara” (carpincho quilombero caótico).
Beaver Tail es un malware de tipo stealer y loader escrito en JavaScript ofuscado, distribuido principalmente a través de paquetes maliciosos en el gestor de paquetes Node Package Manager (NPM). Suele descargar e instalar el malware Invisible Ferret.
Invisible Ferret es un backdoor bastante rústico escrito en Python que proporciona al atacante acceso remoto al sistema comprometido, permitiendo la ejecución de comandos, registro de teclas y exfiltración de datos. Debido a su lenguaje, tiene soporte multiplataforma.
Otter Cookie es otro stealer escrito en JavaScript también distribuído en falsos paquetes NPM. Fue uno de los primeros malwares observados en esta campaña.
Por su parte, Chaotic Capybara funciona de una forma algo más rústica, si eso fuese posible. Al ser un malware nuevo tiene 0 detecciones a nivel mundial.
Tuvimos que hacer ingeniería inversa para entender cómo funciona. Según nuestros análisis, este malware exclusivo de macOS está escrito en C++ usando XCode y su nombre en código es “gilly/Target”.
#El malware referencia explícitamente:
main.cpp
#El autor compiló el código desde XCode en:
/Users/[...]/gilly/Target/Target/
#También carga las librerías:
/usr/lib/libc++.1.dylib
/usr/lib/libSystem.B.dylib
Es compilado exclusivamente para arm64 (procesadores Apple Silicon M1, M2, M3, M4), por lo que no funcionará en todas las Mac:
#El nombre del binario fue modificado
> file chaotic_capybara
chaotic_capybara: Mach-O 64-bit executable arm64
Un análisis preliminar muestra algunas strings interesantes sobre su interacción con el sistema:
#Lee el valor de una variable de entorno.
getenv
#Cambia el directorio actual de trabajo.
chdir
#Genera un número aleatorio.
rand
#Inicializa la semilla para rand.
srand
Ejecuta una instrucción EOR (XOR) en el offset 0x8506 indicando decodificación u ofuscación de datos, probablemente sus servidores de Comando y Control (C2) que no están expuestos a simple vista.
En algunas instancias macOS le asigna el atributo “cuarentena” al malware, evitando su ejecución. Lo removemos con:
#El nombre del binario fue modificado
xattr -d com.apple.quarantine ./chaotic_capybara
Al ejecutarse, intentará revisar el estado de SIP (System Integrity Protection o Protección Integral del Sistema) y desactivarlo. Esta información es obtenida a partir de un análisis con dtruss una herramienta oriunda de BSD.
#Output de dtruss
#Intento de consultar o modificar SIP (falló, como debe ser)
csrctl(0x0, 0x16D56F63C, 0x4) = -1 Err#1
#Intento de consultar o modificar SIP (falló, como debe ser)
csrctl(0x0, 0x16D56F62C, 0x4) = -1 Err#1
#Interacción directa con csrutil (posible chequeo de políticas activas)
csrctl(0x0, 0x16D56BE1C, 0x4) = 0 0
Al mismo tiempo que intenta interactuar con el sistema de seguridad MAC (Mandatory Access Control) de Apple:
#Output de dtruss
#Llamadas al sistema de etiquetas MAC (seguridad, sandbox, integridad)
__mac_syscall(0x19082F4E5, 0x2, 0x16D56F570) = 0 0
__mac_syscall(0x19082C318, 0x5A, 0x16D56F5C0) = 0 0
__mac_syscall(0x19082F4E5, 0x2, 0x16D56F090) = 0 0
__mac_syscall(0x19082F4E5, 0x2, 0x16D56C2D0) = 0 0
Lo siguiente es intentar obtener información del sistema víctima, intentando identificar si está corriendo en un entorno virtual:
#Output de dtruss
#Consulta genérica o no documentada (podría ser detección de entorno)
sysctl([unknown, 3, 0, 0, 0, 0] (2), 0x16D56EB28, 0x16D56EB20, 0x19082E00B, 0xD) = 0 0
#Posible chequeo de políticas de boot o integridad (boot policy check)
sysctl([CTL_KERN, 145, 0, 0, 0, 0] (2), 0x16D56EBD8, 0x16D56EBD0, 0x0, 0x0) = 0 0
#Consulta genérica o no documentada (podría ser detección de entorno)
sysctl([unknown, 3, 0, 0, 0, 0] (2), 0x16D56C208, 0x16D56C200, 0x19428DD3A, 0x15) = 0 0
#Posible chequeo de entorno de ejecución o seguridad del kernel
sysctl([CTL_KERN, 143, 0, 0, 0, 0] (2), 0x16D56C298, 0x16D56C290, 0x0, 0x0) = 0 0
Una vez instalado intentará disimularse en el directorio Librería de macOS como un proceso relacionado al DNS. Múltiples copias del malware pueden ejecutarse en paralelo.
#El nombre del binario fue modificado
/Library/DnsService/chaotic_capybara
Abrirá conexiones a un pool de IPs ubicadas en Hostwinds.
chaotic_capybara [...] TCP 192.168.0.100:53847 ->
client-[...].hostwindsdns.com:https (CLOSED)
chaotic_capybara [...] TCP 192.168.0.100:53080 ->
client-[...].hostwindsdns.com:https (CLOSED)
Luego iniciará un subproceso llamado “XScreen” que se comunica con una IP en Francia, enviándole lo que presumimos es una transmisión de la actividad en pantalla del usuario.
XScreen [...] TCP 192.168.2.100:52956->83.[...].195:https (ESTABLISHED)
El resto es historia, este carpincho no viene exactamente con buenas intenciones. Veamos ahora cómo se distribuye alrededor del mundo.
Infraestructura
Observamos que en esta etapa de la campaña, Velvet Chollima desplegó servidores tanto en Estados Unidos (Hostwinds LLC, PSINet INC) como en Alemania (Noez Gmbh), todos con el mismo stack de software:
Windows
Apache/2.4.58 (Win64)
OpenSSL/3.1.3
PHP/8.2.12
Let's Encrypt
Las plantillas de phishing que alojan intentan suplantar a Zoom y a eventos de inversión Web3 para engañar a la víctima.
#Hash de los sitios suplantando a Zoom
09f7acb4dc385a965c7a70ca64faf005f246555a724a9c3d3029288ef085ba6e
#Hash de los sitios suplantando eventos Web3
021efdb311c9ce6101d7f389c08b511e5f9b0ec3dab499b6f135fae9770ef047
Hay una forma muy fácil de cazar infraestructura de esta etapa de la campaña: buscando sitios y servidores que tengan el mismo favicon (ese ícono pequeño que vemos al lado del nombre de cada sitio en las pestañas de nuestro navegador).
Usando este criterio de búsqueda encontramos el resto de la infraestructura disponible en la sección Indicadores de Compromiso y en las Referencias.
Con esto encontramos casi 100 indicadores de compromiso para ayudar a otros investigadores y laboratorios a perfilar y bloquear esta etapa de la campaña.
Pero también encontramos otro detalle interesante.
Agradecimientos especiales
A “Artyom”, desarrollador de Chaotic Capybara según los datos de compilación que se olvidó de asegurar en la muestra.
#Directorio del proyecto
/Users/artyom/Documents/gilly/Target/Target/
#Objeto compilado "main.o"
/Users/artyom/Library/Developer/Xcode/DerivedData/Target-[...]/Build/Intermediates.noindex/Target.build/Release/Target.build/Objects-normal/arm64/main.o
¡Hay que trabajar más en esa OPSEC, ya pasó con QRLog!
Y con esto termina nuestro ejercicio de hoy. En BCA LTD somos especialistas en inteligencia y cacería de amenazas.
También –a veces– domamos Chollimas.
Indicadores de Compromiso (IOCs)
Hay más de 80 indicadores de compromiso de este nuevo cluster de Velvet Chollima, pero les dejamos los principales acá:
IPv4:38.110.228.112
IPv4:5.230.44.79
IPv4:5.230.252.157
IPv6:2607:5500:3000:aa0::2
El resto de los indicadores los compartimos en este pulso de inteligencia en LevelBlue.