Los investigadores de ciberseguridad han señalado una nueva evolución de la campaña GlassWorm que ofrece un marco de múltiples etapas capaz de robar datos integrales e instalar un troyano de acceso remoto (RAT), que implementa una extensión de Google Chrome para robar información haciéndose pasar por una versión fuera de línea de Google Docs.
«Registra las pulsaciones de teclas, descarga cookies y tokens de sesión, captura capturas de pantalla y recibe comandos de un servidor C2 oculto en una nota de cadena de bloques de Solana», dijo el investigador de seguridad de Aikido Ilyas Makari en un informe publicado la semana pasada.
GlassWorm es el apodo asignado a una campaña persistente que obtiene un punto de apoyo inicial a través de paquetes maliciosos publicados en npm, PyPI, GitHub y el mercado Open VSX. Además, se sabe que los operadores comprometen las cuentas de los mantenedores del proyecto para enviar actualizaciones envenenadas.
Los ataques son lo suficientemente cuidadosos como para evitar infectar sistemas con una configuración regional rusa y utilizan transacciones de Solana como un sistema de resolución muerta para recuperar el servidor de comando y control (C2) («45.32.150(.)251») y descargar cargas útiles específicas del sistema operativo.
La carga útil de la etapa dos es un marco de robo de datos con capacidades de recolección de credenciales, exfiltración de billeteras de criptomonedas y creación de perfiles del sistema. Los datos recopilados se comprimen en un archivo ZIP y se extraen a un servidor externo («217.69.3(.)152/wall»). También incorpora funcionalidad para recuperar y lanzar la carga útil final.
Una vez que se transmiten los datos, la cadena de ataque implica recuperar dos componentes adicionales: un binario .NET diseñado para llevar a cabo phishing de billetera de hardware y un RAT JavaScript basado en Websocket para desviar datos del navegador web y ejecutar código arbitrario. La carga útil RAT se obtiene de «45.32.150(.)251» mediante el uso de una URL de evento público de Google Calendar como solucionador de entrega muerta.
El binario .NET aprovecha la infraestructura del Instrumental de administración de Windows (WMI) para detectar conexiones de dispositivos USB y muestra una ventana de phishing cuando se conecta una billetera de hardware Ledger o Trezor.
«La interfaz de usuario de Ledger muestra un error de configuración falso y presenta 24 campos de entrada de frases de recuperación numerados», señaló Makari. «La interfaz de usuario de Trezor muestra un mensaje falso de ‘Error en la validación del firmware, iniciando reinicio de emergencia’ con el mismo diseño de entrada de 24 palabras. Ambas ventanas incluyen un botón ‘RESTAURAR WALLET'».
El malware no sólo elimina cualquier proceso real de Ledger Live que se esté ejecutando en el host de Windows, sino que también vuelve a mostrar la ventana de phishing si la víctima la cierra. El objetivo final del ataque es capturar la frase de recuperación de la billetera y transmitirla a la dirección IP «45.150.34(.)158».
La RAT, por otro lado, utiliza una tabla hash distribuida (DHT) para recuperar los detalles de C2. En caso de que el mecanismo no devuelva ningún valor, el malware cambia al punto muerto basado en Solana. Luego, la RAT establece comunicación con el servidor para ejecutar varios comandos en el sistema comprometido:
- start_hvnc / stop_hvnc, para implementar un módulo de Computación de red virtual oculta (HVNC) para acceso a escritorio remoto.
- start_socks / stop_socks, para iniciar un módulo WebRTC y ejecutarlo como proxy SOCKS.
- reget_log, para robar datos de navegadores web, como Google Chrome, Microsoft Edge, Brave, Opera, Opera GX, Vivaldi y Mozilla Firefox. El componente está equipado para eludir las protecciones de cifrado vinculado a aplicaciones (ABE) de Chrome.
- get_system_info, para enviar información del sistema.
- comando, para ejecutar JavaScript proporcionado por el atacante a través de eval().
La RAT también instala a la fuerza una extensión de Google Chrome llamada Google Docs Offline en sistemas Windows y macOS, que luego se conecta a un servidor C2 y recibe comandos emitidos por el operador, lo que permite recopilar cookies, almacenamiento local, el árbol completo del Modelo de objetos de documento (DOM) de la pestaña activa, marcadores, capturas de pantalla, pulsaciones de teclas, contenido del portapapeles, hasta 5000 entradas del historial del navegador y la lista de extensiones instaladas.
«La extensión también realiza vigilancia de sesión específica. Extrae las reglas del sitio monitoreado de /api/get-url-for-watch y se envía con Bybit (.bybit.com) preconfigurado como objetivo, vigilando las cookies de token seguro y de identificación del dispositivo», dijo Aikido. «Al ser detectado, activa un webhook detectado por autenticación a /api/webhook/auth-detected que contiene el material de la cookie y los metadatos de la página. El C2 también puede proporcionar reglas de redireccionamiento que fuerzan las pestañas activas a URL controladas por el atacante».
El descubrimiento coincide con otro cambio en las tácticas de GlassWorm, con los atacantes publicando paquetes npm haciéndose pasar por el servidor WaterCrawl Model Context Protocol (MCP) («@iflow-mcp/watercrawl-watercrawl-mcp) para distribuir cargas útiles maliciosas.
«Este es el primer paso confirmado de GlassWorm hacia el ecosistema MCP», dijo el investigador de seguridad de Koi, Lotan Sery. «Y dado lo rápido que está creciendo el desarrollo asistido por IA, y cuánta confianza se otorga a los servidores MCP por diseño, este no será el último».
Se recomienda a los desarrolladores que tengan cuidado al instalar extensiones Open VSX, paquetes npm y servidores MCP. También se recomienda verificar los nombres de los editores, los historiales de paquetes y evitar confiar ciegamente en los recuentos de descargas. La empresa polaca de ciberseguridad AFINE ha publicado una herramienta Python de código abierto llamada glassworm-hunter para escanear los sistemas de los desarrolladores en busca de cargas útiles asociadas con la campaña.
«El cazador de gusanos de vidrio no realiza ninguna solicitud de red durante el escaneo», dijeron los investigadores Paweł Woyke y Sławomir Zakrzewski. «Sin telemetría. Sin llamadas telefónicas a casa. Sin comprobaciones automáticas de actualizaciones. Solo lee archivos locales. La actualización de Glassworm-hunter es el único comando que toca la red. Obtiene la última base de datos de IoC de nuestro GitHub y la guarda localmente».