Puerta trasera oculta en el paquete JavaScript npm

De acuerdo a investigadores, el equipo del Administrador de paquetes del nodo (npm) acaba de evitar un desastre cuando descubrió y bloqueó la distribución de un mecanismo de puerta trasera ingeniosamente escondido dentro de un paquete de JavaScript.

Este mecanismo de puerta trasera fue encontrado por expertos en seguridad informática en “getcookies”, un paquete npm nuevo para trabajar con cookies del navegador.

El equipo de profesionales de npm que analizó este paquete, comento que “getcookies” contiene un sistema complejo para recibir comandos de un atacante remoto, y que podría apuntar a cualquier aplicación de JavaScript que haya incorporado esta biblioteca.

npm

El equipo investigador de seguridad informática explica: “La puerta trasera funcionaba analizando las request.headers HTTP proporcionadas por el usuario, buscando datos específicamente formateados que proporcionan tres comandos diferentes a la puerta trasera…”

“Podemos ver aquí que los encabezados están codificados y el resultado busca valores en el formato de: gCOMMANDhDATAi” agregaron los investigadores.

De acuerdo con el equipo de npm, la puerta trasera permitió a un atacante ingresar código arbitrario en un servidor en ejecución y ejecutarlo.

Se cree que el módulo original backdoored fue importado en otros paquetes.

La biblioteca “getcookies” era nueva y no muy popular, y solo se incluyó en pocos proyectos.

El equipo de investigadores comento que descubrió una cadena de dependencia anidada a través de la cual el paquete “getcookies” había llegado indirectamente a la estructura de una biblioteca popular “Mailparser”.

mailparser

└── http-fetch-cookies

└── express-cookies

└──getcookies

Mailparser es un paquete npm para analizar datos de correo electrónico usando JavaScript, explican expertos en seguridad informática. Esta es una biblioteca antigua, y ha sido desaprobada a favor de una más nueva “Nodemailer”.

A pesar de ser abandonada, la biblioteca aun sigue publicada en el índice de paquetes npm, ya que hay aplicaciones que aún la usan en sus cadenas de construcción.

Aun no hay ataques reportados. “Se cree que el mailparser requiera http-fetch-cookies para ejecutar un ataque en el futuro o inflar conteos de descargas de cookies exprés para aumentar su legitimidad”, dijo el equipo de npm en un informe.

Los expertos en seguridad informática comentaron que no se produjeron ataques para explotar la puerta trasera porque “ningún paquete publicado en el Registro npm utilizó los módulos maliciosos de una manera que hubiera permitido que se activara la puerta trasera”.

Los mantenedores del índice NPM parecen haber atrapado un futuro ataque de cadena de suministro antes de que sucediera. El equipo de npm eliminó al usuario “dustin87” del ataque y no publicó los paquetes getcookies, express-cookies y http-fetch-cookies.

También lanzaron Mailparser a v2.2.0, eliminando las versiones 2.2.3, 2.2.2 y 2.2.1, que contenían el paquete malicioso http-fetch-cookies.