NPM encuentra 15 paquetes de phishing y spam

Se registró 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.

Los nombres de los paquetes se eligieron para atraer el interés del profano, 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.

NPM encuentra 15 paquetes de phishing y spam

El contenido de los paquetes se generó automáticamente utilizando un script de python, que aparentemente se dejó en los paquetes por un descuido e incluía las credenciales de trabajo utilizadas durante 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 encontraron 451 paquetes maliciosos en el repositorio de PyPI, que estaban disfrazados de algunas bibliotecas populares que utilizan 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 transferido a través del portapapeles es diferente). La sustitución se llevó a cabo mediante un complemento del 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 utilizando métodos de typequatting 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 (el 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.

Fuente: opennet.ru

Añadir un comentario