top of page

Cientos de paquetes adicionales encontrados en la "fábrica" maliciosa de NPM



Una ola de paquetes maliciosos sigue siendo investigada por investigadores, ahora con una cantidad publicada que llega a más de 700.


La semana pasada, los investigadores de la empresa de software JFrog revelaron el esquema en el que un actor de amenazas desconocido había publicado al menos 200 paquetes maliciosos del administrador de Node.sj o NPM (Node Package Manager). El equipo dijo, que los repositorios fueron detectados por primera vez el 21 de marzo y crecieron rápidamente, con cada paquete NPM deliberadamente nombrado para imitar el software legítimo.


Un programa de comandos o"script" automatizado, apuntaba a los ámbitos utilizados por los desarrolladores de Microsoft Azure, incluyendo @azure, @azure-rest, @azure-tests, y más, en el registro de software NPM.


El lunes, los investigadores Aviad Gershon y Jossef Harush, de la empresa de seguridad de software Checkmarx, dijeron que el equipo de Seguridad de la Cadena de Suministro (SCS) también ha estado rastreando estas actividades y ha registrado más de 600 paquetes maliciosos publicados en cinco días, lo que eleva el total a más de 700.


El malhechor responsable ha estado utilizando cuentas de usuario únicas, para intentar que los ataques pasen desapercibidos.


"Esto es poco común en los ataques automatizados que vemos; normalmente, los atacantes crean un único usuario y hacen estallar sus ataques sobre él", afirma Checkmarx. "A partir de este comportamiento, podemos concluir que el atacante construyó un proceso de automatización de extremo a extremo, incluyendo el registro de usuarios y la superación de los desafíos de contraseñas de un único OTP".


Según Checkmarx, la "fábrica" del atacante está desarrollando paquetes NPM maliciosos que se basan en la confusión de dependencias tipográficas, para engañar a los desarrolladores y robar sus datos con éxito.


Como ha señalado JFrog, el método de ataque se basa en el "typosquatting" (allanamiento de error tipográfico) y en nombres que imitan a los paquetes de confianza, a menudo eliminando la parte "scope" del nombre del paquete para que parezca legítimo.


El servidor de comando y control (C2) utilizado para gestionar la infraestructura general de la oleada de ataques, "rt11[.]ml", es también la dirección del destinatario para el envío de la información robada. El C2 parece estar ejecutando Interactsh, una herramienta de código abierto escrita en el lenguaje de programación Go para la extracción de datos.


Checkmarx creó su propio dominio y servidor, con un cliente Interactsh, para entender mejor el método del atacante. Luego, escribió un script que abre cuentas de NPM a petición, utilizando el software de pruebas web SeleniumLibrary. El script puede generar aleatoriamente nombres de usuario y direcciones de correo electrónico bajo el dominio de prueba e inicia automáticamente el proceso de registro.


Aquí es donde entra en juego Interactsh. Para eludir la comprobación de la contraseña de un solo uso (OTP) utilizada por NPM, Interactsh extrae automáticamente la contraseña OTP y la devuelve al formulario de registro, permitiendo que la solicitud de creación de la cuenta tenga éxito.


Después, el equipo se adhirió al método del atacante creando una plantilla de paquete NPM y un script capaz de comunicarse con las utilidades de NPM en las etapas de "inicio de sesión" y "publicación".


"Vale la pena mencionar que una vez que la cuenta de usuario está abierta, es posible configurarla de manera que no requiera OTP para publicar un paquete", dijeron los investigadores. "Esto podría hacerse utilizando un token de autenticación y configurándolo para que funcione sin 2FA (Doble Factor de Autenticación). Se supone, que esta es la forma en que los atacantes que publicaron ráfagas de paquetes maliciosos pudieron automatizar su proceso sin configurar el mecanismo descrito."


Checkmarx, así como JFrog, han informado de los paquetes maliciosos al equipo de seguridad de NPM. Además, se ha notificado a la empresa que proporciona el servidor C2.

"Al distribuir los paquetes entre varios nombres de usuario, el atacante hace más difícil que los defensores puedan acabar con todos ellos de "un solo golpe", indicó Checkmarx. "Con ello, por supuesto, hace que las posibilidades de infección sean mayores. Para que quede claro, los bloques de construcción necesarios para crear uno o varios usuarios (verificados por OTP) por paquete no es una tarea trivial."


En febrero, JFrog encontró 25 paquetes NPM maliciosos que contenían robos de tokens de Discord. Muchos de estos paquetes imitaban a colors.js, un software de código abierto para utilizar texto coloreado en node.js - antes de que su creador saboteara el paquete.

bottom of page