Un hacker ha obtenido acceso a la cuenta npm de un desarrollador e inyectado código malicioso en una popular biblioteca de javascript, código que fue diseñado para robar las credenciales npm de los usuarios que utilizan el paquete envenenado dentro de sus proyectos.
El paquete de javascript (npm) que se vio comprometido se llama eslint-scope, un submódulo del ESLint más famoso, un kit de herramientas de análisis de código javascript.
Hacker obtuvo acceso a la cuenta npm de un desarrollador
El ataque se realizó la noche del 11 al 12 de julio, según los resultados de una investigación preliminar publicada en GitHub hace unas horas.
"Uno de nuestros mantenedores observó que se generó una nueva ficha npm durante la noche (dicho mantenedor estaba dormido)", dijo Kevin Partington, miembro del proyecto ESLint.
Partington cree que el pirata informático usó el token npm recién generado para autenticar e insertar una nueva versión de la biblioteca eslint-scope en el repositorio npm de paquetes javascript.
La versión maliciosa fue eslint-scope 3.7.2, que los responsables del repositorio npm han desconectado recientemente.
El código malicioso roba las credenciales npm
"El código publicado parece robar credenciales npm, por lo que recomendamos que cualquiera que haya instalado esta versión cambie su contraseña npm y (si es posible) revoque sus tokens npm y genere nuevos," Partington recomienda a los desarrolladores que usaron esling-scope .
En un correo electrónico a Bleeping Computer, npm CTO C.J. Silverio puso el incidente en perspectiva.
"Determinamos que se podrían haber obtenido tokens de acceso para aproximadamente 4,500 cuentas antes de actuar para cerrar esta vulnerabilidad. Sin embargo, no hemos encontrado evidencia de que se hayan obtenido o usado tokens para acceder a ninguna cuenta de npmjs.com durante esta ventana", dijo Silverio. dijo.
"Como medida de precaución, npm ha revocado cada token de acceso que se había creado antes de las 2:30 p. M. UTC (7:30 a.m. hora de California) de hoy. Esta medida requiere que cada usuario registrado de npm se vuelva a autenticar en npmjs.com y genere nuevos tokens de acceso, pero aseguran que no hay forma de que la vulnerabilidad de esta mañana persista o se propague. Además, estamos llevando a cabo un análisis forense completo para confirmar que no se haya accedido ni utilizado ninguna otra cuenta para publicar código no autorizado.
"El incidente de esta mañana no ocurrió debido a una violación de npmjs.com, sino a causa de una violación en otro lugar que expuso las credenciales de npm de un editor. Para mitigar este riesgo, alentamos a cada usuario de npmjs.com a habilitar la autenticación de dos factores, con la cual el incidente de la mañana hubiera sido imposible ", agregó Silverio.
El desarrollador que tuvo el compromiso de su cuenta cambió su contraseña npm, habilitó la autenticación de dos factores y generó nuevos tokens para acceder a sus bibliotecas npm existentes.
El incidente es de gran importancia porque las credenciales de npm robadas se pueden usar de manera similar a lo que sucedió ahora. El hacker puede usar cualquiera de las credenciales de npm robadas para envenenar otras bibliotecas de javascript que están disponibles a través de npm - a.k.a. el Administrador de paquetes de nodo, el administrador de paquetes semioficial para el ecosistema de javascript.
Más información: https://www.bleepingcomputer.com/news/security/compromised-javascript-package-caught-stealing-npm-credentials/
Saludos.