Investigadores de ciberseguridad descubrieron un ataque a la cadena de suministro de software que permaneció activo durante más de un año en el registro de paquetes npm al comenzar como una biblioteca inocua y luego agregar código malicioso para robar datos confidenciales y extraer criptomonedas en sistemas infectados.
El paquete, denominado @0xengine/xmlrpc, se publicó originalmente el 2 de octubre de 2023 como un servidor y cliente XML-RPC basado en JavaScript para Node.js. Se ha descargado 1790 veces hasta la fecha y sigue disponible para descargar desde el repositorio.
jaquemarxque descubrió el paquete, dijo que el código malicioso se introdujo estratégicamente en la versión 1.3.4 un día después, albergando funcionalidad para recolectar información valiosa como claves SSH, historial de bash, metadatos del sistema y variables de entorno cada 12 horas, y exfiltrarla a través de servicios como Dropbox y file.io.
“El ataque logró distribuirse a través de múltiples vectores: instalación directa de npm y como una dependencia oculta en un repositorio aparentemente legítimo”, dijo el investigador de seguridad Yehuda Gelb en un informe técnico publicado esta semana.
El segundo enfoque implica un repositorio de proyectos de GitHub llamado yawpp (abreviatura de “Yet Another WordPress Poster”) que pretende ser una herramienta diseñada para crear publicaciones mediante programación en la plataforma WordPress.
Su archivo “package.json” enumera la última versión de @0xengine/xmlrpc como una dependencia, lo que provoca que el paquete npm malicioso se descargue e instale automáticamente cuando los usuarios intentan configurar la herramienta yawpp en sus sistemas.
Actualmente no está claro si el desarrollador de la herramienta agregó deliberadamente este paquete como una dependencia. El repositorio se ha bifurcado una vez al momento de escribir este artículo. No hace falta decir que este enfoque es otro método eficaz de distribución de malware, ya que explota la confianza que los usuarios depositan en las dependencias de los paquetes.
Una vez instalado, el malware está diseñado para recopilar información del sistema, establecer persistencia en el host a través de systemd e implementar el minero de criptomonedas XMRig. Se ha descubierto que hasta 68 sistemas comprometidos extraen activamente criptomonedas a través de la billetera Monero del atacante.
Además, está equipado para monitorear constantemente la lista de procesos en ejecución para verificar la presencia de comandos como top, iostat, sar, looks, dstat, nmon, vmstat y ps, y finalizar todos los procesos relacionados con la minería si los encuentra. También es capaz de suspender las operaciones mineras si se detecta actividad del usuario.
“Este descubrimiento sirve como un claro recordatorio de que la longevidad de un paquete y su historial de mantenimiento constante no garantizan su seguridad”, afirmó Gelb. “Ya sean paquetes inicialmente maliciosos o legítimos que se ven comprometidos a través de actualizaciones, la cadena de suministro de software requiere una vigilancia constante, tanto durante la investigación inicial como durante todo el ciclo de vida de un paquete”.
La revelación surge como Laboratorios de seguridad de Datadog descubrió una campaña maliciosa en curso dirigida a usuarios de Windows que utiliza paquetes falsificados cargados en los repositorios npm y Python Package Index (PyPI) con el objetivo final de implementar malware ladrón de código abierto conocido como Blank-Grabber y Skuld Stealer.
La compañía, que detectó el ataque a la cadena de suministro el mes pasado, está rastreando el grupo de amenazas bajo el nombre MUT-8694 (donde MUT significa “amenaza misteriosa no atribuida”), afirmando que se superpone con una campaña que fue documentada por Socket a principios de este mes como con el objetivo de infectar a los usuarios de Roblox con el mismo malware.
Se han subido entre 18 y 39 paquetes únicos falsos a npm y PyPI, y las bibliotecas intentan hacerse pasar por paquetes legítimos mediante el uso de técnicas de typosquatting.
“El uso de numerosos paquetes y la participación de varios usuarios maliciosos sugiere que MUT-8694 es persistente en sus intentos de comprometer a los desarrolladores”, dijeron los investigadores de Datadog. “A diferencia del ecosistema PyPI, la mayoría de los paquetes npm tenían referencias a Roblox, una plataforma de creación de juegos en línea, lo que sugiere que el actor de amenazas se dirige a los desarrolladores de Roblox en particular”.