Un incidente de seguridad significativo ha afectado al ampliamente utilizado paquete de npm “eslint-config-prettier”.
Este paquete, con más de 3.5 mil millones de descargas, fue comprometido el 18 de julio después de que su mantenedor cayera en una campaña de phishing. El ataque fue reportado el mismo día por el sistema de detección automatizado de ReversingLabs y por el equipo de investigación de Socket.
Versiones maliciosas del paquete, junto con otros mantenidos por el mismo desarrollador, fueron publicadas usando credenciales robadas. Los archivos modificados incluían un script diseñado para instalar el troyano de acceso remoto (RAT) Scavenger en sistemas Windows.
Aunque las versiones comprometidas estuvieron disponibles por menos de dos horas, el hecho de que el paquete registre 36 millones de descargas semanales elevó el riesgo de un impacto considerable.
Cómo se Propagó el Ataque
Según un informe de ReversingLabs, la campaña de phishing se dirigió a mantenedores de npm mediante correos electrónicos falsificados que imitaban la dirección de soporte oficial.
Las víctimas eran redirigidas a un sitio falso de npm con URLs tokenizadas, lo que evidencia que los atacantes seleccionaron a sus objetivos de manera deliberada.
Una vez obtenidas las credenciales, los atacantes publicaron versiones infectadas de varios paquetes relacionados, incluyendo eslint-plugin-prettier y synckit.
Un factor que agravó el problema es que muchos proyectos declaran eslint-config-prettier como una dependencia directa en lugar de como devDependency. ReversingLabs identificó más de 14,000 casos de este tipo, lo que abrió la posibilidad de compromisos secundarios en la cadena de suministro.
El Rol de las Actualizaciones Automatizadas
Herramientas automatizadas como Dependabot de GitHub aumentaron el alcance del ataque. Estos sistemas pueden abrir y fusionar pull requests para actualizar dependencias sin intervención humana.
Se detectaron repositorios, entre ellos uno de la empresa europea de bicicletas eléctricas Dott, que incorporaron automáticamente las versiones maliciosas.
Aunque los runners alojados en GitHub limitan la persistencia del ataque, las organizaciones que utilizan runners autogestionados enfrentaron mayores riesgos.
En total, ReversingLabs encontró 46 proyectos que instalaron las versiones comprometidas durante la ventana de exposición, incluyendo uno en un repositorio propiedad de Microsoft.
“Incluso una ventana de exposición estrecha puede tener grandes repercusiones”, señalaron los investigadores.
Lecciones para Desarrolladores
Este incidente evidencia los desafíos de la gestión de dependencias en el desarrollo moderno de software. Si bien las actualizaciones automatizadas reducen los riesgos de trabajar con código obsoleto, también pueden introducir nuevas amenazas cuando se infiltran versiones maliciosas.
ReversingLabs recomendó las siguientes medidas de seguridad:
- Retrasar las actualizaciones no críticas para dar tiempo a la detección de versiones maliciosas.
- Separar dependencias de producción y desarrollo.
- Configurar los build workflows para evitar instalaciones innecesarias en entornos productivos.
- Revisar manualmente los pull requests automatizados antes de aprobarlos.
Con el aumento de los ataques a la cadena de suministro, los expertos destacan que mantener una higiene de dependencias adecuada y un uso cauteloso de la automatización son pasos fundamentales para reducir riesgos.
Fuente: https://www.infosecurity-magazine.com/news/popular-npm-package-compromised-in