En una investigación muy detallada, el equipo de investigación de amenazas de
la empresa Socket ha descubierto un ataque continuo y altamente selectivo a la
cadena de suministro, atribuido a actores norcoreanos, que se cree está
vinculado a la campaña «Contagious Interview». Los atacantes utilizan paquetes
NPM con errores tipográficos y sofisticada ingeniería social para comprometer
a desarrolladores e ingenieros de software que buscan empleo.
Los atacantes han publicado 35 paquetes NPM maliciosos utilizando 24 cuentas,
seis de las cuales siguen activas al momento del informe, incluyendo
react-plaid-sdk, sumsub-node-websdk y vite-loader-svg. En conjunto,
estos paquetes se han descargado más de 4.000 veces.

Cada paquete contiene un cargador de JavaScript malicioso con codificación
hexadecimal conocido como HexEval.
Socket describe su función:
«HexEval Loader recopila metadatos del host, decodifica su script de
seguimiento y, al activarse, obtiene y ejecuta BeaverTail, el malware de
segunda etapa que roba información y está vinculado a los atacantes de la
República Popular Democrática de Corea (RPDC)».
Esta estructura de malware en capas (HexEval → BeaverTail → InvisibleFerret)
evade los análisis de código estático y deja poco rastro forense en el
registro NPM.
La campaña comienza con ingeniería social convincente. Operativos norcoreanos
se hacen pasar por reclutadores en LinkedIn y atraen a desarrolladores con
ofertas de trabajo lucrativas (por ejemplo, de 16.000 a 25.000 dólares al
mes). Los atacantes entregan tareas de código con paquetes maliciosos
integrados, instando a las víctimas a ejecutarlas fuera de entornos
contenedorizados mientras comparten la pantalla.
Se contacta a las víctimas con ofertas de trabajo lucrativas… instruyendo a
los desarrolladores de blockchain a interactuar con un repositorio de
Bitbucket como parte de un proceso de reclutamiento falso.
Una vez ejecutado el código, HexEval transmite datos del entorno a un servidor
C2 y obtiene BeaverTail, un malware de segunda etapa que ataca las cookies del
navegador, datos de IndexedDB, monederos de criptomonedas y archivos de
llavero de macOS.
BeaverTail escanea los sistemas de archivos locales… incluyendo perfiles de
Brave, Chrome y Opera. Intenta extraer archivos como el id.json de
Solana y los datos del monedero de Exodus.
El malware se adapta dinámicamente a los hosts de Windows, macOS y Linux. En
algunos casos, también se implementa una puerta trasera de tercera etapa,
InvisibleFerret.
Varios paquetes contienen scripts de reconocimiento que identifican el host:
En el caso de jsonsecs, también se integró un keylogger multiplataforma que se
conecta a las funciones de entrada del sistema operativo para capturar las
pulsaciones de teclas en tiempo real.
«El paquete jsonsecs incluye binarios nativos compilados… lo que permite la
exfiltración o la vigilancia en tiempo real por parte de los actores de
amenazas».
Socket observa un cambio de la infección directa de malware a un enfoque
modular de recuperación bajo demanda mediante HexEval. Esto dificulta la
detección y retrasa la ejecución de las cargas útiles hasta que se cumplen las
condiciones de tiempo de ejecución.
Socket advierte:
«La campaña sigue activa y prevemos que aparezcan más paquetes
maliciosos».
Recomiendan a los desarrolladores:
- Evitar instalar paquetes npm desde cuentas desconocidas o sospechosas.
-
Utilizar entornos aislados o en contenedores para ejecutar código
desconocido. -
Comprobar si hay errores tipográficos e inspeccionar el código fuente de las
dependencias. -
Utilizar herramientas automatizadas de seguridad de la cadena de suministro
que detecten anomalías basadas en el comportamiento.