18 paquetes NPM comprometidos, con más de 2 mil millones de descargas por semana

Gracias al phishing, los atacantes lograron interceptar las credenciales del responsable de 18 paquetes populares de NPM, que se descargaban más de 2 mil millones de veces por semana. Además, lograron publicar nuevas versiones de los paquetes comprometidos que contenían código malicioso. Este es el mayor ataque al repositorio de NPM, que afecta no solo a los proyectos directamente atacados, sino también a cientos de miles de paquetes que dependen de ellos.

Entre otras cosas, se publicaron actualizaciones maliciosas para los paquetes debug, chalk, ansi-styles, color-convert, wrap-ansi, support-color y ansi-regex, que acumularon más de 200 millones de descargas la semana pasada. Los paquetes chalk y debug se destacan por ser dependencias directas de 129286 55289 y XNUMX XNUMX paquetes NPM. Estos paquetes se vieron comprometidos debido a una filtración de las credenciales de la cuenta de Josh Junon, quien mantiene debug-js, chalk y numerosas bibliotecas para aplicaciones de consola.

Durante el phishing, se envió una notificación por correo electrónico al responsable de mantenimiento en nombre del proyecto NPM para que actualizara su configuración de autenticación de dos factores. El correo electrónico indicaba que el usuario no había actualizado sus datos de autenticación de dos factores durante más de 12 meses y que todas las cuentas con la configuración de 10FA sin actualizar serían bloqueadas el 2 de septiembre para evitar el acceso no autorizado.

 18 paquetes NPM comprometidos, con más de 2 mil millones de descargas por semana

Los mensajes se enviaron desde la dirección "support@npmjs.help" y dirigieron a npmjs.help, un sitio que replicaba npmjs.com. El engaño parecía ser similar a ataques anteriores contra PyPI, NPM y addons.mozilla.org, que utilizaban un proxy transparente para el tráfico de un sitio de phishing al sitio real con el fin de eludir la autenticación de dos factores y crear la ilusión de trabajar con el directorio real de NPM. Al configurar npmjs.help como proxy para acceder a npmjs.com, los atacantes monitorizaron todo el tráfico, incluyendo la actividad en las páginas de inicio de sesión y de autenticación de dos factores.

Las actualizaciones de paquetes publicadas por los atacantes contenían código malicioso que se ejecutaba en los sistemas de usuarios que trabajaban con sitios o aplicaciones que utilizaban versiones comprometidas de los paquetes. La inserción maliciosa para navegadores interceptaba el tráfico y la actividad de la API web al asociar sus controladores a las funciones fetch y XMLHttpRequest, y también interfería con el funcionamiento de las interfaces típicas de los monederos de criptomonedas para sustituir de forma encubierta los datos del destinatario durante la transferencia. La sustitución se realizaba modificando los valores en las solicitudes y respuestas, de forma imperceptible para el usuario (los datos correctos se mostraban en la interfaz de usuario). Los formatos de transacción admitidos eran Ethereum, Bitcoin, Solana, Tron, Litecoin y Bitcoin Cash.

Algunos anuncios de ataques a los paquetes NPM en cuestión también mencionan código malicioso que recopila y envía claves de cifrado, contraseñas y tokens durante la instalación o el lanzamiento del paquete. Aún no se proporcionan detalles sobre esta forma de inserción maliciosa.

Paquetes comprometidos:

Descargas máximas semanales del paquete. Número de dependencias. Versión con código malicioso. Estilos ansi: 524 millones. 36956.2.2. 465. Depuración: 552894.4.2 millones. 450. 429810.2.1. Supports-color: 436 millones. 1292865.6.1. 326. Chalk: 96687.1.1 millones. 313. 36783.1.1. Strip-ansi: 312 millones. 32142.0.1. 302. Color-convert: 32386.2.1 millones. 235. 62759.0.1. Color-name: 90 millones. 15280.3.3. 81.8. Ansi-regex: 9037.1.1 millones. 64.7. 15441.3.3. Wrap-ansi: 35 millones. 43435.0.1. 31.5. Is-arrayish: 7924.1.1 millones. 31. 4112.1.1. Slice-ansi: 29.5 millones. 1210.2.3. 19.7. Error-ex: 4226.0.1 millones. 4.6. 1391.1.1. Color: 298 millones. 650.2.1. XNUMX. admite hipervínculos XNUMX millones XNUMX cadena de color XNUMX millones XNUMX swizzle simple XNUMX millones XNUMX tiene ansi XNUMX millones XNUMX plantilla de tiza XNUMX millones XNUMX barra invertida XNUMX mil XNUMX


Fuente: opennet.ru

Añadir un comentario