RAT en tiempo de importación la amenaza de la cadena de suministro npm que usa blockchains para persistencia

Autor: Publicada 5 min de lectura 184 lecturas

Las imágenes de este artículo han sido generadas con inteligencia artificial. Cómo publicamos

La infección descubierta en dos versiones beta del espacio de nombres @joyfill confirma una tendencia peligrosa en la que paquetes aparentemente inofensivos del ecosistema npm actúan como vectores de acceso remoto persistente: en este caso, un implante de tipo RAT asociado a la familia DEV#POPPER que se activa en el momento de la importación del módulo y no a través de hooks de ciclo de vida convencionales.

Lo que distingue a este incidente es el uso de una infraestructura de mando y control basada en múltiples blockchains (Tron, Aptos y BNB Smart Chain) para resolver y distribuir código cifrado, junto con una rama redundante que lanza un proceso Node.js separado que consulta un servidor IP para descargar un segundo payload. Esa combinación ofrece al atacante una resiliencia operacional inusual: pueden actualizar o cambiar la carga útil sin republicar el paquete en npm y el proceso desprendido puede sobrevivir a la finalización de una ejecución de build o test, creando persistencia fuera del flujo de vida esperado del desarrollador.

RAT en tiempo de importación la amenaza de la cadena de suministro npm que usa blockchains para persistencia
Imagen generada con IA.

Desde la perspectiva de riesgo, esto tiene varias implicaciones críticas. Primero, cualquier proceso que importe el paquete queda expuesto a ejecución de código arbitrario, lo que incluye entornos de desarrollo, runners de CI, imágenes de build y servidores de renderizado. Segundo, la capacidad del malware para recolectar credenciales y artefactos de herramientas de desarrollo —como gestores de credenciales, extensiones de navegador, datos de GitHub CLI o tokens almacenados— multiplica el impacto potencial porque permite lateralidad y robo de secretos que luego facilitan compromisos adicionales.

Otro punto importante es la sofisticación operacional: el uso de transacciones en distintas blockchains como canal covert para entregar hashes o fragmentos de payload dificulta la remediación convencional y la trazabilidad, y la utilización de direcciones, cuentas y transacciones diferentes en cada rama complica la detección por firmas simples. Las investigaciones públicas que han vinculado técnicas similares a clusters rastreados como PolinRider y a campañas atribuidas a actores norcoreanos subrayan la probabilidad de una operación deliberada y con recursos.

Si su proyecto, organización o imágenes de CI han usado las versiones afectadas, el primer enfoque debe ser suponer que se ha producido ejecución arbitraria y actuar en consecuencia: eliminar las versiones comprometidas de lockfiles, caches, espejos internos, imágenes de build y artefactos desplegados; reconstruir imágenes desde fuentes limpias; y rotar inmediatamente las credenciales y tokens asociados al proceso Node.js o a los agentes de CI que pudieron ejecutar esos paquetes. También conviene buscar evidencia de procesos Node.js desprendidos en registros, conexiones salientes inusuales (por ejemplo hacia la IP mencionada en el análisis) y actividad de exfiltración.

En el plano operativo conviene añadir controles de contención: restringir la egress desde runners y builders, bloquear conexiones a hosts y direcciones IP sospechosas a nivel de red, y analizar las máquinas de desarrollo para detectar artefactos del RAT y del infostealer (por ejemplo, ficheros temporales, binarios persistentes, o sockets abiertos). Para la respuesta a incidentes, capture imágenes forenses de las máquinas comprometidas antes de limpiarlas y correlacione logs de CI, registros de paquetes y telemetría de endpoints para estimar alcance y vectores de pivot.

Para reducir la probabilidad de recurrencia, implemente medidas técnicas y organizativas: use verificación de integridad de dependencias y bloqueo de versiones, aplique políticas de least privilege para tokens de CI y credenciales almacenadas en runners, adopte prácticas de firma y atestación de artefactos (por ejemplo, soluciones de attestation como Sigstore y marcos SLSA), y genere Bill of Materials (SBOM) para imágenes y releases. Además, limite el acceso a secretos desde procesos de build y utilice tokens efímeros cuando sea posible para que la exposición temporal sea menor.

RAT en tiempo de importación la amenaza de la cadena de suministro npm que usa blockchains para persistencia
Imagen generada con IA.

Desde la comunidad de desarrollo, la lección es tangible: los paquetes que se cargan en tiempo de importación pueden ejecutar código inmediatamente, por lo que incluso dependencias marcadas como "solo desarrollo" pueden derivar en compromisos si terminan en imágenes o runners. Revisar y endurecer pipelines para evitar que devDependencies alcancen entornos con secretos o credenciales es una buena práctica preventiva.

Si desea consultar análisis técnicos y contextos similares, los informes y análisis públicos sobre campañas de supply chain y malwares relacionados ofrecen más detalles y recomendaciones: el equipo de investigación de Checkmarx publica análisis de estas amenazas en su portal de investigación (Checkmarx Research) y veteranos en respuesta como eSentire han documentado familias de infostealers comparables (eSentire blog). Para medidas y guías específicas de seguridad en la plataforma y el runtime, la página oficial del Node.js sobre seguridad es un buen punto de partida (Node.js Security).

Finalmente, el tratamiento de un paquete como el de @joyfill/layouts en su versión comprometida debe ser riguroso: asumir ejecución remota, revocar y rotar credenciales, reconstruir artefactos desde fuentes confiables y mejorar controles automáticos en CI. La prevención y la detección temprana de ingeniería de la cadena de suministro requieren tanto controles técnicos como conciencia operativa entre desarrolladores, equipos de seguridad y administradores de infraestructura.

Cobertura

Relacionadas

Mas noticias del mismo tema.