GitLab descubre un ataque masivo a la cadena de suministro en npm
GitLab ha revelado una campaña de malware altamente sofisticada que afecta al ecosistema de npm, comprometiendo múltiples paquetes y poniendo en riesgo credenciales, repositorios y datos de desarrolladores en todo el mundo. El ataque emplea una variante evolucionada del malware Shai-Hulud, caracterizada por capacidades de propagación
automática, robo de credenciales y un peligroso “dead man’s switch” que puede destruir los archivos del usuario si se interrumpe la comunicación con la infraestructura del atacante.
¿Cómo inicia la infección?
Los paquetes maliciosos incluyen un script preinstall modificado en elpackage.json que ejecuta un archivo llamado setup_bun.js.
Este script simula instalar la herramienta legítima Bun, pero realmente descarga o activa el archivo oculto bun_environment.js, un payload de 10 MB ofuscado que contiene la lógica del malware.
Capacidades del malware
- Robo de credenciales de GitHub, npm, AWS, GCP y Azure.
- Escaneo completo del sistema usando Trufflehog para encontrar claves, contraseñas o tokens en todo el directorio del usuario.
- Exfiltración de información a repositorios públicos creados automáticamente en GitHub con un marcador identificable en su descripción.
- Propagación automática hacia todos los paquetes npm que mantiene la víctima, modificándolos, incrementando versiones y republicándolos como infectados.
La red de intercambio de tokens
Una característica crítica del ataque es que los sistemas comprometidos forman una red distribuida.
Si el malware no puede usar el token de GitHub de la víctima, busca repositorios de otros infectados mediante el marcador “Sha1-Hulud: The Second Coming” para recuperar nuevos tokens y mantener activa la infección.
Un “dead man’s switch” extremadamente peligroso
El malware evalúa constantemente si aún tiene acceso a GitHub o a npm. Si ambos canales se bloquean simultáneamente (por ejemplo, por una revocación masiva de tokens), el malware activa una función destructiva:
- Windows: elimina todos los archivos del usuario y sobrescribe sectores del disco.
- Linux/macOS: ejecuta
shredpara sobreescribir y borrar archivos,
haciendo imposible la recuperación.
Este mecanismo convierte la desactivación del malware en un proceso riesgoso, ya que un takedown mal coordinado podría desencadenar pérdidas masivas de datos en miles de equipos.
Indicadores de compromiso (IoCs)
- Archivo
bun_environment.jsen proyectos onode_modules. - Directorio oculto
.truffler-cache. - Uso inesperado de comandos para instalar Bun mediante
curlo PowerShell. - Comandos destructivos como
del /F /Q,cipher /Wo
shred -uvz -n 1.
Conclusión
Este ataque representa un salto significativo en las amenazas a la cadena de suministro: no solo compromete paquetes, sino que utiliza una red distribuida de tokens robados y un mecanismo destructivo diseñado para dificultar su erradicación. GitLab recomienda a la comunidad revisar paquetes, rotar credenciales, auditar repositorios y reforzar los controles de seguridad en pipelines, tokens y dependencias.
Fuente:
https://about.gitlab.com/blog/gitlab-discovers-widespread-npm-supply-chain-attack/