En el mundo de la seguridad informática, los ataques cibernéticos están en constante evolución, y un nuevo desarrollo ha llamado la atención de expertos y usuarios por igual. Recientemente ha surgido un preocupante incidente: un troyano disfrazado en un paquete NPM capaz de sortear el Control de Cuentas de Usuario (UAC) e instalarse en sistemas sin ser detectado.
¿Qué es NPM y por qué es un objetivo para los atacantes?
NPM, o Node Package Manager, es un sistema de gestión de paquetes utilizado por JavaScript, particularmente en entornos Node.js. Es esencial para muchos desarrolladores, ya que facilita la instalación y actualización de paquetes o librerías necesarios para proyectos de software. Su popularidad y amplio uso lo convierten en un objetivo atractivo para los ciberdelincuentes, quienes pueden infiltrar código malicioso en paquetes ampliamente utilizados.
Te podrá interesar leer: ¿Qué es un Virus Troyano?
El Ataque del Troyano NPM: ¿Cómo Funciona?
Se ha descubierto que un paquete malicioso cargado en el registro npm implementaba un troyano de acceso remoto sofisticado en máquinas Windows comprometidas. El paquete, conocido como "oscompatible", se publicó el 9 de enero de 2024 y atrajo un total de 380 descargas antes de ser eliminado.
Dentro de "oscompatible", se encontraban "algunos archivos binarios inusuales", según la firma de seguridad de la cadena de suministro de software Phylum. Estos incluían un único archivo ejecutable, una biblioteca de enlaces dinámicos (DLL) y un archivo DAT cifrado, junto con un archivo JavaScript.
El archivo JavaScript ("index.js") ejecuta un script por lotes llamado "autorun.bat", pero solo lo hace después de verificar si la máquina de destino se está ejecutando en Microsoft Windows. Si la plataforma no es Windows, muestra un mensaje de error al usuario, indicando que el script se está ejecutando en Linux o en un sistema operativo no reconocido, instándolo a ejecutarlo en "Windows Server OS".
El script por lotes verifica si tiene privilegios de administrador y, en caso contrario, ejecuta un componente legítimo de Microsoft Edge llamado "cookie_exporter.exe" mediante un comando de PowerShell. Al intentar ejecutar el binario, se activa un mensaje de Control de cuentas de usuario (UAC) que solicita al objetivo que lo ejecute con credenciales de administrador.
Al hacerlo, el actor de la amenaza procede con la siguiente etapa del ataque ejecutando la DLL ("msedge.dll") utilizando una técnica llamada secuestro de orden de búsqueda de DLL. La versión troyanizada de la biblioteca está diseñada para descifrar el archivo DAT ("msedge.dat") e iniciar otra DLL llamada "msedgedat.dll", que establece conexiones con un dominio controlado por el actor llamado "kdark1[.] com" para recuperar un archivo ZIP.
Conoce más sobre: Quasar RAT: Malware con Carga de DLLs
Este archivo ZIP contiene el software de escritorio remoto AnyDesk, así como un troyano de acceso remoto ("verify.dll") capaz de recibir instrucciones de un servidor de comando y control (C2) a través de WebSockets y recopilar información confidencial del host.
Además, el paquete malicioso instala extensiones en Chrome en Preferencias seguras, configura AnyDesk, oculta la pantalla, desactiva el cierre de Windows y captura eventos de teclado y mouse.
Aunque "oscompatible" parece ser el único módulo npm utilizado en esta campaña, este desarrollo señala una tendencia creciente de actores de amenazas que apuntan a los ecosistemas de software de código abierto (OSS) para ataques a la cadena de suministro.
Phylum comentó: "Desde un punto de vista técnico, el proceso de descifrar datos, usar un certificado revocado para firmar, extraer otros archivos de fuentes remotas e intentar disfrazarse como un proceso de actualización estándar de Windows a lo largo del camino es relativamente sofisticado en comparación con lo que normalmente vemos en los ecosistemas OSS".
Esta revelación se produce cuando la empresa de seguridad en la nube Aqua informó que el 21,2% de los 50.000 paquetes npm más descargados están en desuso, lo que expone a los usuarios a riesgos de seguridad. En otras palabras, los paquetes obsoletos se descargan aproximadamente 2.100 millones de veces por semana.
Esto incluye repositorios de GitHub archivados y eliminados asociados con los paquetes, así como aquellos que se mantienen sin un repositorio visible, historial de confirmaciones y seguimiento de problemas. Los investigadores de seguridad Ilay Goldman y Yakir Kadkoda señalaron que "esto se vuelve especialmente preocupante cuando los mantenedores, en lugar de abordar las fallas de seguridad con parches o asignaciones CVE, optan por desaprobar los paquetes afectados", dejando una brecha de seguridad para los usuarios que pueden no ser conscientes de las amenazas potenciales.
Te podrá interesar leer: Análisis de Malware con Wazuh
Conclusión
El descubrimiento del troyano en un paquete NPM es un recordatorio de la constante evolución de las amenazas cibernéticas. Los usuarios y desarrolladores deben permanecer vigilantes, adoptar prácticas de seguridad sólidas y estar siempre al día con las últimas noticias y desarrollos en seguridad informática. Solo así podremos proteger nuestros sistemas y datos de los malintencionados esfuerzos de los ciberdelincuentes.