Los paquetes npm vinculados a Corea del Norte imitan los Polyfills acumulativos para robar secretos de los desarrolladores – CYBERDEFENSA.MX

Los actores de amenazas con vínculos con Corea del Norte han sido vinculados a un nuevo conjunto de paquetes npm maliciosos que se hacen pasar por herramientas Rollup polyfill para facilitar el acceso remoto y el robo de datos.

Según JFrog, los paquetes «rollup-packages-polyfill-core» y «rollup-runtime-polyfill-core» imitan el legítimo «nodo-polyfill-del-complemento acumulativo«proyecto, hasta la descripción, los metadatos del repositorio y la forma del paquete.

«Los paquetes similares se ubican en el mismo espacio de nombres de rollup, polyfill, núcleo y nodo, lo que puede parecer plausible durante una revisión rápida de dependencia», JFrog dicho en un informe técnico de la campaña.

La campaña también involucra otros cuatro paquetes, todos los cuales han sido eliminados del registro npm:

  • ficha peculiar
  • reaccionar-icono-svgs
  • complemento-rollup-polyfill-connect
  • flujo de análisis rápido

Lo que es digno de mención aquí es que «rollup-packages-polyfill-core» instala y carga «swift-parse-stream», mientras que «rollup-runtime-polyfill-core» instala y «quirky-token». De manera similar, se ha descubierto que «react-icon-svgs» instala «rollup-plugin-polyfill-connect» como segunda etapa.

Ciberseguridad

«Los paquetes de la segunda etapa son utilidades SVG casi idénticas que obtienen un objeto JSON de JSONKeeper y evalúan el campo del modelo», dijo la compañía de ciberseguridad. «Esta estructura en capas, junto con los nombres parecidos, los metadatos de apariencia legítima, la ejecución oculta en el momento de la instalación, las comprobaciones del entorno y las cargas útiles de robo de credenciales/acceso remoto, es similar a campañas anteriores de npm vinculadas a Lazarus de Corea del Norte».

Vale la pena enfatizar aquí que esta no es la primera vez que los actores de amenazas norcoreanos cargan paquetes npm que se hacen pasar por herramientas Rollup Polyfill. En abril de 2026, Panther detalló una campaña sostenida de npm que implicó la publicación de 108 paquetes npm maliciosos que abarcan 261 versiones para entregar BeaverTail y OtterCookie, dos conocidas familias de malware vinculadas a Contagious Interview. Entre esos paquetes se encontraba «rollup-plugin-polyfill-route», que se publicó el 20 de marzo de 2026.

El punto de partida del ataque es un comando de instalación npm codificado en Base64 para «swift-parse-stream» (o «quirky-token») que está oculto dentro de «rollup-packages-polyfill-core» (o «rollup-runtime-polyfill-core»). Los dos paquetes de la segunda etapa están disfrazados de utilidades de desinfección de SVG, mientras acceden a una URL de JSON Keeper para recuperar y ejecutar un malware de JavaScript.

El código JavaScript ejecuta comprobaciones para evitar la ejecución en entornos de desarrollo en la nube, entornos sandbox, tiempos de ejecución sin servidor e infraestructura de análisis. Pasada esta puerta, el malware instala las dependencias necesarias y llega a un servidor externo («216.126.236[.]244») para recuperar una carga útil de JavaScript cifrada.

Luego, la carga útil descifrada actúa como un cargador de secuencias de comandos adicionales responsables de permitir el acceso remoto al host comprometido para admitir sesiones de terminal interactivas, ejecución de comandos, captura de pantalla, terminación de procesos, movimiento del mouse solo para Windows, clics, desplazamiento, pulsaciones de teclado y teclas de acceso rápido usando el paquete «@nut-tree-fork/nut-js», así como robar datos de navegadores web y billeteras de criptomonedas, recopilar archivos que coincidan con extensiones específicas y capturar periódicamente el contenido del portapapeles.

Las características se superponen con las de OtterCookie, y el uso de «@nut-tree-fork/nut-js» para el control remoto del mouse y el teclado también se observa en un paquete llamado «express-session-js» que fue detallado por SafeDep en abril de 2026. Se ha descubierto que el componente recopilador de archivos busca específicamente el historial del editor asociado con Microsoft Visual Studio Code, Windsurf y Cursor, junto con configuraciones de herramientas de inteligencia artificial y desarrolladores, como AWS, Microsoft Azure, Google Gemini, Anthropic Claude, Foundry, SSH y Z shell (Zsh).

«Los complementos acumulativos se cargan comúnmente desde archivos de configuración locales, estaciones de trabajo de desarrolladores y trabajos de CI», dijo JFrog. «Estos entornos a menudo tienen acceso a activos confidenciales como código fuente, tokens npm, credenciales de Git, claves de nube, claves SSH, datos del navegador y secretos de proyectos».

«La carga útil también es más amplia que un simple descargador. Una vez que se ejecutan las etapas posteriores, el atacante obtiene capacidades de recopilación y control. Esto hace que la carga útil sea relevante para las estaciones de trabajo de los desarrolladores y las máquinas de construcción, donde las claves API, las claves SSH, el material de la billetera, las credenciales de la nube y los secretos del proyecto a menudo están presentes».

Ciberseguridad

La divulgación coincide con el descubrimiento de múltiples ataques a la cadena de suministro de software por parte de Checkmarx, SafeDep y el investigador de seguridad de AWS, Chi Tran, destinados a envenenar repositorios de paquetes de código abierto y robar datos valiosos.

  • Un grupo de al menos ocho horquillas «pirograma» troyanizadas publicado por un actor de amenazas que opera bajo múltiples identidades entre noviembre de 2025 y junio de 2026, incluida una puerta trasera oculta que les otorga control remoto total sobre cualquier servidor que ejecute el paquete PyPI infectado mediante la ejecución de código Python arbitrario o comandos de shell enviados por el atacante. Los resultados de la ejecución del comando se filtran a través de Telegram. Checkmarx ha denominado a la actividad Operación Fantasma de la Marina.
  • un grupo de paquetes de 30 npm imitando las herramientas de Polymarket y las bibliotecas de matemáticas generales publicadas por cuentas de mantenimiento de 10 npm que apuntaban a los desarrolladores de DeFi para entregar un ladrón de información de JavaScript que lee bóvedas de billeteras criptográficas, credenciales del navegador, claves SSH, credenciales de AWS, tokens npm, configuraciones de Docker, historial de shell y bases de datos del administrador de contraseñas.
  • un grupo de paquetes de 25 npm publicado bajo el alcance @marketfront por una cuenta npm llamada «marketfront» que contiene un recolector de credenciales posterior a la instalación que lee 20 archivos secretos y de credenciales, incluidos ~/.ssh, ~/.aws/credentials, ~/.kube/config, ~/.docker/config.json, ~/.npmrc, ~/.netrc, ~/.pgpass, ~/.git-credentials, ~/.env y shell historial y extrae los datos.
  • Un paquete de Python llamado «alertas-de-seguridad-sdk» que afirma ser una herramienta de monitoreo de violaciones de datos pero alberga un código para iniciar una puerta trasera que sondea periódicamente un servidor externo («142.93.211[.]30:5000») para comandos y filtra claves privadas SSH, credenciales de AWS, tokens Docker/npm/PyPI/git, archivos .env y bases de datos de credenciales del navegador al mismo servidor.
  • un grupo de paquetes de 15 npm publicado por un único actor de amenazas que opera bajo alcances de 13 npm que activa una carga útil de JavaScript posterior a la instalación responsable de descargar y ejecutar un binario ELF compilado por Rust alojado en GitHub, que luego recopila una amplia gama de datos de billeteras de criptomonedas, navegadores web y otras aplicaciones, incluidos tokens de proveedores de nube, claves SSH, sesiones de plataformas de mensajería, configuraciones de clientes de bases de datos y credenciales de desarrollador.
  • Un paquete npm llamado «tiempo de ejecución de eventos» que escribe en cuclillas «eventos» y genera condicionalmente un ladrón de billeteras de criptomonedas, filtra datos de reconocimiento del host a través de Slack y Telegram, abre un canal de comando bidireccional de Slack y lee fragmentos de configuración y carga útil de un contrato inteligente de Ethereum utilizado como solucionador de entrega muerta. La lógica maliciosa se activa solo cuando el ID del evento es «eventId0».
  • Un paquete npm llamado «o3formas» que roba las credenciales del proveedor de servicios en la nube, escanea los secretos de los desarrolladores y los entornos CI/CD, realiza un reconocimiento de la red interna y exfiltra los datos a un punto final de Cloudflare Workers controlado por el atacante. «El atacante dividió el ataque en un paquete publicado en el registro deliberadamente benigno y una subdependencia *-utils fijada en GitHub que lleva tanto los ganchos de instalación como el malware real», dijo Tran. «Esta estructura está diseñada específicamente para derrotar el script estático y del ciclo de vida escaneo en el que se basan la mayoría de las herramientas del lado del registro y del lado CI».

Se recomienda a los usuarios que hayan instalado cualquiera de los paquetes antes mencionados que los eliminen de sus estaciones de trabajo, asuman compromisos y roten las credenciales, bloqueen los canales de salida maliciosos y habiliten el escaneo de dependencias en las canalizaciones de CI/CD para marcar paquetes sospechosos o recién publicados.

Los sitios falsos que imitan herramientas de código abierto ocupan un lugar destacado en Google para distribuir malware a través de TDS

Los investigadores de ciberseguridad han señalado una operación a gran escala que se hace pasar por proyectos de código abierto y de software gratuito para canalizar a usuarios desprevenidos a través de un sistema de distribución de tráfico (TDS) y entregar familias de malware como Remus Stealer, AnimateClipper y el marco SessionGate.

«Los sitios están bien diseñados y a menudo parecen portales de proyectos legítimos a primera vista, a veces haciendo referencia a recursos reales», dijo el investigador de seguridad de Check Point, Alexey Bukhteyev. dicho en un desglose de la campaña. «El engaño no está sólo en el contenido de la página, sino en lo que sucede cuando un usuario interactúa».

«Estas páginas cargan una capa de preparación de JavaScript alojada en CloudFront que convierte un clic en un botón/enlace de ‘descarga’ en una transferencia a un Sistema de Distribución de Tráfico (TDS). El TDS aplica una restricción estricta: estado de primera visita, confirmación de clic obligatoria, lógica anti-bot/anti-análisis, filtrado de VPN/centro de datos y limitación de frecuencia».

Se sospecha que la operación está diseñada para la adquisición y monetización de tráfico, mientras conduce a usuarios selectos a la infraestructura de entrega de malware. Algunos de los sitios identificados imitan herramientas confiables de seguridad e ingeniería inversa, como Ghidra, dnSpy y SpiderFoot.

Ciberseguridad

Las cadenas de ataques se dirigen específicamente a los usuarios que buscan este tipo de herramientas en motores de búsqueda como Google, lo que hace que los sitios falsos aparezcan en la parte superior de los resultados de búsqueda. Una de las primeras versiones de la campaña fue documentado por Fullstory en noviembre de 2025. La evidencia indica que la actividad ha estado en curso desde septiembre de 2025.

«Estos dominios se centran en obtener clasificaciones favorables en los motores de búsqueda aprovechando el nombre, la marca y la popularidad de los sitios web y proyectos originales», señaló en ese momento la empresa con sede en Atlanta. «Muchos sitios se encuentran en los primeros puestos de Google para el término de búsqueda relevante, a menudo eclipsando el sitio web del proyecto real. Esto hace que su visibilidad sea una ventaja y puede maximizar los enlaces y el contenido».

Aunque no había indicios de que alguno de estos dominios se utilizara para actividades maliciosas, aparte de generar contenido para generar tráfico y permitir a terceros anunciar sus propios sitios, los últimos hallazgos de Check Point muestran que los scripts TDS se incorporaron poco después y la infraestructura se reutilizó para la distribución de malware a partir de enero de 2026.

Al hacer clic en el botón «Descargar», se inicia una cadena de redireccionamiento TDS que resulta en la implementación de malware. Uno de los aspectos más llamativos es que al pasar el cursor sobre el botón se revela la URL legítima desde donde se puede descargar la herramienta, otorgando así al sitio una apariencia de legitimidad.

Las cadenas de redireccionamiento también están diseñadas de manera que los intentos repetidos de ingresar desde la misma dirección IP resulten en la descarga de software benigno, como el navegador Opera o extensiones de navegador innecesarias. Algunas de las cargas útiles distribuidas a través de este TDS se enumeran a continuación:

  • Puerta de sesiónun cargador ofuscado de múltiples etapas previamente desconocido que se utiliza para entregar aplicaciones potencialmente no deseadas (PUA) al mismo tiempo que incorpora amplios mecanismos anti-análisis para eliminar las zonas de pruebas al pasar a una experiencia de instalación benigna.
  • Remus ladrónun nuevo ladrón de información que se ofrece bajo un modelo de malware como servicio (MaaS), puede robar datos de más de 20 navegadores, incluidos cientos de extensiones y aplicaciones de navegador, como billeteras de criptomonedas, herramientas de autenticación de dos factores y administradores de contraseñas. Se cree que Remus es una variante de Lumma Stealer.
  • AnimarClipperun cortapelos de criptomonedas que puede sustituir direcciones de billetera copiadas en el portapapeles y secuestrar transacciones en más de 20 ecosistemas blockchain. Se entrega mediante un señuelo ClickFix.

Un análisis de la telemetría de VirusTotal ha revelado aproximadamente entre 2000 y 3500 envíos de muestras asociadas con la familia SessionGate hasta la fecha. La gran mayoría de las presentaciones provienen de Turquía, Polonia, Brasil, Alemania, Francia, Rusia y el Reino Unido.

Ciberseguridad

El objetivo final de la secuencia de infección SessionGate es eliminar una carga útil que sea única por cliente y se entregue solo después de atravesar la ruta de redireccionamiento de un extremo a otro. La cadena de entrega de múltiples etapas, combinada con una lógica de validación extensa y activación del lado TDS, está diseñada para resistir el análisis y hacer que la recuperación de la carga útil sea una tarea desafiante para los analistas.

La carga útil final de la DLL es responsable de comunicarse con un servidor externo, recuperar una configuración cifrada del servidor, extraer la URL de descarga de la configuración y descargar y ejecutar silenciosamente el malware de la siguiente etapa a través de «cmd.exe».

«Los sitios de entrada imitan portales legítimos de proyectos de código abierto, conservan enlaces reales de GitHub para pasar verificaciones visuales rápidas y luego utilizan la interceptación de clics para enrutar el primer clic de descarga a una pila TDS cerrada», dijo Bukhteyev.

«El objetivo principal más plausible es la adquisición de tráfico y la monetización. Sin embargo, al incorporar una capa TDS cerrada y canalizar el tráfico de búsqueda en ella, los operadores se convierten en parte de una cadena de distribución cuyos consumidores posteriores pueden incluir distribuidores de malware. El mismo canal de tráfico que impulsa la monetización gris también puede enrutar selectivamente a usuarios reales a cargas útiles maliciosas».