¿Es el día del gusano npm otra vez?

¡Hey comunidad de desarrolladores! Tan pronto como has desterrado el último espectro del código, la siguiente pesadilla llama a la puerta en forma de Una versión más agresiva de gusanos notorios npm, Esta vez, el analista de seguridad en nombre de Shai-Hulud 2.0 bautizado.

Y esta vez no solo es más rápido, sino que también tiene una presa aún más grande en la mira: Acerca de 27.000 datos de acceso ya están robados, y el gusano está ahora incluso atacando prominente Plataformas de bajo código Como Zapier y Postman. Parece que los atacantes aprendieron de sus errores y circunnavegaron elegantemente todos los cuellos de botella de la primera ola.

Echemos un vistazo a lo que está sucediendo (de nuevo) en el ecosistema npm, qué paquetes se ven afectados y qué debe hacer ahora para evitar que este gusano de arena arrebate las credenciales.

Cuello de botella eliminado: La segunda ola es más agresiva

Los mismos asaltantes detrás Shai-Hulud 2.0 Al igual que la primera vez, todavía no está claro, pero el resultado es el mismo: Una infestación masiva de paquetes npm.

El lunes por la tarde fueron según heise.de ya Más de 425 paquetes npm infectados, que juntos sobre 100 millones de descargas mensuales Vamos, vamos. Entre ellos se encuentran peces realmente gruesos, como paquetes de:

  • AsyncAPI
  • Dominios ENS (Servicio de nombres Ethereum)
  • Varias API, plataformas bajas y sin código, especialmente Zapier y cartero (Mira la lista a continuación, eso es horrible.)

El gusano pareció golpear el fin de semana (21-23 de noviembre), con los paquetes go-template y varios repositorios debajo de AsyncAPI afectados por primera vez.

¿Cómo robó los secretos?

El genio (¡y el horror!) de esta nueva versión radica en la forma en que se publican las credenciales robadas:

  1. El malware se hace cargo de un repositorio.
  2. Busca datos de acceso (secretos).
  3. Los datos robados serán Publicado directamente bajo la cuenta de la víctima en Github.

El nuevo repositorio donde la tierra de los Secretos lleva el título inconfundible «Sha1-Hulud: la Segunda Venida». Por lo tanto, los atacantes evitaron el mayor punto débil del último brote: En ese momento, utilizaron una plataforma webhook, cuyo punto final se bloqueó rápidamente. Ahora usan Github en sí como una ubicación de almacenamiento central, lo que hace que el trabajo de limpieza para Github sea una batalla contra los molinos de viento, ya que constantemente se crean nuevos directorios de código. Para el lunes por la tarde ya había más de 27.800!

Las tácticas: Flujos de trabajo desgastados y servidores C&C

Shai-Hulud 2.0 está construido de manera bastante inteligente y utiliza varios mecanismos para quedarse atascado:

  • Puerta trasera por C&C: Varios flujos de trabajo de Github son responsables de interceptar los datos de acceso e instalar un Puerta trasera en la máquina infectada. Esta puerta trasera está controlada por el Función de discusión en los repositorios infectados, un servidor Command&Control (C&C) auto-alojado directamente en Github!
  • El «Formator de código»: Un segundo flujo de trabajo con el nombre de sonido inofensivo «Code Formatter» busca secretos de la cuenta de Github atacada y luego los carga en el Formato JSON arriba.
  • Multiplataforma: El gusano no es exigente y aparece con código malicioso personalizado Linux, Windows y macOS para apoyar.

Por cierto, el momento es notable: El ataque llega solo unos días antes de las npm am 9. diciembre Abolir "tokens clásicos" para la autenticación. Los desarrolladores de Sha1-Hulud probablemente querían prestar atención nuevamente antes de que este cambio de seguridad surta efecto.

Medidas de emergencia: Lo que tienes que hacer ahora

La limpieza está en pleno apogeo, ¡pero todos deben estar atentos y actuar ahora! Wizz, Koi y Aikido informaron rápidamente de la amenaza.

1. Pruebas y eliminación

  • Compruebe su infraestructura: Revise toda su infraestructura de desarrollo para detectar signos sospechosos y, lo más importante, para el uso de los siguientes. Paquetes infectados conocidos.
  • Deseche inmediatamente: Si utiliza uno de los paquetes: Deshágase de él inmediatamente de tu proyecto.
  • Actualizaciones de: Desactive las actualizaciones automáticas de paquetes hasta que la situación se calme.

2. Rota todo (¡Importante!)

Si tiene la más mínima sospecha de una infección o ha usado un paquete afectado, esto es absolutamente crítico:

  • Rotar todos los datos de acceso! Esto no solo se aplica a Github y npm, pero también para cuentas con hiperescaladores como GCP, AWS y Azure. ¡Todos los secretos deben ser nuevos!

Los especialistas siguen siendo cautelosos sobre la atribución, pero los métodos son similares al predecesor. ¡Es hora de poner los escudos!

Lista de paquetes afectados (selección & más importante)

Para ayudarlo a verificar rápidamente si está afectado, aquí hay una selección de los paquetes infectados prominentes y más importantes reportados el lunes por la tarde:

  • @asyncapi/ (muchos paquetes afectados)
  • @endominios/ (Casi todos los paquetes afectados!)
  • @posthog/ (¡Muchos paquetes afectados!)
  • @postman/ (¡Muchos paquetes afectados!)
  • @trigo/ (¡Muchos paquetes afectados!)
  • @zapier/ (muchos paquetes afectados, incl. zapier-plataforma-cli)
  • Plantilla de go
  • posthog-js
  • ...y desafortunadamente muchos, muchos ¡Más!

La lista completa es enorme! Asegúrese de revisarlos si utiliza alguna de estas tecnologías:

Enlace a koi.ai, alternativamente Enlace a aikido.dev Sin duda, pero los más importantes hasta ahora se mencionan anteriormente. ¡Debe comparar sus dependencias con la lista oficial y actual usted mismo!

contramedidas
TL:DR

Shai-Hulud 2.0 Lista de verificación de emergencia para equipos de desarrolladores

Estos pasos son críticos para detener una infección en curso y prevenir más daños.

I. Detección & Aislamiento

accióndetalle
Comprobar todas las dependenciasIgual que el utilizado actualmente npm Paquetes que contienen la lista completa de paquetes infectados (especialmente Plantilla de go, AsyncAPI, ENS, cartero, Zapier bultos).
Aislar los paquetes infectadosTodos los paquetes infectados inmediatamente Eliminar de las dependencias del proyecto.
Detener las actualizaciones automáticasDeshabilita temporalmente todas las actualizaciones automáticas de paquetes para evitar la reinfección.
Realizar un análisis del sistemaEjecuta escaneos de virus en las máquinas de desarrollo mientras el gusano instala puertas traseras.

II. Rotación crítica de los datos de acceso (secretos)

Adopción: Suponiendo que todos los secretos utilizados por una máquina infectada o en un repositorio infectado, comprometida lo son.

Plataforma/servicio¿Qué rotar?
npmTodos fichas npm los miembros del equipo, especialmente los tokens de publicación.
GitHub/GitLab/BitbucketTodos Tokens de acceso personal (PAT) y Clave de SSH los usuarios afectados.
Herramientas de IC/CDTodos los secretos utilizados en flujos de trabajo o canalizaciones (GitHub Acciones Secretos, Jenkins, variables de CI de GitLab, etc.).
Proveedor de la nubeTodos Claves API, Claves de acceso, Claves secretas (por ejemplo, AWS, GCP, Azure) deben renovarse.
Servicios internosCualquier credencial de base de datos, tokens de Slack u otras claves internas de API almacenadas en los sistemas afectados.

III. Recuperación del sistema & prevención

accióndetalle
Reinstalación de sistemasIdealmente, reinstale todas las máquinas de desarrollo afectadas para asegurarse de que se eliminen las puertas traseras.
Autenticación multifactor (MFA)Verifica que MFA esté habilitado y se aplique en todas las cuentas críticas (npm, GitHub, Cloud).
Principio de privilegio mínimoAsegura que los tokens CI / CD y los tokens personales solo Derechos mínimamente necesarios lo han hecho.
Fuentes de seguimientoEsté atento a las actualizaciones oficiales de npm, GitHub e investigadores de seguridad (Wizz, Koi, Aikido).

¿Te sientes familiar? ¿Día de la marmota? Es porque tenemos el todo He tenido uno en septiembre. Después de todo, este y otros fantasmas similares terminan a más tardar después del 9. diciembre, cuando Github implementa las medidas de seguridad anunciadas.


Prepara a tu equipo para comenzar con esta lista.

¡Mantente a salvo y revisa tus puntos de vista! El fin de semana puede haber terminado, pero el trabajo nunca se detiene para los desarrolladores en la crisis de seguridad casi permanente.