Los paquetes de NPM maliciosos son parte de un “bombardeo” de malware que golpea los repositorios

Los investigadores han encontrado otros 17 paquetes maliciosos en un repositorio de código abierto, ya que el uso de dichos repositorios para propagar malware continúa floreciendo.

Esta vez, el código malicioso se encontró en NPM, donde 11 millones de desarrolladores intercambian más de 1 millón de paquetes entre sí. Muchos de los 17 paquetes maliciosos parecen haber sido difundidos por diferentes actores de amenazas que utilizaron diversas técnicas y cantidades de esfuerzo para engañar a los desarrolladores para que descarguen productos maliciosos en lugar de los benignos previstos.

Este último descubrimiento continúa una tendencia detectada por primera vez hace unos años, en la que los delincuentes infiltran ladrones de información, registradores de pulsaciones de teclas u otros tipos de malware en paquetes disponibles en NPM, RubyGems, PyPi u otro repositorio. En muchos casos, el paquete malicioso tiene un nombre que es una letra diferente al de un paquete legítimo. A menudo, el paquete malicioso incluye el mismo código y funcionalidad que el paquete que se está suplantando y agrega código oculto que lleva a cabo acciones nefastas adicionales.

Un vector de ataque maduro

“Estamos siendo testigos de un aluvión reciente de software malicioso alojado y entregado a través de repositorios de software de código abierto”, los investigadores de JFrog Andrey Polkovnychenko y Shachar Menashe escribió el miércoles. “Los repositorios públicos se han convertido en un instrumento útil para la distribución de malware: el servidor del repositorio es un recurso confiable y la comunicación con él no levanta la sospecha de ningún antivirus o firewall. Además, la facilidad de instalación a través de herramientas de automatización, como el cliente npm, proporciona un vector de ataque maduro “.

La mayoría de los paquetes que JFrog marcó robaron credenciales u otra información para los servidores de Discord. Discord se ha convertido en una plataforma popular para que las personas se comuniquen a través de texto, voz y video. Los servidores comprometidos se pueden utilizar como canales de comando y control para redes de bots o como proxy al descargar datos de un servidor pirateado. Algunos paquetes robaron datos de tarjetas de crédito asociados con cuentas de Discord pirateadas.

Dos paquetes, discord-lofy y discord-selfbot-v14, provienen de un autor que usa el nombre davisousa. Se hacen pasar por modificaciones de la popular biblioteca legítima discord.js, que permite la interacción con la API de Discord. El malware incorpora la biblioteca discord.js original como base y luego inyecta código malicioso ofuscado en uno de los archivos del paquete.

Los investigadores de JFrog escribieron:

La versión ofuscada del código es enorme: más de 4.000 líneas de código ilegible, que contienen todos los métodos posibles de ofuscación: nombres de variables destrozados, cadenas encriptadas, acoplo de código y llamadas a funciones reflejadas:

Mediante análisis y secuencias de comandos manuales, pudimos desofuscar el paquete y revelar que su carga útil final es bastante sencilla: la carga útil simplemente itera sobre las carpetas de almacenamiento local de navegadores conocidos (y carpetas específicas de Discord) y luego las busca en busca de cadenas. parece una ficha de Discord mediante el uso de una expresión regular. Cualquier token encontrado se envía de vuelta a través de HTTP POST al servidor codificado https://aba45cf.glitch.me/polarlindo.

Otro paquete llamado fix-error afirmaba corregir errores en un “selfbot” de discordia. También contenía código malicioso que había sido ofuscado pero, en este caso, fue mucho más fácil para los investigadores desofuscarlo. Los investigadores pronto determinaron que el código oculto era una versión robada del PirataRobador, una aplicación que roba información de tarjetas de crédito, credenciales de inicio de sesión y otros datos privados almacenados en un cliente de Discord. Funciona inyectando código Javascript malicioso en el cliente Discord. Luego, el código “espía” al usuario y envía la información robada a una dirección codificada.

Un tercer ejemplo es prerequests-xcode, un paquete que contiene la funcionalidad de un troyano de acceso remoto. Los investigadores escribieron:

Al inspeccionar el código del paquete, identificamos que contiene un puerto Node.JS de
DiscordRAT(escrito originalmente en Python) que le da al atacante control total sobre la máquina de la víctima. El malware está oculto con la popular herramienta en línea. obfuscator.io, pero en este caso basta con inspeccionar la lista de comandos disponibles para comprender la funcionalidad de la RAT (copiada literalmente).

La lista completa de paquetes es:

Paquete Versión Carga útil Método de infección
prerequests-xcode 1.0.4 Troyano de acceso remoto (RATA) Desconocido
discordia-selfbot-v14 12.0.3 Capturador de fichas de discordia Typosquatting / Troyano (discord.js)
discordia 11.5.1 Capturador de fichas de discordia Typosquatting / Troyano (discord.js)
sistema de discordia 11.5.1 Capturador de fichas de discordia Typosquatting / Troyano (discord.js)
discordia-villa 1.0.0 Capturador de fichas de discordia Typosquatting / Troyano (discord.js)
arreglar error 1.0.0 PirataRobador (Malware de Discord) Troyano
encuadernación de obleas 1.1.2 Ladrón de variables de entorno Typosquatting (oblea- *)
autocompletar oblea 1.25.0 Ladrón de variables de entorno Typosquatting (oblea- *)
baliza de oblea 1.3.3 Ladrón de variables de entorno Typosquatting (oblea- *)
oblea-caas 1.14.20 Ladrón de variables de entorno Typosquatting (oblea- *)
alternar oblea 1.15.4 Ladrón de variables de entorno Typosquatting (oblea- *)
geolocalización de obleas 1.2.10 Ladrón de variables de entorno Typosquatting (oblea- *)
imagen de oblea 1.2.2 Ladrón de variables de entorno Typosquatting (oblea- *)
forma de oblea 1.30.1 Ladrón de variables de entorno Typosquatting (oblea- *)
caja de luz de obleas 1.5.4 Ladrón de variables de entorno Typosquatting (oblea- *)
octavo publico 1.836.609 Ladrón de variables de entorno Typosquatting (octavius)
mrg-message-broker 9998.987.376 Ladrón de variables de entorno Confusión de dependencia
Como se señaló anteriormente, NPM no es el único repositorio de código abierto que se infiltra con paquetes maliciosos. El repositorio de PyPi para Python ha visto su parte de paquetes cargados de malware, al igual que RubyGems.

Las personas que descargan paquetes de código abierto deben tener especial cuidado para asegurarse de que el elemento que están descargando sea legítimo y no malware disfrazado de legítimo. Las organizaciones más grandes que dependen en gran medida del software de código abierto pueden encontrar útil comprar servicios de administración de paquetes, que JFrog simplemente vende.


Source: Ars Technica by arstechnica.com.

*The article has been translated based on the content of Ars Technica by arstechnica.com. If there is any problem regarding the content, copyright, please leave a report below the article. We will try to process as quickly as possible to protect the rights of the author. Thank you very much!

*We just want readers to access information more quickly and easily with other multilingual content, instead of information only available in a certain language.

*We always respect the copyright of the content of the author and always include the original link of the source article.If the author disagrees, just leave the report below the article, the article will be edited or deleted at the request of the author. Thanks very much! Best regards!