Malware inyectado en el paquete UAParser.js NPM con 8 millones de descargas por semana

La historia de la eliminación del repositorio de NPM de tres paquetes maliciosos que copiaban el código de la biblioteca UAParser.js tuvo una continuación inesperada: atacantes desconocidos tomaron el control de la cuenta del autor del proyecto UAParser.js y publicaron actualizaciones que contienen código para robar contraseñas y minar criptomonedas.

El problema es que la biblioteca UAParser.js, que ofrece funciones para analizar el encabezado HTTP User-Agent, tiene alrededor de 8 millones de descargas por semana y se utiliza como dependencia en más de 1200 proyectos. Se afirma que UAParser.js se utiliza en proyectos de empresas como Microsoft, Amazon, Facebook, Slack, Discord, Mozilla, Apple, ProtonMail, Autodesk, Reddit, Vimeo, Uber, Dell, IBM, Siemens, Oracle, HP y Verison. .

El ataque se llevó a cabo mediante el hackeo de la cuenta del desarrollador del proyecto, quien se dio cuenta de que algo andaba mal después de que una inusual ola de spam cayera en su buzón. No se informa exactamente cómo se pirateó la cuenta del desarrollador. Los atacantes crearon las versiones 0.7.29, 0.8.0 y 1.0.0, introduciendo en ellas código malicioso. En unas pocas horas, los desarrolladores recuperaron el control del proyecto y crearon las actualizaciones 0.7.30, 0.8.1 y 1.0.1 para solucionar el problema. Las versiones maliciosas se publicaron únicamente como paquetes en el repositorio de NPM. El repositorio Git del proyecto en GitHub no se vio afectado. Se recomienda a todos los usuarios que hayan instalado versiones problemáticas, si encuentran el archivo jsextension en Linux/macOS, y los archivos jsextension.exe y create.dll en Windows, que consideren el sistema comprometido.

Los cambios maliciosos agregados recordaban los cambios propuestos previamente en clones de UAParser.js, que parecían haberse lanzado para probar la funcionalidad antes de lanzar un ataque a gran escala contra el proyecto principal. El archivo ejecutable jsextension se descargó y se inició en el sistema del usuario desde un host externo, que se seleccionó según la plataforma del usuario y el trabajo admitido en Linux, macOS y Windows. Para la plataforma Windows, además del programa para extraer la criptomoneda Monero (se utilizó el minero XMRig), los atacantes también organizaron la introducción de la biblioteca create.dll para interceptar contraseñas y enviarlas a un host externo.

El código de descarga se agregó al archivo preinstall.sh, en el que se inserta IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') if [ -z " $ IP" ] ... descargue y ejecute el archivo ejecutable fi

Como puede verse en el código, el script primero verificó la dirección IP en el servicio freegeoip.app y no lanzó ninguna aplicación maliciosa para usuarios de Rusia, Ucrania, Bielorrusia y Kazajstán.

Fuente: opennet.ru

Añadir un comentario