Encontraron más de 15.000 paquetes de phishing y spam en NPM

NPM attack

NPM attack

Se dio a conocer hace poco la noticia de que, fue registrado un ataque a usuarios del directorio de NPM, producto del cual, el 20 de febrero, se colocaron más de 15 mil paquetes en el repositorio de NPM, en cuyos archivos README había enlaces a sitios de phishing o enlaces de referencia para los cuales se pagaron regalías.

El análisis de los paquetes reveló 190 enlaces promocionales o de phishing únicos que cubrían 31 dominios.

El lunes 20 de febrero, Checkmarx Labs descubrió una anomalía en el ecosistema NPM cuando cruzamos información nueva con nuestras bases de datos. Se habían publicado grupos de paquetes en grandes cantidades en el administrador de paquetes de NPM. Investigaciones posteriores revelaron que los paquetes formaban parte de un nuevo vector de ataque de tendencia, en el que los atacantes enviaban spam al ecosistema de código abierto con paquetes que contenían enlaces a campañas de phishing. Informamos sobre un ataque similar en diciembre pasado.

En esta situación, parece que se usaron procesos automatizados para crear más de 15 000 paquetes en NPM y cuentas de usuario relacionadas. Las descripciones de estos paquetes contenían enlaces a campañas de phishing. Nuestro equipo alertó al equipo de seguridad de NPM.

Los nombres de los paquetes se eligieron para atraer el interés por ejemplo, «free-tiktok-followers», «free-xbox-codes», «instagram-followers-free», etc.

El cálculo se realizó para completar la lista de actualizaciones recientes en la página principal de NPM con paquetes de spam. Las descripciones de los paquetes incluían enlaces que prometían obsequios, trucos de juegos y servicios gratuitos para obtener seguidores y me gusta en redes sociales como TikTok e Instagram. Este no es el primer ataque de este tipo, en diciembre se publicaron 144 mil paquetes de spam en los directorios NuGet, NPM y PyPi.

El contenido de los paquetes se generó automáticamente mediante un script de python que aparentemente se dejó en los paquetes por error e incluía las credenciales de trabajo utilizadas en el ataque. Los paquetes se han publicado en muchas cuentas diferentes utilizando métodos que dificultan desentrañar el rastro e identificar rápidamente los paquetes problemáticos.

Además de actividades fraudulentas, también se han identificado varios intentos de publicación de paquetes maliciosos en los repositorios de NPM y PyPi:

  • Se ha encontrado en el repositorio de PyPI451 paquetes maliciosos que se hicieron pasar por algunas bibliotecas populares usando typequatting (asignando nombres similares que difieren en caracteres individuales, por ejemplo, vper en lugar de vyper, bitcoinnlib en lugar de bitcoinlib, ccryptofeed en lugar de cryptofeed, ccxtt en lugar de ccxt, cryptocommpare en lugar de cryptocompare, seleium en lugar de selenium, pinstaller en lugar de pyinstaller, etc.).
  • Los paquetes incluían un código ofuscado para robar criptomonedas, que determinaba la presencia de identificadores de billetera criptográfica en el portapapeles y los cambiaba a la billetera del atacante (se supone que al realizar un pago, la víctima no notará que el número de billetera se transfirió a través del portapapeles) es diferente).
  • La sustitución se llevó a cabo mediante un complemento integrado en el navegador, que se realizó en el contexto de cada página web visitada.
  • Se han identificado una serie de bibliotecas HTTP maliciosas en el repositorio de PyPI.
  • Se encontró actividad maliciosa en 41 paquetes cuyos nombres se seleccionaron mediante métodos de tipoquatting y se parecían a bibliotecas populares (aio5, requestst, ulrlib, urllb, libhttps, piphttps, httpxv2, etc.).
  • El relleno se diseñó para que pareciera bibliotecas HTTP en funcionamiento o código copiado de bibliotecas existentes, y la descripción afirmaba beneficios y comparaciones con bibliotecas HTTP legítimas. La actividad maliciosa se limitó a descargar malware en el sistema o recopilar y enviar datos confidenciales.
  • NPM identificó 16 paquetes de JavaScript (speedte*, trova*, lagra), que, además de la funcionalidad declarada (prueba de rendimiento), también contenían código para la minería de criptomonedas sin el conocimiento del usuario.
  • NPM identificó 691 paquetes maliciosos. La mayoría de los paquetes problemáticos pretendían ser proyectos de Yandex (yandex-logger-sentry, yandex-logger-qloud, yandex-sendsms, etc.) e incluían código para enviar información confidencial a servidores externos. Se supone que quienes colocaron los paquetes intentaron lograr la sustitución de su propia dependencia al construir proyectos en Yandex (método de sustitución de dependencias internas).

En el repositorio de PyPI, los mismos investigadores encontraron 49 paquetes (reqsystem, httpxfaster, aio6, gorilla2, httpsos, pohttp, etc.) con código malicioso ofuscado que descarga y ejecuta un archivo ejecutable desde un servidor externo.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.