4 paquetes npm con vulnerabilidades.

Todo ordenador que tenga alguno de estos paquetes instalados debe de ser considerado como «totalmente comprometido».

El equipo de seguridad de npm a borrado, la semana pasada, cuatro paquetes albergados en sus servidores ya que había descubierto que podía abrir una shell para establecer una conexión con servidores remotos para extraer los datos de usuario desde sistemas Linux o Windows infectados. El equipo de seguridad de npm cada uno de esos paquetes ha sido descargado cientos de veces desde su puesta a disposición en el portal de npm.

Estos cuatro paquetes son: plutov-slack-client, nodetest199, nodetest1010 y npmpubman.
Los cuatro paquetes han sido publicados en la web de npm entre mayo y septiembre 2018. En octubre 2020 npm ha eliminado los 4 paquetes por contener código malicioso.

Npm es el mayor repositorio de paquetes para todos los lenguajes de programación. El equipo de seguridad de npm escanea de manera regular su colección de bibliotecas Javascript, siendo este lenguaje el repositorio más importante de npm. Si bien es cierto que los paquetes maliciosos se suprimen de manera regular, la medida tomado con esos cuatro paquetes es una de las mayores que se hayan tomado en npm.

EL equipo de seguridad de npm comenta que los cuatro módulos abrían un shell en el ordenador del desarrollador que habían importado estos paquetes en sus proyectos. Los shells permitían a los creadores conectarse al ordenador infectado y ejecutar operaciones maliciosas. El equipo de seguridad de npm a declarado que los shells podían funcionar tanto en los sistemas operativos Windows y *nix (Linux, FreeBSD, OpenBSD, etc).

Como infectan y colectan los datos estos paquetes.

Una vez importados en los proyectos de los desarrolladores estos paquetes presentan un peligro para los ordenadores objetivos. El especialista en seguridad, AX Sharma (https://www.linkedin.com/in/axsharma/) , ha analizado estos paquetes y descubierto que plutov-slack-client, nodetest1010 y nodetest199 comparten un código idéntico y bastante simple pero capaz de funcionar sobre todos los sistemas operativos citados.

Una vez los paquetes estén instalados, el código establece una schell inversa hacia el servidor del atacante permitiéndole obtener acceso remoto al ordenador infectado. Una de las conclusiones de Sharma es que, a pesar de que los paquetes presentan un código similar, el fichero package.json contiene metadatos radicalmente diferentes en cuanto al autor o sus perfiles Github.

El último paquete, npmpubman, presenta una estructura de código y una finalidad diferente, según el investigador. Este paquete colecta los datos del usuario en base a las variables de entorno y los envía a un servidor remoto. Según Sharma, en un escenario real, npmpubman podría ser útil en el marco de los procedimientos de reconocimiento, por parte del atacante, de un sistema cuando los otros paquetes establecen una conexión directa atacante <–> víctima.

Los casos de programas maliciosos que se infiltran en el ecosistema open source son cada vez más numerosos. En agosto pasado, el equipo de seguridad de npm, había suprimido el paquete javascript «fallguys» del repositorio de npm porque contenía código que permitía robar ficheros sensibles del navegador del ordenador infectado. El paquete pretendía ofrecer un interface para la API del juego «Fall Guys: Ultimate Knockout».

En el mes de septiembre pasado, el personal de npm, ha suprimido 4 paquetes javascript que contenía código malicioso que permitía encontrar, en el ordenador infectado, datos del desarrollador que utilizase el paquete,como: la dirección IP del ordenador, el país,la ciudad, el nombre de usuario del ordenador así como el path personal e informaciones sobre el modelo del procesador. Toda esta información una vez recogida se publicaba como nuevo comentario en la sección «problemas» de un repositorio Github.

Fuentes:
https://www.npmjs.com/advisories/1568
https://www.npmjs.com/advisories/1569
https://www.npmjs.com/advisories/1570
https://www.npmjs.com/advisories/1571

Dime si te ha sido útil este artículo y no dudes en comentarlo, siéntete libre de copiar/pegar lo que consideres.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.