La campaña norcoreana oculta el código malicioso OTTERCOOKIE en imágenes de banderas SVG

Los atacantes vinculados a Corea del Norte ocultan malware alineado con OTTERCOOKIE dentro de archivos SVG con banderas de países distribuidos mediante pruebas de codificación de desarrolladores falsas. El código malicioso se ejecuta cuando un objetivo inicia el proyecto de comercio electrónico proporcionado, no cuando alguien simplemente ve una imagen.

La campaña, identificada como REF9403, utiliza ingeniería social en lugar de una vulnerabilidad de software. Los atacantes se hacen pasar por reclutadores o propietarios de proyectos, se acercan a los desarrolladores con oportunidades laborales y los convencen para que descarguen y ejecuten una evaluación de codificación funcional.

Elastic Security Labs descubrió REF9403después de que un atacante publicara una oportunidad de desarrollador en el espacio de trabajo comunitario de Slack de la empresa. Elastic vincula la operación con Contagious Interview, una campaña de larga duración atribuida a actores alineados con Corea del Norte.

Cómo llega la prueba de codificación falsa a los desarrolladores

El 26 de mayo de 2026, un usuario de Slack llamado "Maxwell" publicó en un canal de empleo y afirmó que necesitaba ayuda para modernizar una plataforma de comercio electrónico. Los desarrolladores interesados ​​fueron enviados a mensajes privados y se les pidió que completaran una evaluación de codificación.

El proyecto presentado parecía legítimo. Utilizó tecnologías de desarrollo web familiares y permaneció funcional después de la instalación, lo que ayudó a que el repositorio pareciera una prueba técnica genuina.

Este enfoque explota la confianza que los desarrolladores depositan en los flujos de trabajo de contratación. Un candidato espera clonar repositorios, instalar dependencias, inspeccionar código e iniciar servidores locales durante una evaluación, dando a los atacantes una razón plausible para solicitar acciones potencialmente peligrosas.

El proyecto contenía imágenes SVG que mostraban banderas de países. Archivos comoAE.svgyAF.svgse representaban normalmente, pero su fuente contenía bloques de comentarios de estilo HTML que contenían fragmentos de malware codificados en Base64.

SVG es un formato de imagen basado en XML que puede contener texto, metadatos y comentarios. En este caso, los atacantes no ocultaron el código mediante cambios en los píxeles de la imagen. Colocaron texto codificado directamente dentro de los comentarios que un espectador de imágenes ignoraría.

Un archivo JavaScript llamadoserverValidation.jsrecopiló los archivos SVG, los ordenó alfabéticamente, extrajo los comentarios y unió los fragmentos. Luego decodificó y ejecutó la carga útil de JavaScript reconstruida.

Etapa de ataqueActividad observada
señuelo de reclutamientoOportunidad de desarrollador falsa publicada a través de Slack
contacto privadoLos objetivos interesados ​​pasaron a los mensajes directos
Entrega del proyectoSe proporciona una evaluación de codificación funcional de comercio electrónico
Almacenamiento de carga útilFragmentos de Base64 colocados en comentarios dentro de archivos de bandera SVG
ReconstrucciónserverValidation.jsLee y une los fragmentos.
EjecuciónJavaScript recuperado se ejecuta cada vez que se inicia el servidor del proyecto
Robo de datosCredenciales, billeteras, archivos y datos del portapapeles recopilados
Acceso remotoEl canal Socket.IO permite la ejecución interactiva de comandos

La carga útil se ejecuta al iniciar el servidor

el proyectoserver/index.jsEl archivo llama a la rutina de validación maliciosa después de configurar su middleware inicial. Ambosnpm run devynpm startinicie este archivo de servidor.

Como resultado, el malware se ejecuta cada vez que se inicia el servidor de desarrollo local. Es posible que los controles del administrador de paquetes que se centran únicamente en los scripts de instalación no detengan esta ruta de ejecución.

Esto también significa que una vista previa SVG por sí sola no infecta el sistema. El ataque observado requiere que el objetivo ejecute el proyecto y active el JavaScript del lado del servidor que reconstruye la carga útil oculta.

Por qué los investigadores lo llaman alineado con OTTERCOOKIE

Elastic encontró similitudes entre el JavaScript recuperado y OTTERCOOKIE, incluidas cadenas coincidentes, estructura de código, comportamiento y puntos finales de API. Sin embargo, la muestra incluía modificaciones y capacidades combinadas previamente divididas entre familias de malware relacionadas.

ElAnálisis de la entrevista contagiosa de Microsoftdescribe OTTERCOOKIE como una puerta trasera modular de JavaScript que puede ejecutar comandos, buscar claves de criptomonedas, cargar módulos adicionales y filtrar datos.

Elastic dijo que los límites entre OTTERCOOKIE y BEAVERTAIL se han vuelto menos claros. La carga útil REF9403 funciona como un conjunto de herramientas todo en uno sin la etapa Python vista en algunas infecciones anteriores de Contagious Interview.

Se ejecutan cuatro módulos de malware en el dispositivo

El JavaScript reconstruido lanza cuatro componentes principales. Juntos, brindan robo de credenciales, recopilación de archivos, monitoreo del portapapeles y acceso remoto.

El primer componente tiene como objetivo las credenciales del navegador, bases de datos de autocompletar y extensiones de billetera de criptomonedas en Windows, macOS y Linux. Cambia el título de su proceso anpm-cachepara que parezca un proceso ordinario de Node.js.

Los otros componentes buscan en el sistema de archivos, crean un canal de comando Socket.IO y recopilan el contenido del portapapeles. En Windows, el malware también puede intentar descargar archivos ejecutables adicionales desde la infraestructura controlada por el atacante.

MóduloCapacidad principalPlataformas compatibles
Ladrón de navegadores y billeterasRecopila datos guardados del navegador y bases de datos de extensiones de billeteras de criptomonedasWindows, macOS y Linux
ladrón de archivosBusca documentos, código fuente, credenciales y archivos de configuración.Windows, macOS y Linux
Zócalo.IO RATAProporciona registro del sistema y ejecución interactiva de comandos de shell.Windows, macOS y Linux
Ladrón de portapapelesSupervisa y carga cambios en el contenido del portapapelesWindows y macOS
Gotero de carga útilIntenta descargar y ejecutar archivos adicionalesventanas

Credenciales de navegador y carteras de criptomonedas dirigidas

El módulo de credenciales busca perfiles pertenecientes a navegadores como Chrome, Edge, Brave, Opera y LT Browser. Las rutas exactas del navegador varían según el sistema operativo.

Se dirige a bases de datos que pueden contener inicios de sesión guardados, información de autocompletar y datos de extensión. Los ejemplos también contienen una lista codificada de 25 extensiones de navegador de billeteras de criptomonedas, incluidas MetaMask, Phantom, Rabby, Trust Wallet, TronLink, OKX Wallet y alternativas relacionadas con Coinbase.

En macOS, el módulo también intenta recopilar la base de datos de llaveros de inicio de sesión del usuario. Las sesiones de navegador robadas o los datos de extensiones de billetera podrían seguir siendo útiles incluso después de que una víctima cambie la contraseña de una cuenta.

File Stealer busca directorios de desarrolladores

El componente de robo de archivos busca archivos de entorno, claves privadas, historiales de shell, documentos, código fuente, archivos de configuración e imágenes. En Windows, enumera las unidades montadas antes de escanearlas.

En macOS y Linux, la búsqueda se centra en el directorio de inicio del usuario. Rutas que contienen.aws,.azure,.config,.ssh,.bash_historyo.zsh_historyrecibir especial atención.

Esta focalización crea un riesgo organizacional grave. Las máquinas de los desarrolladores a menudo contienen credenciales de nube, tokens de repositorio, claves SSH y acceso a sistemas CI/CD que podrían soportar un compromiso más amplio.

  • Archivos de entorno que contienen secretos de aplicaciones.
  • Credenciales de AWS y Azure
  • Claves privadas SSH y configuración
  • Historiales de comandos de Shell
  • Archivos de código fuente y documentos de proyecto.
  • Bases de datos de inicio de sesión del navegador
  • Datos de extensión de billetera de criptomonedas
  • Datos del llavero de inicio de sesión de macOS

La puerta trasera Socket.IO ofrece a los atacantes un shell interactivo

El módulo de acceso remoto se conecta acontroller.rightwidth[.]deva través de Socket.IO sobre HTTPS. Registra el sistema infectado y envía información de identificación del host al controlador.

Un operador puede enviar un comando de shell a través del canal. El malware lo ejecuta con Node.jschild_process.exec()y devuelve el resultado, proporcionando acceso interactivo a la máquina comprometida.

El módulo busca signos de VMware, VirtualBox, QEMU y otros entornos virtualizados. Un resultado positivo agrega una etiqueta de máquina virtual a la información de registro, pero el malware continúa ejecutándose.

La supervisión del portapapeles se ejecuta cada medio segundo

En Windows y macOS, el componente del portapapeles busca contenido nuevo cada 500 milisegundos. Cualquier cambio puede enviarse a la infraestructura del atacante.

Los sistemas Windows ejecutan comandos ocultos repetidos de PowerShell usandoGet-Clipboard. En macOS, el malware utiliza elpbpastedominio. La implementación de Linux en la muestra analizada no recopiló el contenido del portapapeles.

Esta característica podría exponer contraseñas, tokens API, direcciones de billetera, frases de recuperación o mensajes privados que un desarrollador copia durante el trabajo normal.

El componente de Windows intenta realizar descargas adicionales

El cuentagotas exclusivo de Windows intenta descargar tres archivos disfrazados con.txtextensiones. les cambia el nombre comohostService.exe,printSvc.exeydhcpSvc.exeantes de la ejecución.

Elastic no pudo recuperar estos archivos porque el servidor no estaba disponible durante el análisis. Por lo tanto, su funcionalidad exacta aún no está confirmada y no debe deducirse de sus nombres de archivos.

La recuperación fallida no hace que un sistema infectado sea seguro. Los módulos de robo de credenciales, recopilación de archivos, monitoreo del portapapeles y acceso remoto ya pueden exponer información confidencial sin esas cargas útiles adicionales.

Una entrevista contagiosa se ha dirigido a los desarrolladores durante años

Contagious Interview ha estado en funcionamiento desde al menos diciembre de 2022. Los atacantes suelen hacerse pasar por reclutadores de empresas de criptomonedas, tecnología o inteligencia artificial y guían a las víctimas a través de un proceso de contratación convincente.

Investigación de entrevistas contagiosas de la Unidad 42Anteriormente se documentó que reclutadores falsos vinculados a Corea del Norte entregaban malware BEAVERTAIL e InvisibleFerret a quienes buscaban empleo en tecnología.

La campaña REF9403 cambia el empaque, pero el objetivo de ingeniería social sigue siendo consistente. El atacante necesita que el objetivo confíe en la tarea y ejecute código en un entorno que contenga credenciales valiosas.

Indicadores asociados con REF9403

Los equipos de seguridad deben combinar indicadores de archivos, redes y comportamiento. Los nombres de los archivos se pueden cambiar fácilmente, mientras que los proyectos legítimos pueden usar coincidentemente nombres genéricos comoecommerce-main.zip.

TipoIndicadorPropósito reportado
ArchivoserverValidation.jsReconstruye la carga útil a partir de comentarios SVG
ArchivoAE.svgyAF.svgEjemplos de archivos de banderas que contienen fragmentos codificados
Título del procesonpm-cacheDisfraz de proceso de malware
Dominiorightwidth[.]devPortapapeles e infraestructura de comando
Dominioldb.rightwidth[.]devRecopilación de datos del navegador y la billetera
Dominioupload.rightwidth[.]devCargas de archivos robados
Dominiocontroller.rightwidth[.]devControlador de acceso remoto Socket.IO
Dominiofile.rightwidth[.]devDescargas de carga útil de Windows
IPv4195.26.248[.]212Infraestructura de mando reportada
IPv4188.40.64[.]61Infraestructura de mando reportada

Cómo los desarrolladores pueden comprobar las evaluaciones de codificación

Los desarrolladores deben tratar cada prueba de codificación no solicitada como código que no es de confianza. Una interfaz pulida, dependencias válidas y características funcionales no establecen que el repositorio sea seguro.

Antes de la ejecución, los revisores deben inspeccionarpackage.json, archivos de inicio del servidor, configuraciones de tareas y scripts que leen directorios de activos. Los comentarios codificados largos dentro de SVG, HTML u otros archivos estáticos también merecen una investigación.

ElGuía de mitigación de Microsoftrecomienda utilizar máquinas virtuales aisladas y no persistentes para las pruebas de codificación y evitar estaciones de trabajo primarias que tengan acceso a sistemas de producción, repositorios o cuentas en la nube.

  • Verificar al reclutador y a la empresa a través de un canal independiente.
  • Verifique la antigüedad y el historial del repositorio y la cuenta del remitente.
  • Revise todos los archivos de configuración de tareas y de inicio.
  • Buscareval(), construcción de funciones dinámicas y ejecución de shell.
  • Inspeccione comentarios dentro de SVG, HTML y otros activos estáticos.
  • Utilice una máquina virtual desechable sin credenciales personales ni corporativas.
  • Restrinja el acceso a la red saliente mientras prueba proyectos desconocidos.
  • No desactive las herramientas de seguridad a petición de un reclutador.

Qué hacer después de ejecutar un repositorio sospechoso

Cualquiera que haya ejecutado un proyecto coincidente debe desconectar el dispositivo de la red y comunicarse con el equipo de seguridad correspondiente. El repositorio, el historial del terminal, la información del proceso y los registros de red deben conservarse antes de la limpieza.

Las credenciales se deben rotar desde un dispositivo de confianza independiente. Los equipos deben revocar las sesiones del navegador, los tokens del repositorio, las credenciales de npm, las claves de la nube y otros secretos que estaban disponibles para la cuenta afectada.

Indicadores REF9403 de Elasticpuede respaldar la búsqueda, pero los socorristas también deben investigar evidencia de comportamiento, como una enumeración amplia de archivos, acceso repetido al portapapeles, procesos Node.js sospechosos y conexiones Socket.IO inesperadas.

  1. Aísle el dispositivo desarrollador sospechoso.
  2. Preservar el repositorio y registrar su fuente y confirmar la información.
  3. Recopile procesos en ejecución, historial de terminales y registros de red.
  4. Busque nombres de archivos, dominios, direcciones IP y hashes de archivos conocidos.
  5. Revocar sesiones activas desde un dispositivo limpio.
  6. Gire las credenciales de GitHub, GitLab, npm, SSH, nube y CI/CD.
  7. Revise las billeteras de criptomonedas y mueva fondos si es probable que haya exposición.
  8. Verifique el control de fuente y los registros de auditoría de la nube para detectar accesos no autorizados.
  9. Investigue otros sistemas a los que se pueda acceder a través de las credenciales almacenadas en el dispositivo.
  10. Reconstruya el punto final cuando los respondedores no puedan establecer el alcance completo.

Los puntos finales de los desarrolladores necesitan un aislamiento más fuerte

Los desarrolladores necesitan herramientas que puedan ejecutar código, instalar paquetes y acceder a servicios externos. Esas capacidades convierten a sus sistemas en objetivos valiosos y pueden debilitar los controles diseñados para dispositivos de oficina comunes.

cuanto antesHallazgos de la Unidad 42 sobre la orientación a desarrolladoresmostró cómo las entrevistas falsas podrían colocar malware multiplataforma en sistemas Windows y macOS. REF9403 extiende ese patrón a activos que los desarrolladores pueden suponer que son inofensivos.

Las organizaciones deben proporcionar entornos dedicados para evaluaciones de candidatos, pruebas de código abierto y repositorios desconocidos. Las credenciales de corta duración, las bóvedas secretas y los límites de acceso estrictos pueden reducir el impacto si un desarrollador ejecuta código malicioso.

Preguntas frecuentes

¿Qué es la campaña REF9403?

REF9403 es un nombre de seguimiento de Elastic Security Labs para una campaña de entrevistas contagiosas vinculada a Corea del Norte que distribuye evaluaciones de codificación maliciosa a desarrolladores de software.

¿Ver una imagen SVG infectada puede ejecutar malware OTTERCOOKIE?

La infección REF9403 observada no comienza cuando alguien simplemente ve la imagen de una bandera. El malware se ejecuta cuando la víctima inicia el proyecto proporcionado y su JavaScript del lado del servidor reconstruye y ejecuta fragmentos Base64 almacenados en comentarios SVG.

¿Qué información puede robar el malware?

El malware puede recopilar credenciales del navegador, datos de autocompletar, bases de datos de extensiones de billeteras de criptomonedas, credenciales de la nube, archivos SSH, archivos de entorno, documentos, código fuente, historiales de shell y contenidos del portapapeles.

¿Qué sistemas operativos se ven afectados?

Los principales módulos de credenciales, robo de archivos y acceso remoto son compatibles con Windows, macOS y Linux. La colección del portapapeles funciona en Windows y macOS en la muestra analizada, mientras que las descargas ejecutables adicionales están dirigidas a Windows.

¿Qué debe hacer un desarrollador después de realizar una prueba de codificación sospechosa?

El desarrollador debe aislar el dispositivo, conservar las pruebas y notificar al equipo de seguridad. Desde un dispositivo limpio separado, las sesiones y credenciales expuestas deben revocarse o rotarse, incluidos tokens de control de fuente, claves de nube, claves SSH y secretos de billeteras de criptomonedas.