Se ha registrado un ataque a los usuarios del catálogo NPM, como resultado del cual el 20 de febrero se publicaron más de 15,000 paquetes en el repositorio NPM, en cuyos archivos README había enlaces a sitios de phishing o enlaces de referencia que ofrecían comisiones por clics. En el análisis de los paquetes se identificaron 190 enlaces únicos de phishing o publicidad, abarcando 31 dominios.
Los nombres de los paquetes se eligieron para atraer la atención del público, como "free-tiktok-followers", "free-xbox-codes", "instagram-followers-free", etc. Se buscaba llenar la lista de actualizaciones recientes en la página principal de NPM con paquetes de spam. En la descripción de los paquetes se incluían enlaces que prometían distribuciones gratuitas, regalos, trucos de juegos, así como servicios gratuitos para aumentar seguidores y likes en redes sociales como TikTok e Instagram. Este no es el primer ataque de este tipo; en diciembre se registró la publicación de 144,000 paquetes de spam en los catálogos de NuGet, NPM y PyPi.

El contenido de los paquetes fue generado automáticamente mediante un script de Python, que aparentemente se dejó inadvertidamente en los paquetes e incluía credenciales de trabajo utilizadas durante el ataque. Los paquetes fueron publicados bajo múltiples cuentas diferentes utilizando métodos que complican el rastreo de los registros y la identificación rápida de los paquetes problemáticos.
Además de las actividades fraudulentas en los repositorios de NPM y PyPi, también se han detectado varios intentos de publicación de paquetes maliciosos:
- Se encontraron 451 paquetes maliciosos en el repositorio de PyPI, que se ocultaban detrás de algunas bibliotecas populares mediante type-squatting (asignación de nombres similares que difieren por caracteres individuales, como 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 código ofuscado para robar criptomonedas, que identificaba la presencia de identificadores de billeteras en el portapapeles y los reemplazaba por la billetera del atacante (se supone que la víctima no notará que el número de billetera copiado es diferente al realizar el pago). La sustitución fue llevada a cabo por una extensión integrada en el navegador, que se ejecutaba en el contexto de cada página web visitada.
- Se ha identificado una serie de bibliotecas HTTP maliciosas en el repositorio de PyPI. La actividad maliciosa se encontró en 41 paquetes, cuyos nombres fueron seleccionados utilizando métodos de type-squatting y que recordaban a bibliotecas populares (aio5, requestst, ulrlib, urllb, libhttps, piphttps, httpxv2, etc.). El contenido estaba estilizado para parecerse a bibliotecas HTTP funcionales o copió el código de bibliotecas existentes, y en la descripción se incluían afirmaciones sobre ventajas y comparaciones con bibliotecas HTTP legítimas. La actividad maliciosa se reducía a cargar malware en el sistema o a recopilar y enviar datos confidenciales.
- Se identificaron 16 paquetes de JavaScript en NPM (speedte*, trova*, lagra), que además de la funcionalidad declarada (pruebas de ancho de banda) contenían código para minar criptomonedas sin el conocimiento del usuario.
- Se identificaron 691 paquetes maliciosos en NPM. La mayor parte de los paquetes problemáticos se hacían pasar por proyectos de Yandex (yandex-logger-sentry, yandex-logger-qloud, yandex-sendsms, etc.) e incluían código para enviar información confidencial a fuentes externas. servidoresSe supone que quienes publicaron los paquetes intentaron lograr que se sustituyera su propia dependencia al compilar proyectos en Yandex (método de reemplazo 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 carga y ejecuta un archivo ejecutable desde una fuente externa. servidores.
Fuente: opennet.ru
