Cinco versiones maliciosas de paquetes AsyncAPI en npm distribuyen un troyano de acceso remoto que roba credenciales y datos sensibles en un ataque a la cadena de suministro.
El ecosistema de desarrollo de Node.js sufrió un ataque a la cadena de suministro cuando cinco versiones maliciosas de paquetes AsyncAPI fueron publicadas en el gestor npm, distribuyendo un troyano de acceso remoto (RAT) diseñado para robar credenciales y datos sensibles.
Por qué importa: Este incidente demuestra cómo una vulnerabilidad en los flujos de trabajo de integración continua puede comprometer millones de descargas y poner en riesgo la seguridad de desarrolladores y sistemas.
Lo esencial
El atacante explotó un flujo de trabajo mal configurado en GitHub Actions para publicar versiones infectadas bajo el namespace @asyncapi.
Los paquetes afectados suman más de 2.25 millones de descargas semanales, incluyendo @asyncapi/specs con 2.1 millones.
El malware utiliza múltiples etapas y canales de comunicación para establecer persistencia y robar secretos como credenciales, tokens y datos de navegadores.
Imagen de referencia: BleepingComputer.
Compromiso del pipeline CI/CD en AsyncAPI
El ataque no se basó en tokens robados ni en mantenedores maliciosos, sino en la explotación de una configuración incorrecta en los flujos de integración continua y despliegue (CI/CD) de dos repositorios de AsyncAPI en GitHub. El atacante insertó código malicioso y permitió que el proceso legítimo de publicación en npm, mediante la integración OIDC de GitHub, firmara los paquetes con la procedencia SLSA, lo que dificultó la detección inicial.
Funcionamiento del malware y su arquitectura modular
El código malicioso comienza con un script JavaScript ofuscado que descarga un segundo script desde la red IPFS, ejecutándolo en segundo plano. La carga final es un framework de malware con más de 92,000 líneas, que se comunica con servidores de comando y control a través de HTTP, relays Nostr, contratos inteligentes de Ethereum y una red mesh libp2p. Esta arquitectura avanzada permite la persistencia y el control remoto del sistema infectado.
Objetivos del malware y herramientas adicionales
El propósito principal del malware es robar secretos críticos, incluyendo credenciales, claves de autenticación, tokens, datos de navegadores, información sensible de sistemas CI/CD y herramientas de desarrollo de IA, así como carteras de criptomonedas y bases de datos. Además, puede descargar herramientas como Gitleaks y HackBrowserData para facilitar la extracción de información, aunque algunos análisis indican que estas funciones automáticas no se ejecutan correctamente y requieren intervención manual.
Impacto y respuesta de la comunidad de seguridad
El incidente fue confirmado por varias compañías de seguridad, que alertaron sobre la magnitud del compromiso dada la popularidad de los paquetes afectados. Aunque el malware utiliza nombres y configuraciones similares al backdoor Miasma detectado en ataques previos, se sospecha que podría tratarse de una variante privada o de un grupo distinto que adoptó la marca. La comunidad recomienda revisar las dependencias y monitorear posibles accesos no autorizados en entornos afectados.
Preguntas frecuentes sobre el ataque a AsyncAPI
¿Cómo se distribuyó el malware en los paquetes AsyncAPI?
El atacante comprometió los flujos de trabajo de GitHub Actions para publicar versiones maliciosas que pasaron las verificaciones de procedencia y se distribuyeron a través de npm.
¿Qué tipo de información busca robar el malware?
El malware está diseñado para extraer credenciales, tokens, datos de navegadores, información de sistemas CI/CD, herramientas de IA, carteras de criptomonedas y bases de datos.