Estimados, buenas tardes.
Un ataque de cadena de suministro ha afectado al repositorio npm hoy, comprometiendo más de 180 paquetes de JavaScript, entre ellos múltiples librerías de CrowdStrike publicadas por la cuenta crowdstrike-publisher
. Según investigaciones de Wiz, este incidente, denominado «Shai-Hulud», representa el primer ataque capaz de autorreplicarse exitosamente en el ecosistema npm, marcando un nuevo hito en la evolución de las amenazas a la cadena de suministro de software. Tanto el agente Falcon Sensor como la consola CrowdStrike no se ven afectadas por este compromiso. Los consumidores que deben tomar acciones son aquellos que utilizan herramientas externas basadas en npm para gestionar su infraestructura CrowdStrike, como, por ejemplo, para automatizar acciones.
Las investigaciones indican que el ataque comenzó el 14 de septiembre de este año, con el compromiso del paquete rxnt-authentication
, gestionado por la cuenta techsupportrxnt
. Más de 30 cuentas en GitHub ya han sido comprometidas y presentan credenciales sensibles expuestas en un repositorio denominado “shai-hulud”.
Casi diez paquetes de CrowdStrike se ven afectados por el ataque. La información está disponible en el siguiente enlace: https://links.sek.io/packagesnpm-CrowdStrike.
Es importante destacar que CrowdStrike confirmó, en un comunicado oficial, que detectó los paquetes maliciosos disponibles en el registro público npm y los eliminó rápidamente del repositorio. La compañía informó que «tales paquetes no son utilizados por Falcon Sensor, por lo que la plataforma no se vio afectada y los clientes están protegidos.”
El ataque comienza a partir de un archivo bundle[.]js
que ejecuta la herramienta TruffleHog. Esta fue activada por los atacantes para escanear el sistema en búsqueda de tokens de API y credenciales de acceso a sistemas en la nube, como GITHUB_TOKEN
, NPM_TOKEN
, AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
.
Según expertos, el worm logra propagarse automáticamente. Así, cuando un paquete comprometido encuentra tokens npm adicionales en el entorno de la víctima, automáticamente publica versiones maliciosas de cualquier paquete al que tenga acceso, diseminándose por el ecosistema npm. Cada paquete publicado se convierte en un nuevo vector de distribución, ya que, en cuanto alguien lo instala, el worm se ejecuta, se replica y se propaga aún más.
Para garantizar persistencia, el malware explota las credenciales de los desarrolladores y crea un archivo de flujo de trabajo malicioso en GitHub Actions, lo cual permite a los atacantes mantener acceso a los repositorios comprometidos por más tiempo. La información es recopilada y redirigida a otro endpoint bajo el dominio de los atacantes. El malware también fuerza la migración de repositorios organizacionales privados a repositorios personales públicos con la descripción «Shai-Hulud».
SEK destaca que los usuarios en mayor riesgo son aquellos que tienen el módulo “foundry” – usado para el desarrollo de aplicaciones – y que hayan utilizado cualquiera de estos módulos npm comprometidos para la creación de sus aplicaciones.
Considerando la información disponible sobre el ataque, SEK enumera algunas acciones para prevenir daños. Los consumidores deben reemplazar tokens npm, credenciales en la nube y cualquier otro secreto que pueda haber sido expuesto si los paquetes comprometidos estuvieron presentes en máquinas con credenciales de publicación. También es relevante verificar si archivos o flujos de trabajo maliciosos fueron instalados sin conocimiento previo. Recomendamos igualmente la revisión de cuentas en GitHub en busca de repositorios denominados “Shai-Hulud”. Si tales repositorios son encontrados, es importante desactivarlos y realizar una revisión de estos.
SEK permanece vigilante en el monitoreo de esta situación y se compromete a actualizar este comunicado en caso de surgir nuevas novedades. Estamos a disposición para auxiliar a organizaciones en la implementación de medidas defensivas.