3 min de lectura

La brecha de AsyncAPI en npm introdujo malware en paquetes con 2.25 millones de descargas

Cinco versiones troceadas de AsyncAPI para npm se publicaron brevemente el 14 de julio tras una comprometida de GitHub Actions, con el objetivo de robar credenciales y secretos de desarrolladores.

Imagen: BleepingComputer

Cinco versiones maliciosas del paquete AsyncAPI aterrizaron brevemente en npm el 14 de julio después de que atacantes comprometieran dos repositorios del proyecto en GitHub y abusaran de un flujo de trabajo de GitHub Actions mal configurado. Los paquetes afectados, publicados bajo el espacio de nombres @asyncapi, suman colectivamente más de 2.25 millones de descargas semanales.

Varias empresas de seguridad indicaron que se trató de un compromiso de la canalización CI/CD, no de un caso de tokens de npm robados o mantenedores maliciosos. Según Step Security, el atacante introdujo commits usando una identidad de Git de marcador de posición, y luego confió en el flujo de trabajo de lanzamiento legítimo de cada repositorio para publicar los paquetes a través de la integración de publicador de confianza GitHub OIDC de npm. Eso también implicó que las versiones llevaban atestaciones legítimas de procedencia SLSA.

Los paquetes maliciosos fueron:

  • @asyncapi/generator 3.3.1 (101k descargas semanales)
  • @asyncapi/generator-helpers 1.1.1 (43k descargas semanales)
  • @asyncapi/generator-components 0.7.1 (34k descargas semanales)
  • @asyncapi/specs 6.11.2-alpha.1 y 6.11.2 (2.1 million descargas semanales)

Socket indicó que el implante de primera etapa era un fragmento de JavaScript ofuscado que activaba un descargador cuando se importaba el archivo infectado. A continuación se recuperaba un script de segunda etapa desde IPFS y se lanzaba como un proceso oculto. Wiz describió la tercera etapa como un marco de malware modular de 92.000 líneas que establece persistencia y se comunica con infraestructura de mando y control mediante HTTP, relays Nostr, contratos inteligentes de Ethereum y una red de malla libp2p.

Qué atacaba el malware

1 / 3

Los investigadores vincularon los artefactos del payload y los archivos de configuración con la puerta trasera Miasma vista en ataques previos a la cadena de suministro, aunque SafeDep dijo que podría tratarse bien de una compilación paralela privada por los mismos operadores o de otro grupo que reutiliza el nombre Miasma después de que se publicara el código fuente.

Recomendado

El fundador de Hinge, Justin McLeod, prepara Overtone, emparejador con IA

Su objetivo aparente era robar secretos, entre ellos:

  • credenciales, claves de autenticación y tokens
  • datos del navegador
  • datos de sistemas CI/CD y herramientas de desarrollo
  • billeteras y bases de datos de criptomonedas

El malware también incluía la capacidad de descargar Gitleaks y HackBrowserData. Pero Aikido informó que esas funciones automatizadas de recopilación no funcionaban porque la herramienta de recolección salía antes de recopilar datos. Aun así, los investigadores señalaron que el atacante aún podía usar la shell manualmente. Ox Security añadió que el malware comprueba si un sistema está en Rusia y termina si encuentra una coincidencia.

Ventana de exposición y pasos de limpieza

Las cinco versiones maliciosas ya han sido eliminadas de npm, pero los sistemas que las instalaron durante la ventana de exposición pueden seguir infectados. Esa ventana duró alrededor de cuatro horas y siete minutos, desde las 07:10 hasta las 11:18 UTC del 14 de julio.

Se recomienda a los desarrolladores fijar versiones a archivos conocidos buenos, regenerar los archivos lock, eliminar la carga útil oculta NodeJS/sync.js, terminar procesos maliciosos y rotar credenciales en los sistemas afectados.

Tomas Berg

Computing Editor

Tomas lives in the terminal. He covers chips, laptops, and operating systems with a focus on performance and efficiency. He reads kernel changelogs the way other people read fiction, and he's always on the hunt for the perfect mechanical keyboard switch. If it processes data, Tomas has an opinion on it.

vía BleepingComputer

// Sigue leyendo