Por Canuto  

El ataque ChainDrop comprometió más de 440 paquetes de NPM, publicando 2.212 versiones maliciosas en menos de cuatro horas. El malware roba credenciales, usa Ethereum para comando y control, y amenaza a millones de desarrolladores.
***

  • Más de 2.212 versiones maliciosas de 440 paquetes NPM fueron publicadas en el ataque de cadena de suministro ChainDrop.
  • El malware usa una blockchain de Ethereum para su comando y control, una técnica llamada EtherHiding.
  • Se recomienda a los desarrolladores revocar credenciales y auditar repositorios si instalaron paquetes afectados.


La cadena de suministro de software vuelve a ser el blanco de un ataque masivo. Más de 440 paquetes del repositorio NPM fueron infectados con malware en lo que se ha denominado como ChainDrop.

Según informó SecurityWeek, el ataque comenzó cuando se comprometió la cuenta de GitHub del mantenedor de los paquetes keyv y cacheable. En total, se publicaron 2.212 versiones maliciosas de 440 paquetes en un lapso de menos de cuatro horas.

Los paquetes infectados suman más de 500 millones de descargas semanales, lo que amplifica su impacto. Esta campaña es un descendiente evolucionado del gusano Shai-Hulud 2.0.

El malware se propaga durante la instalación, soltando un ladrón de información con funcionalidad de autorreplicación. Su objetivo es robar secretos y credenciales en entornos de desarrollo y CI/CD.

Los expertos recomiendan a los desarrolladores que hayan instalado versiones afectadas tratar sus máquinas como comprometidas y tomar medidas inmediatas.

¿Qué es ChainDrop y cómo se originó?

ChainDrop es una campaña maliciosa que envenenó paquetes en el ecosistema de Node.js. Todo comenzó con 11 portadores de malware en los espacios de nombres keyv y cacheable.

El compromiso de la cuenta de GitHub del mantenedor permitió a los atacantes obtener acceso a los paquetes. Desde allí, inyectaron código malicioso en múltiples versiones históricas de cada paquete.

La técnica empleada es similar a ataques anteriores de Shai-Hulud, pero con mejoras significativas. El malware ejecuta código durante la instalación y descarga una segunda etapa desde un entorno legítimo.

Según Microsoft, los 440 paquetes afectados incluyen dependencias críticas en el ecosistema JavaScript. JFrog confirmó que el malware puede re-publicar versiones envenenadas de todos los paquetes accesibles con las credenciales robadas.

La velocidad del ataque fue notable: en menos de cuatro horas, el 4 de agosto, se observaron 2.212 iteraciones maliciosas. Esto sugiere un alto grado de automatización y preparación por parte de los atacantes.

Mecanismo de infección y propagación

El malware utiliza las credenciales de NPM robadas para autenticarse en el registro. Posteriormente, enumera los paquetes disponibles para la identidad comprometida y descarga sus tarballs.

Una vez descargados, inserta el malware y un cargador de configuración, añade un gancho de preinstalación, incrementa la versión de parche y vuelve a publicar los paquetes modificados. Este proceso se repite para cada paquete accesible.

También aprovecha las credenciales de GitHub comprometidas y GitHub Actions para infectar repositorios adicionales. De esta manera, se expande de desarrollador a desarrollador mediante la inyección de archivos de configuración de Claude y Visual Studio Code.

El malware busca estaciones de trabajo de desarrolladores y entornos de integración y entrega continua. Apunta a credenciales de NPM, GitHub, nube e infraestructura.

Las identidades recuperadas se utilizan para autenticarse en NPM, GitHub, Amazon Web Services, Kubernetes y HashiCorp Vault. Esto habilita la enumeración de paquetes, repositorios, secretos de flujo de trabajo, parámetros de nube y valores de almacenamiento de secretos.

Capacidades avanzadas: EtherHiding y autorreplicación

El malware emplea una técnica llamada EtherHiding, que utiliza una blockchain de Ethereum para su comando y control. Esto significa que los comandos del atacante se ocultan en transacciones de la red Ethereum, dificultando su detección.

Además, instala un interruptor de seguridad a nivel de host. Tras lograr persistencia en macOS y Linux, consulta la API de GitHub con el token robado cada 60 segundos.

Si el token deja de funcionar, el malware elimina su estado y sale. También se elimina a sí mismo después de 24 horas, lo que complica el análisis forense.

Los paquetes infectados contenían un dropper de preinstalación que descarga el entorno de ejecución de JavaScript legítimo Bun. Este descarga 710 KB de código ofuscado de segunda etapa que constituye el malware real.

Los datos robados se encriptan y exfiltran a un punto final HTTPS dinámico o a repositorios públicos de GitHub. Estos repositorios tienen la descripción ‘Shai-Hulud: Here We Go Again’, una clara referencia a la saga Dune.

Impacto en el ecosistema y recomendaciones

Los desarrolladores que instalaron cualquiera de las versiones infectadas deben considerar sus máquinas comprometidas. Es crucial eliminar el malware, reconstruir los ejecutores de CI y máquinas de construcción.

También se recomienda revocar y rotar credenciales potencialmente comprometidas, así como auditar los repositorios de GitHub en busca de actividad anómala. JFrog sugiere aislar los sistemas afectados y preservar tarballs y registros antes de la limpieza.

“Preservar tarballs de paquetes, registros de npm, registros de CI, registros de auditoría de GitHub e imágenes de ejecutores antes de la limpieza. Los necesitarás para acotar la ventana de exposición”, señaló JFrog en su análisis.

La investigación fue realizada por múltiples empresas de seguridad, incluyendo Microsoft, JFrog, StepSecurity y Socket. Todas coinciden en que la amenaza es seria y de rápida propagación.

Este ataque subraya la vulnerabilidad de las cadenas de suministro de software y la importancia de verificar la integridad de las dependencias. Los desarrolladores deben monitorear activamente los paquetes que utilizan en sus proyectos.

El uso de blockchains para comando y control es una tendencia emergente que añade una capa de complejidad a la detección. Las herramientas de seguridad tradicionales no siempre buscan este tipo de canales encubiertos.

ChainDrop es un recordatorio de que la seguridad no termina con el desarrollo del código. La confianza en los paquetes de código abierto debe equilibrarse con auditorías constantes y prácticas de higiene digital.

Las empresas y desarrolladores independientes deben actualizar sus políticas de seguridad y considerar la implementación de análisis de software de composición. La prevención es la mejor defensa contra este tipo de ataques.

La comunidad de código abierto debe colaborar para identificar y denunciar paquetes maliciosos rápidamente. La transparencia y el reporte temprano son esenciales para mitigar el impacto.


Imagen original de DiarioBitcoin, creada con inteligencia artificial, de uso libre, licenciada bajo Dominio Público.

Este artículo fue escrito por un redactor de contenido de IA y revisado por un editor humano para garantizar calidad y precisión.


ADVERTENCIA: DiarioBitcoin ofrece contenido informativo y educativo sobre diversos temas, incluyendo criptomonedas, IA, tecnología y regulaciones. No brindamos asesoramiento financiero. Las inversiones en criptoactivos son de alto riesgo y pueden no ser adecuadas para todos. Investigue, consulte a un experto y verifique la legislación aplicable antes de invertir. Podría perder todo su capital.

Suscríbete a nuestro boletín