Carteras de criptomonedas se filtraron de la memoria: el nuevo malware WeaselBiscuit roba datos directamente de Chrome

Carteras de criptomonedas se filtraron de la memoria: el nuevo malware WeaselBiscuit roba datos directamente de Chrome

La trampa se activó nada más ejecutar una librería aparentemente inocua.

image

Un paquete malicioso no necesita ser complejo para alcanzar los datos más valiosos de un desarrollador. El equipo OpenSourceMalware describió WeaselBiscuit, un nuevo infostealer en JavaScript que se distribuyó a través de al menos 13 paquetes npm. Las primeras muestras aparecieron en el registro a mediados de septiembre y, tras activarse, extraían datos de las extensiones de Chrome en Windows, macOS y Linux.

La infección no comienza en el momento de instalar la dependencia, sino después de que la aplicación importe el paquete. El archivo loader.js incorporado lanza un proceso Node.js separado, consulta el servicio Npoint, obtiene desde allí JavaScript codificado y lo ejecuta directamente en memoria mediante new Function. Este enfoque deja menos rastros en el sistema de archivos y separa el cargador de la carga útil principal.

Tras activarse, WeaselBiscuit recopila el nombre del equipo y del usuario, información sobre el sistema operativo, la CPU y la memoria, las direcciones de red locales, la IP pública y la geolocalización. Luego el malware examina los directorios Local Extension Settings en los perfiles de Chrome y envía al servidor de control todos los archivos legibles y no vacíos de esas carpetas, incluido el contenido de LevelDB, donde las extensiones almacenan su estado local.

Los almacenes de extensiones pueden contener el estado de monederos criptográficos, direcciones de cuentas, listas de tokens, contactos y otra información operativa. Comandos específicos del servidor permiten a WeaselBiscuit vigilar los cambios del portapapeles y, en Windows, también registrar pulsaciones de teclas. En esos flujos pueden filtrarse contraseñas, tokens API, direcciones de monedero y frases de recuperación.

Al mismo tiempo, WeaselBiscuit es notablemente más sencillo que malware más conocido como BeaverTail y OtterCookie. En el código hallado no hay función de extracción directa de criptomonedas, descifrado de contraseñas guardadas de Chrome, búsqueda de frases semilla por patrones, capturas de pantalla, shell remoto ni descarga de InvisibleFerret. La persistencia está limitada a un proceso Node.js separado y a un archivo local con su identificador.

La similitud con BeaverTail y OtterCookie llevó a los autores del informe a investigar una posible relación con la campaña Contagious Interview, que anteriormente enmascaró infecciones como proyectos y pruebas para desarrolladores. SecurityLab anteriormente analizó cómo OtterCookie se propagó a través de tareas falsas y paquetes npm. Sin embargo, el origen de WeaselBiscuit aún no está confirmado.

OpenSourceMalware valora la relación con operadores norcoreanos solo con baja o moderada certeza. A favor de esa hipótesis están la esquema similar con Npoint, la misma secuencia para determinar la IP pública y la geolocalización, y una arquitectura de control que recuerda a OtterCookie. No se han encontrado servidores únicos, firmas, datos víctimas compartidos ni una coincidencia de código lo bastante convincente.

Otro rastro está relacionado con identificadores numéricos 10, 12, 44, 79, 95 y 99, que aparecen en nombres de paquetes y en datos transmitidos. Un marcado de instalaciones similar lo aplicó PolinRider, que anteriormente atacó a desarrolladores a través de npm, extensiones de Chrome y otras plataformas. Los autores del informe consideran que los números son útiles para buscar rastros, pero desconocen su finalidad exacta.

La investigación sigue evolucionando a medida que se encuentran nuevas muestras. En la lista actual de indicadores de OpenSourceMalware figuran 13 paquetes npm, y en la tabla principal del informe se mencionan nombres adicionales relacionados. Al momento de la publicación del informe, la versión engin1 1.3.99 y el paquete laycot 1.3.10 estaban señalados como disponibles en npm, por lo que la lista no puede considerarse definitiva.

Para comprobar una posible infección, OpenSourceMalware recomienda buscar conexiones a las direcciones Npoint identificadas y al servidor de control, procesos hijos sospechosos de Node.js, archivos .pid y rastros de un monitor de teclado en Windows. También hay que determinar qué aplicación importó el paquete, ya que el malware no usa el hook del ciclo de vida de npm y no se ejecuta inmediatamente tras la instalación habitual de la dependencia.