Un ataque de cadena de suministro a gran escala denominado “Shai-Halud” que se infiltró en el ecosistema JavaScript a través del registro de NPM.
En total, se descubrió que 477 paquetes, incluidos los paquetes de CrowdStrike, contenían sigilosamente las puertas traseras y módulos troyanizados diseñados para desviar las credenciales, exfiltrate el código fuente y habilitan la ejecución del código remoto (RCE) en las máquinas de desarrolladores.
Control de llave
1.
2. Carga útil cosechada y exfiltradas credenciales a un servidor C2.
3. Arregle el fijación de versiones, el escaneo de la cadena de suministro, las verificaciones de la suma de verificación y los secretos giratorios.
Ataque de la cadena de suministro de Shai-Halud
La campaña del adversario comenzó a principios de agosto de 2025, cuando se utilizaron cuentas de mantenedor comprometidas para publicar actualizaciones maliciosas bajo baches de versión menores (por ejemplo, de 1.2.3 a 1.2.4).
Cada actualización inyectó una pequeña carga útil ofuscada dentro del archivo de entrada del módulo (típicamente index.js). Este cargador contactó a un servidor de comando y control (C2) para obtener una carga útil de la segunda etapa.
Socket informa que la carga útil buscó directorios de proyectos para archivos .env, claves privadas SSH (ID_RSA) y credenciales Git almacenadas en .git/config, luego los transmitieron en forma encriptada a la infraestructura del atacante.
Paquetes comprometidos
El uso de Shai-Halud del secuestro de rango de versión permitió a los atacantes mantener la persistencia: proyectos posteriores que especifican dependencias con rangos de semver sueltos (por ejemplo, “^1.2.0”) se retiraron automáticamente en la versión troyanizada.
Muchas bibliotecas de alto perfil, que van desde herramientas de desarrollo y utilidades de CLI hasta marcos de componentes de UI, se vieron afectadas, amplificando el radio de explosión. Las estrategias de detección incluyen:
Integre herramientas como la auditoría de NPM, SNYK o OWASP Dependency Check en tuberías de CI para marcar las versiones de versión anómalas.
Validar la integridad del paquete contra los hashes de SHA-256 conocidos a través de NPM CI –Prefer-Offline –Hash-Checksums. Emplee el monitoreo de tiempo de ejecución (p. Ej., Sysmon en Windows, Auditd en Linux) para detectar llamadas de red inesperadas o el uso de eval ().
Mitigaciones
Versiones de dependencia de bloqueo: PIN a versiones específicas de paquetes y evite amplios rangos de Semver. Gire los secretos: revocar y regenerar cualquier tokens API expuesto, claves SSH y variables de entorno. Auditar sus dependencias: ejecute npm ls –prod –depth = 0 para ver dependencias directas y verificación cruzada contra avisos.
Como los ecosistemas de código abierto siguen siendo un objetivo principal, asegurar la cadena de suministro de software a través de la rigurosa validación y el monitoreo continuo es más crítico que nunca.
¡Webinar gratuito en vivo en nuevas tácticas de malware de nuestros analistas! Aprenda técnicas de detección avanzada -> Regístrese gratis








