Los actores norcoreanos han estado asociados durante mucho tiempo con la amenaza. Entrevista infecciosa Se observó que la campaña utilizaba proyectos maliciosos de Microsoft Visual Studio Code (VS Code) como cebo para implementar una puerta trasera en los puntos finales comprometidos.
Los últimos hallazgos muestran la evolución de la nueva táctica, que se descubrió por primera vez en diciembre de 2025, según Jamf Threat Labs.
“Esta actividad implicó el uso de un implante de puerta trasera que proporciona capacidades de ejecución remota de código en el sistema de la víctima”, dijo el investigador de seguridad Thijs Xhaflaire en un informe proporcionado a The Hacker News.
El ataque, revelado por primera vez por OpenSourceMalware el mes pasado, esencialmente implica ordenar a objetivos potenciales que clonen un repositorio en GitHub, GitLab o Bitbucket e inicien el proyecto en VS Code como parte de una supuesta evaluación del trabajo.
El objetivo final de este esfuerzo es abusar de los archivos de configuración de tareas de VS Code para ejecutar cargas útiles maliciosas implementadas en dominios de Vercel, según el sistema operativo del host infectado. La tarea está configurada para ejecutarse cada vez que este archivo u otro archivo en la carpeta del proyecto se abre en VS Code configurando la opción runOn:folderOpen. En última instancia, esto conduce al uso de BeaverTail e InvisibleFerret.
En iteraciones posteriores de la campaña, se descubrió que sofisticados droppers de múltiples etapas estaban ocultos en los archivos de configuración de tareas disfrazando el malware como diccionarios ortográficos inofensivos como mecanismo alternativo en caso de que la tarea no pueda recuperar la carga útil del dominio Vercel.

Como antes, el JavaScript ofuscado incrustado en estos archivos se ejecuta una vez que la víctima abre el proyecto en el entorno de desarrollo integrado (IDE). Establece comunicación con un servidor remoto (“ip-regions-check.vercel(.)app”) y ejecuta el código JavaScript recibido del mismo. La etapa final del ataque es otro JavaScript muy ofuscado.
Jamf dijo que descubrió otro cambio en esta campaña en el que los actores de amenazas utilizaron un método de infección previamente no documentado para implementar una puerta trasera que proporciona capacidades de ejecución remota de código en el host comprometido. El punto de partida de la cadena de ataque no es diferente en el sentido de que se activa cuando la víctima clona y abre un repositorio Git malicioso usando VS Code.
“Cuando se abre el proyecto, Visual Studio Code solicita al usuario que confíe en el autor del repositorio”, explicó Xhaflaire. “Si se otorga esta confianza, la aplicación procesará automáticamente el archivo de configuración task.json del repositorio, lo que puede resultar en la ejecución de comandos arbitrarios integrados en el sistema”.
“En los sistemas macOS, esto da como resultado la ejecución de un comando de shell en segundo plano que usa nohup bash -c en combinación con curl -s para recuperar de forma remota una carga útil de JavaScript y pasarla directamente al tiempo de ejecución de Node.js. Esto permite que la ejecución continúe de forma independiente cuando el proceso de Visual Studio Code sale, mientras se suprime toda la salida del comando”.
La carga útil de JavaScript alojada en Vercel contiene la lógica de puerta trasera principal para establecer un bucle de ejecución persistente que recopila información básica del host y se comunica con un servidor remoto para permitir la ejecución remota de código, la toma de huellas digitales del sistema y la comunicación continua.
En un caso, la empresa de administración de dispositivos Apple observó que se ejecutaban declaraciones JavaScript adicionales aproximadamente ocho minutos después de la infección inicial. El JavaScript recién descargado envía una señal al servidor cada cinco segundos, ejecuta JavaScript adicional y elimina los rastros de su actividad tan pronto como recibe una señal del operador. Existen sospechas de que el guión pudo haber sido creado utilizando una herramienta de inteligencia artificial (IA), ya que el código fuente contiene comentarios y textos en línea.
Se sabe que los actores de amenazas con vínculos con la República Popular Democrática de Corea (RPDC) apuntan particularmente a los desarrolladores de software, especialmente aquellos que trabajan en los sectores de criptomonedas, blockchain y fintech, ya que a menudo tienen acceso privilegiado a activos financieros, billeteras digitales e infraestructura técnica.
Al comprometer sus cuentas y sistemas, los atacantes podrían obtener acceso no autorizado al código fuente, la propiedad intelectual y los sistemas internos y explotar los activos digitales. Estos cambios constantes en sus tácticas se consideran un intento de lograr un mayor éxito en su ciberespionaje y lograr objetivos financieros en apoyo del régimen fuertemente sancionado.
El desarrollo se produce cuando Red Asgard detalla su investigación sobre un repositorio malicioso que se descubrió que utilizaba una configuración de tarea VS Code para recuperar JavaScript ofuscado diseñado para colocar una puerta trasera completamente funcional llamada Tsunami (también conocida como TsunamiKit) junto con un minero de criptomonedas XMRig.

Un análisis más detallado de Security Alliance la semana pasada también reveló el abuso de las tareas de VS Code por parte de la campaña en un ataque dirigido a una víctima no especificada en LinkedIn, con los actores de la amenaza afirmando ser el director de tecnología de un proyecto llamado Meta2140 y compartiendo una introducción. Entonces, el enlace contiene una evaluación técnica y una URL a un repositorio de Bitbucket que aloja el código malicioso.
Curiosamente, la cadena de ataque está diseñada para depender de otros dos métodos: instalar una dependencia npm maliciosa llamada “grayavatar” o ejecutar código JavaScript responsable de recuperar un sofisticado controlador Node.js, que a su vez ejecuta cinco módulos diferentes para registrar pulsaciones de teclas, tomar capturas de pantalla, escanear el directorio de inicio del sistema en busca de archivos confidenciales, reemplazar direcciones de billetera copiadas en el portapapeles, obtener credenciales de navegadores web y establecer una conexión persistente a un servidor remoto.
Luego, el malware utiliza un script stager para configurar un entorno Python paralelo que permite la recopilación de datos, la extracción de criptomonedas mediante XMRig, el registro de teclas y la implementación de acceso remoto de AnyDesk. Vale la pena señalar que las capas de Node.js y Python se denominan BeaverTail e InvisibleFerret, respectivamente.
Estos resultados sugieren que los actores patrocinados por el estado están experimentando con múltiples métodos de entrega simultáneamente para aumentar la probabilidad de que sus ataques tengan éxito.
“Esta actividad destaca la evolución continua de los actores de amenazas relacionados con la RPDC a medida que adaptan constantemente sus herramientas y mecanismos de entrega para integrarlos en flujos de trabajo legítimos de desarrolladores”, dijo Jamf. “El uso indebido de los archivos de configuración de tareas de Visual Studio Code y la ejecución de Node.js muestra cómo estas técnicas están evolucionando junto con las herramientas de desarrollo de uso común”.