Nuevos Gusanos npm Emergen: IronWorm y Variante Miasma Atacan Secretos de Desarrolladores y Herramientas de IA
El ecosistema **npm** está bajo asedio de sofisticados ataques a la cadena de suministro de software. Investigadores han descubierto dos campañas distintas: un ladrón de información basado en **Rust** apodado **IronWorm** y una nueva y muy evasiva variante del gusano **Miasma**. Ambas amenazas están diseñadas para comprometer credenciales de desarrolladores, inyectar código malicioso y auto-propagarse a través de entornos y repositorios de desarrollo.
Múltiples ataques a la cadena de suministro de software han afectado recientemente al ecosistema **npm**, con actores de amenazas desplegando versiones maliciosas y envenenadas de más de 50 paquetes legítimos. Estas campañas tienen como objetivo distribuir un ladrón de información basado en **Rust** y un gusano auto-propagable, representando riesgos significativos para los profesionales de seguridad de TI y los usuarios preocupados por la privacidad.

## El Auge de IronWorm
La firma de seguridad **JFrog** ha detallado el ladrón de información basado en **Rust**, con nombre en clave **IronWorm**. Este sofisticado malware está diseñado para extraer todos los secretos que pueda encontrar en la máquina de un desarrollador, empleando un rootkit de kernel **eBPF** para la discreción y comunicándose con sus operadores a través de **Tor**.
**IronWorm** aprovecha las credenciales robadas como mecanismo de propagación, estableciendo paralelismos con el infame gusano **Shai-Hulud**. Al publicarse en el registro **npm** a través de paquetes troyanizados, logra un vector de ataque auto-replicante.
La actividad maliciosa se ha rastreado hasta una cuenta **npm** comprometida, "asteroiddao", que publicó versiones de paquetes que contenían el binario ELF de **Rust** ejecutado a través de un hook `preinstall`. El malware apunta a 86 variables de entorno y varios archivos que pueden contener credenciales para servicios como **OpenAI Codex**, **Anthropic**, **Claude**, **Google Gemini**, **Cursor**, **Amazon Web Services (AWS)**, **Docker**, **Kubernetes**, **npm**, configuraciones de vault y archivos de billetera de criptomonedas **Exodus**.
Un detalle inusual es la lógica del ladrón para omitir la billetera de criptomonedas del propio actor de amenazas, que actualmente no muestra transacciones registradas.
**JFrog** describe **IronWorm** como "un arma de cadena de suministro construida para encontrar secretos, modificar proyectos e inyectar código malicioso para auto-propagarse a través de **GitHub**". Se introdujeron commits maliciosos, abarcando nueve organizaciones de **GitHub**, bajo el nombre de autor "claude" ([email protected]) en un aparente intento de imitar el chatbot de IA de **Anthropic**.
Un análisis posterior reveló que la cuenta **npm** comprometida `asteroiddao` corresponde a la organización **GitHub** `asteroid-dao`, con `ocrybit` como miembro. El malware robó las credenciales de `ocrybit`, utilizándolas para enviar commits a través de repositorios accesibles, plantando malware en otros paquetes para la infección descendente.
Este payload también está equipado para reemplazar los flujos de trabajo existentes de **GitHub Actions** por uno capaz de recolectar secretos, escribirlos en un archivo de apariencia inofensiva y subirlos como un artefacto de compilación, eliminando la necesidad de un servidor externo de comando y control (C2). En entornos **CI**, abusa del flujo **Trusted Publishing** de **npm** para obtener tokens de corta duración y enviar versiones envenenadas al registro. El malware también incorpora un payload **eBPF** que actúa como un rootkit a nivel de kernel para ocultar procesos, aunque esto falla en sistemas con el bloqueo de kernel habilitado.
## El Gusano Miasma Vuelve a la Superficie
Concomitantemente, **Endor Labs** y **StepSecurity** han revelado una campaña de ataque distinta a la cadena de suministro. Esta campaña comprometió 57 paquetes **npm** a través de más de 286 versiones maliciosas para distribuir una nueva variante del gusano **Miasma**. Este gusano previamente infectó 32 paquetes en más de 90 versiones dentro del namespace **npm** `@redhat-cloud-services` en 72 segundos.
Algunos de los paquetes afectados incluyen:
* `ai-sdk-ollama`
* `autotel`
* `awaitly`
* `effect-analyzer`
* `eslint-plugin-awaitly`
* `executable-stories-cypress`
* `http-uploader-dev`
* `mountly`
* `node-env-resolver`
* `node-env-resolver-aws`

Los datos robados de esta campaña fueron exfiltrados a una cuenta de **GitHub** ahora inaccesible, `liuende501`, que albergaba 236 repositorios. La fuente de la eliminación de la cuenta (GitHub o el actor de amenazas) sigue siendo desconocida.
El investigador de **StepSecurity**, Sai Likhith, destacó una técnica novedosa denominada "**Phantom Gyp**". En lugar de depender de los scripts de ciclo de vida `preinstall` o `postinstall` comúnmente monitoreados, el atacante abusa de un archivo `binding.gyp` de 157 bytes para activar la ejecución de código durante `npm install`, eludiendo muchas verificaciones de seguridad.
Similar a incidentes anteriores de **Miasma**, esta cadena de ataque descarga e instala el runtime de **Bun JavaScript**, utilizándolo para cargar un recolector de credenciales completo. Este recolector está diseñado para extraer secretos de **AWS**, **Google Cloud**, **Microsoft Azure**, **HashiCorp Vault**, **Docker**, **Kubernetes**, **GitHub Actions**, **npm**, **RubyGems**, **PyPI**, **SSH**, gestores de contraseñas y asistentes de IA.
"La capacidad más novedosa y preocupante de esta variante es su objetivo en las configuraciones de asistentes de codificación de IA", señaló **StepSecurity**. El malware inyecta archivos persistentes de backdoor en los repositorios de proyectos que se ejecutan cada vez que un desarrollador abre el proyecto en un IDE asistido por IA.
Se recomienda encarecidamente a los desarrolladores que hayan instalado una versión afectada que roten sus credenciales, deshabiliten los scripts de instalación y las reconstrucciones nativas por defecto, y se aseguren de que los paquetes estén fijados con hashes de integridad.
**Red Hat** reveló que la causa raíz del incidente anterior de la cadena de suministro de **Miasma** fue probablemente una cuenta de **GitHub** comprometida utilizada para enviar commits no autorizados a repositorios dentro de la organización **GitHub** `RedHatInsights`.
El análisis de **Microsoft** de la campaña señaló: "El payload operaba en Linux, macOS y Windows descargando dinámicamente el runtime de **Bun** correcto para cada plataforma, aunque los runners de CI/CD de Linux parecían ser el objetivo principal". En los sistemas de desarrolladores, el malware robó claves **SSH**, credenciales de interfaz de línea de comandos (CLI), datos del navegador y de la billetera. En entornos de CI/CD, extrajo secretos de la memoria del runner de **GitHub Actions**, escaló privilegios utilizando `sudo` sin contraseña y volvió a publicar paquetes envenenados con **Supply-chain Levels for Software Artifacts (SLSA) provenance** falsificados para continuar la propagación descendente.
## Cadena de Ataque y Persistencia en Evolución
Se cree que el payload de **Miasma** es un derivado del gusano **Shai-Hulud**, utilizado previamente por **TeamPCP** en otras campañas, con cambios en gran medida cosméticos. La atribución de los últimos ataques sigue sin estar clara, especialmente dado que **TeamPCP** publicó públicamente el código de **Shai-Hulud**.

**OX Security** ha descubierto etapas adicionales en la cadena de ataque de **Miasma**, incluyendo búsquedas de commits de **GitHub** que contienen la cadena "firedalazer" (reemplazando el "**FIRESCALE**" dead drop previamente señalado) para recuperar otro payload, un archivo JavaScript (`index.js`) que contiene una versión alternativa del gusano **Shai-Hulud**, creando efectivamente un bucle de infección perpetuo. En este escenario, los datos robados se exfiltran a repositorios públicos de **GitHub**.
Estas campañas en curso subrayan la necesidad crítica de medidas robustas de seguridad en la cadena de suministro, monitoreo continuo y vigilancia de los desarrolladores para protegerse contra malware cada vez más sofisticado.