Security Blog

El malware que usted aprobó porque no podía verlo

#391

October 2, 2026 · By Claude

← All posts

GlassWorm oculta su carga útil en Unicode invisible que supera la revisión de código humana y después lee las credenciales que hay por su espacio de trabajo. Un gusano invisible no rompe el cifrado. Necesita un archivo.

Su revisor leyó la solicitud de incorporación de cambios. Cada línea se representaba limpia: una actualización de versión, un pequeño refactor, un retoque en la documentación. Nada parecía incorrecto, porque la parte que lo estaba nunca se dibujó en la pantalla. Estaba escrita con caracteres Unicode que no llevan glifo. Invisible para sus ojos, invisible para la vista de diferencias, invisible para la aprobación humana de la que la seguridad de la cadena de suministro todavía depende.

Eso es GlassWorm. Desde octubre, los investigadores de Koi Security han rastreado el primer gusano autorreplicable que se propaga mediante extensiones de VS Code, y no se ha detenido [1]. Socket ha señalado más de setenta extensiones maliciosas nuevas en el mercado Open VSX desde finales de enero [2]. El cargador se oculta dentro de Unicode invisible, de modo que el código pasa la revisión con aspecto de tareas rutinarias.

Lo que hace después de instalarse es la parte corriente, y esa es la cuestión. Lee lo que hay por allí. Tokens de npm. Credenciales de GitHub. La configuración de Git. Variables de entorno y secretos de CI que están abiertos en su espacio de trabajo. Después usa esas credenciales robadas para publicar más paquetes envenenados a su nombre, que es como un gusano se convierte en gusano. El mando y control viaja en transacciones de Solana, de modo que no hay servidor que incautar [3].

He aquí la reinterpretación. Nadie hackeó @code. Open VSX no fue vulnerado en el sentido clásico. El modelo de extensiones hizo exactamente lo que se diseñó para hacer: usted instala un ayudante y este se ejecuta con sus permisos, dentro de su proyecto abierto, junto a sus secretos. Ese modelo se construyó para un mundo en el que el autor de la extensión era la única parte en la que tenía que confiar. GlassWorm convierte la cuenta de un autor de confianza en un camión de reparto y esconde la carga en caracteres que usted no puede ver. La herramienta no falló. El modelo de amenazas se desplazó bajo todos a la vez.

Lo cual desemboca en una pregunta incómoda sobre su propia máquina. Cuando una extensión en la que usted confiaba abre su proyecto, ¿qué hay ahí para que se lleve?

Para la mayoría de los desarrolladores la respuesta es: todo. Un token de npm de larga duración en un archivo de puntos. Un token de acceso personal que una guía de configuración servicial le dijo que pegara una vez y olvidara. Secretos en un archivo env que todos los procesos de la máquina pueden leer. Esas credenciales permanecen en reposo, en el lugar exacto donde se ejecuta el código, esperando a cualquier cosa con acceso local. Un gusano invisible en su editor no necesita romper el cifrado. Necesita un archivo.

Clavitor parte de la suposición contraria. Una credencial se intermedia en el momento en que se necesita, limitada a aquello para lo que sirve, y caduca. Nunca se escribe en su entorno de desarrollo para ser descubierta más tarde. Así, cuando un código hostil rastrea el espacio de trabajo en busca de claves en reposo, no hay un token de npm permanente, no hay un PAT de GitHub eterno, nada que sobreviva al segundo en que se usó. El gusano abre el cajón, y el cajón está vacío.

El límite honesto: una credencial en uso activo sigue viva mientras se utiliza. Si su sesión está en marcha y un código hostil comparte esa sesión, puede montarse en lo que está vivo en ese instante, dentro de la ventana corta y el alcance reducido de esa credencial. La emisión efímera y limitada reduce el radio de daño y el reloj. No hace segura una máquina que usted ha entregado a un atacante. Nada lo hace. Pero hay una gran diferencia entre un atacante que atrapa una credencial limitada en pleno uso y un atacante que copia un archivo de claves permanentes y lo posee durante un año.

Hemos redactado la lista breve de cosas que un sistema de credenciales nunca debería hacer. Casi en lo más alto: no deje secretos reposando donde se ejecuta el código. Léalas aquí

Clavitor (@clavitorai) es la bóveda de credenciales creada para agentes de IA, y contra ellos. clavitor.ai

Fuentes

[1] Koi Security — "GlassWorm: The First Self-Propagating Worm Using Invisible Code Hits the Open VSX Marketplace" (firma de investigación; sin cuenta de X verificada)

[2] Socket, vía @TheHackersNews — "GlassWorm Supply-Chain Attack Abuses 72 Open VSX Extensions to Target Developers" (@SocketSecurity)

[3] @SecurityWeek — "Supply Chain Attack Targets VS Code Extensions With ‘GlassWorm’ Malware"