Ataque a la cadena de suministro afecta al paquete NPM con 45.000 descargas semanales ~ Segu-Info

Un paquete NPM llamado «rand-user-agent» fue comprometido en un ataque
a la cadena de suministro para inyectar código ofuscado que activa un troyano
de acceso remoto (RAT) en el sistema del usuario.

El paquete «rand-user-agent» es una herramienta que genera cadenas de
user-agent aleatorias, lo cual resulta útil para el
web scraping, las pruebas automatizadas y la investigación de
seguridad. Aunque el paquete ha quedado obsoleto, sigue siendo bastante
popular, con un promedio de 45.000 descargas semanales.

Sin embargo,
según investigadores de Aikido, los actores de amenazas aprovecharon su estado semiabandonado, pero
popular, para inyectar código malicioso en versiones posteriores no
autorizadas que probablemente fueron descargadas por un número significativo
de proyectos derivados.

Aikido detectó la vulnerabilidad el 5 de mayo de 2025, cuando su sistema de
análisis de malware detectó una nueva versión de rand-user-agent, la
1.0.110. Tras un examen más profundo, los investigadores encontraron un código
ofuscado oculto en el archivo ‘dist/index.js’ que solo era visible si
el usuario se desplazaba horizontalmente en la vista de origen en el sitio
NPM.

La investigación reveló que la última versión legítima de
‘rand-user-agent’ era la 2.0.82, publicada hace 7 meses. Las versiones
2.0.83, 2.0.84 y 1.0.110, publicadas posteriormente, eran maliciosas y no
tenían versiones correspondientes en el repositorio de GitHub del proyecto.

El código malicioso incrustado en las versiones más recientes crea un
directorio oculto en la carpeta de inicio del usuario (~/.node_modules)
y extiende ‘module.paths’ para que esta ruta personalizada pueda usarse
para cargar dependencias, concretamente ‘axios’ y
‘socket.io-client’.

A continuación, abre una conexión de socket persistente con el comando y
control (C2) del atacante en http://85.239.62[.]36:3306 y envía
información del ID de la máquina, incluyendo nombre de host, nombre de
usuario, tipo de sistema operativo y un UUID generado.

Una vez activa la RAT, escucha uno de los siguientes comandos:

  • cd <path> – Cambia el directorio de trabajo actual
  • ss_dir – Restablece el directorio de trabajo a la ruta del script
  • ss_fcd:<path> – Cambia forzosamente al directorio indicado
  • ss_upf:f,d – Sube un único archivo f al destino d
  • ss_upd:d,dest – Sube todos los archivos del directorio d al destino
  • ss_stop – Interrumpe cualquier subida de archivos en curso
  • (any_other) – Se ejecuta como un comando de shell mediante child_process.exec()

Al momento de escribir este artículo, las versiones maliciosas se han
eliminado del repositorio del paquete en NPM, por lo que la última versión
disponible es segura y los usuarios deberían volver a ella.

Sin embargo, si ha actualizado a las versiones 2.0.83, 2.0.84 o 1.0.110, es
importante realizar un análisis completo del sistema para detectar indicios de
vulnerabilidad. Tenga en cuenta que volver a la versión legítima no elimina el
RAT de su sistema.

Además, considere usar versiones bifurcadas, pero con soporte y mejor
monitorizadas, de la herramienta «rand-user-agent».

La investigación muestra que el atacante obtuvo un token de automatización
obsoleto de un empleado y lo utilizó para publicar versiones en NPM. Dicho
token no contaba con autenticación de dos factores, lo que le permitió al
atacante: publicar versiones que no existían en GitHub, aumentar los números
de versión para que parecieran legítimos y no descontinuar nada, con la
esperanza de que las nuevas versiones se propagaran antes de que nadie lo
notara.

No hay evidencia de una brecha en nuestro repositorio de código fuente.
Construir canalización o red corporativa. El incidente se limitó al registro
NPM.

Ofrecemos disculpas a todos los desarrolladores y organizaciones afectados por
este incidente. Proteger el ecosistema de código abierto es una
responsabilidad que nos tomamos muy en serio, y nos comprometemos a una
transparencia total mientras cerramos todas las brechas que permitieron que
ocurriera este ataque.

Fuente:
BC


Ver fuente

Related Post