El paquete JavaScript popular, UAParser.js, está infectado con malware

: El paquete Npm UAParser.js, instalado en decenas de millones de computadoras en todo el mundo, ha sido infectado con un ladrón de contraseñas y un minero. Te decimos qué hacer.

Atacantes desconocidos comprometieron varias versiones de una popular biblioteca JavaScript, UAParser.js, al inyectarle código malicioso. De acuerdo con las estadísticas de la página del desarrollador,  muchos proyectos utilizan esta biblioteca que cuenta con 6 a 8 millones de descargas cada semana.

Los criminales comprometieron tres versiones de la biblioteca: 0.7.29, 0.8.0 y 1.0.0. Todos los usuarios y administradores deben actualizar las bibliotecas a las versiones 0.7.30, 0.8.1 y 1.0.1, respectivamente, lo antes posible.

¿Qué es UAParser.js y por qué es tan popular?

Los desarrolladores de JavaScript utilizan la biblioteca UAParser.js para analizar los datos Usuario-Agente que los navegadores envían. Está implementado en muchos sitios web y se utiliza en el proceso de desarrollo del software de varias empresas como Facebook, Apple, Amazon, Microsoft, Slack, IBM, HPE, Dell, Oracle, Mozilla, entre otras. Además, algunos desarrolladores de software utilizan instrumentos de terceros, como el marco Karma para pruebas de códigos, el cual también depende de esta biblioteca. Esto incrementa la escala del ataque debido a que añade un enlace adicional a la cadena de suministro.

Introducción de código malicioso

Los atacantes insertan scripts maliciosos en la biblioteca para descargar código malicioso y ejecutarlo en las computadoras de las víctimas, tanto en Linux como en Windows. El propósito de un módulo era minar criptomoneda. Un segundo (solo para Windows) podía robar información confidencial como cookies del navegador, contraseñas y credenciales del sistema operativo.

Sin embargo, eso podría no ser todo: De acuerdo con la advertencia de la Agencia de Protección de la Infraestructura y Ciberseguridad (CISA) de los Estados Unidos, instalar bibliotecas comprometidas podría dar pie a que los atacantes tomen el control de los sistemas infectados.

De acuerdo con usuarios de GitHub, el malware crea archivos binarios: jsextension (en Linux) y jsextension.exe (en Windows). La presencia de estos archivos es un indicador claro de que el sistema está comprometido.

Cómo entró el código malicioso a la biblioteca UAParser.js

Faisal Salman, el desarrollador del proyecto UAParser.js, declaró que un atacante no identificado obtuvo acceso a su cuenta en el repositorio npm y publicó tres versiones maliciosas de la biblioteca UAParser.js. De inmediato, el desarrollador agregó una advertencia a los paquetes comprometidos y se comunicó con el soporte de npm, quienes rápidamente borraron las versiones peligrosas. Sin embargo, si bien los paquetes estaban en línea, es posible que una buena cantidad de máquinas lo hayan descargado.

Al parecer, estuvieron en línea un poco más de cuatro horas, de las 14:15 a las 18:23 CET el 22 de octubre. Por la tarde, el desarrollador observó actividad inusual de spam en su bandeja de entrada (dijo que era una alerta de actividad sospechosa) y descubrió el origen del problema.

Qué debes hacer si descargaste bibliotecas infectadas

El primer paso es buscar malware en las computadoras. Nuestros productos detectan con éxito todos los componentes del malware que se utilizan en el ataque.

Después, actualiza tus bibliotecas a las versiones reparadas: 0.7.30, 0.8.1 y 1.0.1. Sin embargo, esto no es suficiente: De acuerdo con la advertencia cualquier computadora en la que se haya instalado o ejecutado una versión infectada debe considerarse completamente comprometida. Por lo tanto, los usuarios y los administradores deben cambiar todas las credenciales que se utilizaron en estas computadoras.

En general, los entornos de desarrollo o construcción son objetivos convenientes para los atacantes que intentan organizar ataques a la cadena de suministro. Esto significa que dichos entornos requieren protección antimalware de forma urgente.

Consejos