Imagen Principal

Los actores de amenazas norcoreanos responsables de la campaña “Contagious Interview” han inundado el registro npm con 197 paquetes maliciosos adicionales desde el mes pasado. Según un análisis de Socket, estos paquetes han acumulado más de 31,000 descargas y están diseñados para distribuir una variante de OtterCookie que combina características de BeaverTail y versiones anteriores de OtterCookie.

Mecanismo de Infección y Capacidades del Malware

El malware, una vez ejecutado, realiza varias acciones de evasión, perfila la máquina comprometida y establece un canal de comando y control (C2). Este canal proporciona a los atacantes una shell remota y capacidades de robo de datos, que incluyen:

  • Robo de contenido del portapapeles.
  • Registro de pulsaciones de teclas (keylogging).
  • Captura de capturas de pantalla.
  • Extracción de credenciales de navegador.
  • Recolección de documentos.
  • Robo de datos de carteras de criptomonedas y frases semilla.

La campaña “Contagious Interview” se basa en la ingeniería social, engañando a los usuarios para que ejecuten una aplicación Node.js como parte de un falso proceso de entrevista de trabajo. Esta técnica de ataque fue documentada previamente por Cisco Talos, que identificó una infección en un sistema de una organización en Sri Lanka.

Paquetes Maliciosos Identificados

Algunos de los paquetes “loader” identificados en esta campaña incluyen:

  • bcryptjs-node
  • cross-sessions
  • json-oauth
  • node-tailwind
  • react-adparser
  • session-keeper
  • tailwind-magic
  • tailwindcss-forms
  • webpack-loadcss

Infraestructura de Entrega y Campaña Paralela “ClickFake Interview”

El análisis de la infraestructura de Contagious Interview revela que los paquetes están programados para conectarse a una URL de Vercel codificada (“tetrismic.vercel[.]app”). Esta URL a su vez descarga el payload de OtterCookie desde un repositorio de GitHub controlado por los atacantes. Aunque la cuenta de GitHub (“stardev0914”) utilizada para la entrega ya no está accesible, la campaña demuestra un sofisticado uso de servicios legítimos para la distribución de malware.

Paralelamente, los mismos actores de amenazas han creado sitios web de evaluación falsos que utilizan instrucciones al estilo ClickFix para entregar un malware conocido como GolangGhost (también llamado FlexibleFerret o WeaselStore). Bajo el pretexto de solucionar problemas de cámara o micrófono, los usuarios son engañados para descargar y ejecutar el malware.

Características de GolangGhost (Malware de “ClickFake Interview”)

El malware GolangGhost, escrito en Go, contacta un servidor C2 codificado y entra en un bucle de procesamiento de comandos persistente. Sus capacidades incluyen:

  • Recopilación de información del sistema.
  • Carga y descarga de archivos.
  • Ejecución de comandos del sistema operativo.
  • Cosecha de información de Google Chrome.

Para lograr persistencia en sistemas macOS, el malware instala un LaunchAgent que se ejecuta automáticamente al iniciar sesión el usuario. Durante el ataque, también se instala una aplicación señuelo que muestra un falso aviso de acceso a la cámara de Chrome, seguido de un prompt de contraseña de Chrome falso para capturar las credenciales introducidas por el usuario y enviarlas a una cuenta de Dropbox.

Conclusiones y Contexto Estratégico

Según el investigador Kirill Boychenko, el ritmo sostenido de esta campaña la convierte en una de las más prolíficas que explotan npm, demostrando cómo los actores norcoreanos han adaptado sus herramientas a los flujos de trabajo de desarrollo modernos basados en JavaScript y criptomonedas.

A diferencia de otros esquemas de “trabajadores de TI” de Corea del Norte que buscan infiltrar actores en empresas legítimas, la campaña Contagious Interview se enfoca en comprometer a individuos a través de procesos de reclutamiento falsificados, ejercicios de codificación maliciosos y plataformas de contratación fraudulentas, weaponizando el propio proceso de solicitud de empleo.

Referencias

  • URL Vercel de C2: tetrismic.vercel[.]app
  • Repositorio GitHub de entrega: stardev0914