logo de clasesordenador

PAQUETES JAVASCRIPT NPM HACKEADOS POR CREDENCIALES DEBILES

El 52% de todos los paquetes javaScript npm pueden haber sido hackeadas a través de credenciales débiles

Decenas de miles de desarrolladores que utilizan credenciales débiles para asegurar sus cuentas NPM sin querer poner más de la mitad de los paquetes de npm (bibliotecas JavaScript y herramientas) corren el riesgo de ser desviado o utilizado para desplegar código malicioso para aplicaciones legítimas que las utilizan en su proceso de construcción.

NPM Inc., la empresa que gestiona el gestor de paquetes NPM, ha abordado la cuestión en el comienzo de junio mediante la activación de las operaciones de restablecimiento de contraseñas para todos los usuarios afectados.

Inicialmente, había una gran confusión acerca de las acciones de la NPM Inc, y muchos creyeron la organización podría haber sido violada. Fue sólo durante el fin de semana del 24 de junio cuando descubrimos la verdadera razón detrás de las enormes cuentas NPM el restablecimiento de contraseñas que tuvieron lugar al comienzo del mes.

Detrás de todo esto fue Nikita Andréievich Skovoroda, un desarrollador con sede en Moscú y miembro de la Node.js CTC (Comité Técnico Core).

Nikita Andréievich Skovoroda hizo una serie de comprobaciones de contraseñas filtradas desde mayo de este año, y se envío los resultados a la NPM Inc, que luego optó por reiniciar las contraseñas de todos los usuarios afectados.

El interés de skovoroda en exponer las contraseñas filtradas no salió de la nada. El desarrollador ha estado advirtiendo a los usuarios de npm desde 2015 cuando empezó a darse cuenta de los desarrolladores por descuido dejando las contraseñas de sus cuentas de la NPM en su código o en otros lugares.

"Yo estaba trabajando originalmente en alguna otra cosa: un escáner de código de crudo sobre la totalidad de los paquetes de la NPM para comprobar qué tan frecuentes son y dónde están algunas API Node.js siendo utilizado, para las necesidades del proyecto [Node.js]," segun Skovoroda

"En aquel entonces, me di cuenta de credenciales empaquetado en algunos paquetes de NPM", agregó. "Eso era un problema que informó a la NPM Inc por correo electrónico en ese entonces."

El resultado de su informe inicial era que NPM Inc añadió una función para escanear las credenciales de usuario en paquetes de NPM y revocarlos.

Investigador encuentra cuentas NPM con credenciales débiles

El desarrollador mejoró su escáner para comprobar si las cuentas NPM utilizan contraseñas comunes como "123456", "contraseña", u otros; y más tarde para comprobar si las contraseñas en texto plano filtrados en las infracciones públicos tales como los de Adobe, Last.fm, y otros.

"Estaba haciendo esto sobre todo a un ritmo lento en mi tiempo libre hasta que la búsqueda sobre las contraseñas filtradas empezó a darme un montón de cuentas válidas", dice Skovoroda, "No esperaba que esto suceda en un principio."

Cuando terminó, el desarrollador dice que remitió los resultados de su exploración para el equipo de NPM, que restablece las contraseñas de todas las cuentas afectadas.

Si un agente malicioso habría explorado y descubierto estas cuestiones antes de Skovoroda, el atacante podría haber ganado directa "publicar acceso" a 66,876 paquetes NPM, lo que representa casi el 13% de todo el JavaScript NPM ecosistema.

Esta es una enorme temas porque se han ido los días en que los desarrolladores cargar librerías de JavaScript a mano en su código. Hoy en día, los desarrolladores utilizan principalmente NPM para cargar las bibliotecas que necesitan utilizando el sistema de gestión de la dependencia de la NPM.

Este sistema automático de gestión de la dependencia significa que cuando se carga un desarrollador NPM paquete A, que también carga sus dependencias, paquetes de NPM B, C, D, E, F, G, etc..

Mientras Skovoroda descubrió credenciales que le concedió la publicación directa el acceso a sólo el 13% de los paquetes de la NPM, a través de las dependencias, un atacante habría sido capaz de propagar su código malicioso a alrededor del 52% de todo el ecosistema de la NPM.

Cada vez que el propietario de un paquete indirectamente afectada reconstruyó su proyecto - para una actualización o una versión de corrección de errores - se habría cargado los paquetes contaminados NPM en su proyecto, y se ha concedido el atacante un medio para llegar a sus usuarios.

Gracias a pensar hacia adelante Skovoroda, NPM Inc fue alertado y ahora ha implementado controles adicionales que le pedirán automáticamente a los usuarios que cambien sus contraseñas si utilizan credenciales simplistas o previamente expuestos.

15.495 cuentas NPM encontrados mediante contraseñas débiles

A continuación se presentan algunos de los demás resultados de la exploración de Skovoroda , algunos de los cuales los lectores encontrarán muy interesante.
  • En total, encontré 15568 credenciales válidas de 15495 cuentas desde este mes de mayo.
  • De ellos, 15343 cuentas han publicado algo (yo estaba solamente los dirigidos por todo, pero las credenciales de la NPM fugas). El número total de dichas cuentas en la NPM fue 125.665, por lo que nos da un 12% de las cuentas con las credenciales filtrados o débiles.
  • El número total de paquetes directamente afectados fue 66876-13% del ecosistema.
  • El porcentaje total de paquetes indirectamente afectadas se estima en alrededor del 52% de los ecosistemas - es decir, incluyendo los paquetes afectados por las dependencias.
  • Obtuve cuentas de 4 usuarios de la lista top-20.
  • De las cuentas afectadas, 40 usuarios tenían más de 10 millones de descargas / mes (cada uno) . A modo de comparación, expressel paquete tiene 13 millones de descargas / mes atm. 13 usuarios tenían más de 50 millones de descargas / mes.
  • Una de las contraseñas con acceso a publicar koa era literalmente « password».
  • Uno de los usuarios que controlan directamente a más de 20 millones de descargas / mes eligieron para mejorar su contraseña filtrado previamente revocado mediante la adición de una !a él al final.
  • Uno de esos 4 usuarios de la lista top-20 puesto su contraseña de nuevo a la fuga poco después de que se ha restablecido (por lo que tiene restablecer de nuevo).
  • Al menos una contraseña fue significativamente inadecuado - en la medida en que uno no quiere que se vincule con ellos en línea y podría ser culpado públicamente en ese caso (es decir, no sólo una mala palabra). No utilice contraseñas ofensivos - los que podrían (y en este caso eran) se filtró al público en texto plano.
  • 662 usuarios tenían la contraseña « 123456», 168 - « 123», 115 - « password».
  • 1409 usuarios (1%) utilizan su nombre de usuario como su contraseña , en su forma original, sin ninguna modificación.
  • 10% de los usuarios reutilizar sus contraseñas filtradas : 9,7% - directamente, y el 0,6% - con modificaciones menores.
Fecha actualización el 2017-6-27. Fecha publicación el . Categoría: Javascript. Autor: Mapa del sitio Fuente: bleepingcomputer
Paquetes JavaScript npm