Secuestran dos librerías npm clave de JavaScript para distribuir malware en un ataque a la cadena de suministro
Introducción
Esta semana, la comunidad de desarrollo y ciberseguridad se ha visto sacudida por un nuevo incidente de secuestro de paquetes npm. Las populares librerías “eslint-config-prettier” y “eslint-plugin-prettier”, ampliamente utilizadas en proyectos JavaScript y TypeScript para el formateo y análisis de código, han sido comprometidas y transformadas en droppers de malware. El ataque, que se enmarca dentro de la creciente tendencia de amenazas a la cadena de suministro de software, se ha producido tras una campaña de phishing dirigida y el robo de credenciales de acceso a las cuentas de los maintainers de estos paquetes.
Contexto del Incidente
La suplantación y manipulación de paquetes npm no es un fenómeno nuevo, pero el impacto de este caso es especialmente relevante dada la popularidad de las librerías afectadas. “eslint-config-prettier” y “eslint-plugin-prettier” suman entre ambas más de 18 millones de descargas semanales, según datos del propio repositorio npm. Estas dependencias son componentes básicos en la configuración de herramientas de linting y formateo automático del código fuente, lo que garantiza su presencia en miles de cadenas de integración y despliegue continuo (CI/CD) de empresas tecnológicas y proyectos open source a nivel mundial.
El vector de ataque se inició a través de una campaña de phishing dirigida a los responsables de mantenimiento de ambos paquetes. Los atacantes lograron sustraer las credenciales de acceso a las cuentas npm de los desarrolladores, permitiéndoles publicar versiones maliciosas de las librerías sin levantar sospechas iniciales.
Detalles Técnicos
Según el análisis de los artefactos comprometidos, las versiones maliciosas insertaron código ofuscado en los scripts de postinstalación. Este código aprovechaba la ejecución automática al instalarse el paquete, descargando y ejecutando cargas útiles adicionales desde servidores controlados por los atacantes.
Se han identificado los siguientes indicadores de compromiso (IoC):
– Versiones afectadas:
– eslint-config-prettier: v8.8.0
– eslint-plugin-prettier: v4.2.1
– Vector de ataque: script de postinstall en package.json
– Dominio de C2 (Command and Control): múltiples direcciones, entre ellas hxxps://dev-iplogger[.]org/…
– TTP MITRE ATT&CK:
– T1195 (Supply Chain Compromise)
– T1071 (Application Layer Protocol)
– T1552 (Unsecured Credentials)
El payload descargado permitía ejecutar comandos arbitrarios en los sistemas infectados, lo que habilitaba a los atacantes para desplegar malware adicional, robar credenciales, recopilar información sensible o pivotar hacia otros sistemas de la red. En algunos análisis se ha detectado el uso de frameworks conocidos como Cobalt Strike para el establecimiento de shells reversos y persistencia.
Impacto y Riesgos
La propagación de estos paquetes maliciosos ha sido rápida, dado el alto grado de automatización en los pipelines CI/CD y la confianza ciega en la integridad de los paquetes npm. Se estima que decenas de miles de instalaciones se han visto afectadas antes de que se detectara y eliminara el código malicioso, aunque las cifras exactas están todavía en evaluación.
El principal riesgo reside en la posibilidad de ejecución remota de código (RCE) en entornos de desarrollo y servidores de integración, lo que puede derivar en robo de propiedad intelectual, exposición de datos protegidos por la GDPR y potenciales sanciones regulatorias. Además, la presencia de shells persistentes en sistemas comprometidos permite a los atacantes permanecer ocultos y escalar privilegios en la infraestructura empresarial.
Medidas de Mitigación y Recomendaciones
Desde la detección del incidente, npm ha eliminado las versiones comprometidas y revocado los tokens de acceso asociados a las cuentas robadas. Para mitigar el impacto y prevenir futuras incidencias, se recomienda:
– Auditar de inmediato los entornos en busca de las versiones afectadas y eliminar cualquier instancia sospechosa.
– Analizar logs de instalación y ejecución en CI/CD para identificar actividad anómala.
– Cambiar las credenciales de acceso a npm y habilitar autenticación multifactor (MFA).
– Implementar herramientas de escaneo de dependencias (SCA) que alerten sobre versiones maliciosas o vulnerables.
– Monitorizar conexiones salientes hacia dominios IoC identificados.
– Actualizar políticas de seguridad en la cadena de suministro según lo previsto en NIS2 y los controles del marco NIST SP 800-218 (SSDF).
Opinión de Expertos
Expertos en ciberseguridad como Jake Williams (SANS Institute) han subrayado que este ataque “demuestra una vez más la fragilidad de la confianza en los ecosistemas open source y la necesidad de controles de seguridad adicionales en la gestión de dependencias”. Desde el CERT de España, alertan que “la integración automática de paquetes sin verificación de integridad expone a las organizaciones a riesgos críticos que pueden escalar rápidamente”.
Implicaciones para Empresas y Usuarios
Las empresas afectadas por el incidente deben evaluar posibles brechas de datos y notificar a las autoridades competentes según la GDPR. Este ataque refuerza la tendencia creciente de los actores de amenazas hacia ataques a la cadena de suministro, que según ENISA, han crecido un 38% en el último año. La necesidad de incorporar controles de seguridad en el ciclo de vida del software es ya una exigencia de mercado y de cumplimiento normativo.
Conclusiones
El secuestro de “eslint-config-prettier” y “eslint-plugin-prettier” constituye un recordatorio crítico sobre los riesgos inherentes a la confianza en repositorios de software de terceros. Solo mediante la adopción de buenas prácticas en la gestión de dependencias, auditoría continua y una cultura de seguridad centrada en la cadena de suministro podremos mitigar el impacto de estas amenazas cada vez más sofisticadas.
(Fuente: www.bleepingcomputer.com)
