Nuevo malware IronWorm infecta 36 paquetes en un ataque a la cadena de suministro de npm

Un nuevo ataque a la cadena de suministro ha infectado 36 paquetes en el índice del Gestor de Paquetes de Node (npm) con un malware infostealer denominado IronWorm. El malware se dirige a 86 variables de entorno (pares clave-valor) y 20 archivos de credenciales que pueden contener credenciales de OpenAI, AWS, Anthropic y npm, archivos de configuración de vault, claves SSH y archivos de billetera de criptomonedas Exodus.

Según investigadores de la empresa de cadena de suministro y devops JFrog, IronWorm está escrito en Rust, se oculta tras un rootkit de kernel eBPF y se comunica con el operador a través de la red Tor. El malware basado en Rust se autopropaga utilizando credenciales robadas para publicar en npm; esto incluye secretos asociados con el flujo de trabajo Trusted Publishing de npm.

Una vez que compromete un entorno de desarrollador o CI, puede publicar versiones troyanizadas de paquetes propiedad de la víctima, que luego infectan a otros desarrolladores y sistemas CI. Este comportamiento es conceptualmente similar a Shai Hulud, cuyo código se publicó en GitHub recientemente. Aunque los investigadores de JFrog no encontraron una conexión clara entre IronWorm y Shai Hulud, observaron los mismos nombres de commit en ambos ataques a la cadena de suministro.

Según JFrog, el último ataque comenzó desde una cuenta comprometida llamada 'asteroiddao', que publicó versiones de paquetes que contenían el binario ELF de Rust ejecutado a través de 'preinstall', insertando commits maliciosos en los repositorios. El autor del commit aparece como 'claude', y las marcas de tiempo apuntan a varios años atrás, hasta 13 años en algunos casos, aunque se insertaron en los últimos días. Esto probablemente busca evadir la investigación.

Un elemento notable en los hallazgos de JFrog es un mecanismo que se basa en GitHub Actions para entregar los secretos robados. JFrog explica que el malware serializa los secretos en un solo valor y luego 'lo escribe en un archivo con un nombre de apariencia inofensiva, como si fuera un resultado de lint o formateo'. El último paso del proceso es subir el archivo como un artefacto de compilación, que puede ser descargado por cualquier persona con acceso. De esta manera, el actor de amenazas puede evitar la necesidad de un comando y control (C2) externo. Sin embargo, los investigadores señalan que este mecanismo de entrega no se ha utilizado en el ataque a la cadena de suministro de IronWorm analizado.

Otra peculiaridad descubierta es que el operador codificó de forma fija la frase de recuperación de su propia billetera de criptomonedas. Los investigadores dicen que la única razón para esto es que el actor de amenazas no quería que el malware la robara durante la etapa de prueba. La empresa de seguridad de aplicaciones Ox Security afirma que el ataque de IronWorm se detectó muy temprano y se detuvo antes de que se propagara a paquetes más populares en npm.

La empresa proporciona una lista de todos los nombres de paquetes afectados y sus versiones en el informe, y recomienda que los desarrolladores actualicen a versiones corregidas, roteen sus claves y activen la autenticación de dos factores (2FA) para todas las cuentas. Al mismo tiempo, Endor Labs y StepSecurity han detectado un ataque muy similar pero distinto que involucra un malware basado en JavaScript llamado binding.gyp, que realiza envenenamiento de registro e infección de GitHub Actions, desarrollándose durante el mismo período.

image
image
article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *