Ciberseguridad

GlassWorm vivió un año en extensiones de VS Code antes de que lo desmantelaran

Susan Hill

Por más de un año, algunos de los programadores que construyen las apps de tu celular trabajaron, sin saberlo, para otra persona. Un programa malicioso llamado GlassWorm vivió dentro de extensiones de Visual Studio Code, el editor de código más usado del mundo, y dentro de los paquetes de código abierto que esos programadores suman a sus proyectos todos los días. Recolectó sus contraseñas, secuestró sus cuentas y las usó para instalarse en todavía más software. CrowdStrike, Google y la Fundación Shadowserver le cortaron los hilos.

Esto importa incluso a quien nunca abrió un editor de código, porque la cadena de suministro del software es justamente eso, una cadena. La app de mensajería del celular, la del banco, el juego de la consola se apoyan en miles de pequeñas piezas de código abierto que escriben y mantienen otras personas. Si se envenena una de esas piezas, el veneno puede viajar hacia abajo hasta productos terminados que usan millones. GlassWorm se diseñó para aprovechar esa corriente sin que nadie lo viera.

Lo que lo distinguió fue su manera de esconderse. Sus operadores escribieron las instrucciones maliciosas con caracteres Unicode invisibles, código que aparece como un espacio en blanco dentro del editor, así que un programador que revisaba el archivo no veía nada raro. Los investigadores de Koi Security, que detectaron la campaña por primera vez, lo describieron como el primer gusano capaz de propagarse solo a través de extensiones de editores de código. Cada máquina infectada se volvió el punto de partida de la siguiente.

La mayoría de los ataques a la cadena de suministro son un golpe rápido: se detecta un paquete envenenado, se retira y se corrige en pocos días. GlassWorm estaba hecho para durar. Como robaba las credenciales que necesitaba para propagarse, pudo seguir reinstalándose mucho después de que cayera cualquier extensión, y así una sola operación llegó a cientos de proyectos y a decenas de miles de descargas a lo largo de más de un año.

Las vías de infección eran la plomería cotidiana del trabajo con software. Los operadores subían extensiones con trampa a Open VSX, el mercado que alimenta a VS Code y a sus parientes Cursor, Windsurf, Positron y VSCodium, disfrazándolas de herramientas inofensivas como cronómetros o formateadores de código. Metían código alterado en paquetes de npm y del índice de Python mediante scripts de instalación que se ejecutan solos y, con credenciales tomadas a víctimas anteriores, forzaron cambios maliciosos en las ramas principales de más de 300 repositorios de GitHub. Una vez dentro de una máquina, GlassWorm buscaba llaves: tokens de npm, accesos a GitHub, los tokens de publicación que permiten subir extensiones y billeteras de criptomonedas. Convertía las computadoras infectadas en servidores de paso para otro tráfico delictivo y, en algunos casos, instalaba un software de acceso remoto oculto que les daba a los operadores una vista en vivo de la pantalla.

Desmantelarlo obligaba a atacar la forma en que los operadores seguían en contacto con sus máquinas, y ahí GlassWorm estaba pensado para sobrevivir. En vez de depender de un único servidor de control que se pudiera desconectar, usaba cuatro canales a la vez. Uno escondía las instrucciones dentro de transacciones de la cadena de bloques Solana, un registro público diseñado para ser permanente e inalcanzable. Otro guardaba la configuración en la red de intercambio de archivos BitTorrent. Un tercero metía direcciones cifradas en los títulos de eventos de Google Calendar. El cuarto era un servidor alquilado común. El equipo Counter Adversary Operations de CrowdStrike, junto con Google y Shadowserver, cortó el conjunto entero en una sola operación coordinada.

Cortar los cables no es lo mismo que limpiar la herida. Cortar los canales impide que los operadores den órdenes nuevas y manden más cargas maliciosas, pero no saca a GlassWorm de las máquinas que ya controla, y cada contraseña que ya robó sigue robada. Tampoco es la primera vez que se interrumpe la campaña. Después de que Koi Security la destapó, GlassWorm regresó, una vez con dos docenas de extensiones maliciosas nuevas y, meses más tarde, con varias docenas más. El canal en cadena de bloques que los investigadores describían como imposible de desmantelar acaba de ser desmantelado, pero quienes están detrás demostraron una y otra vez que reconstruyen.

Los investigadores creen que los operadores están probablemente en Rusia. El programa revisa el idioma y la zona horaria de la computadora al arrancar y se cierra en silencio si cae en un sistema de Rusia o de un país vecino de la antigua órbita soviética, una huella habitual de los grupos delictivos que operan desde la región y evitan a las víctimas locales. CrowdStrike resumió el cambio sin vueltas: los atacantes ya no van solo contra los productos, van contra los programadores que los construyen. La Fundación Shadowserver empezó a avisar a las organizaciones afectadas para que desinfecten sus sistemas y renueven todas las credenciales que hayan podido filtrarse, y para todos los que están más abajo en la cadena el trabajo de verdad empieza ahora, mientras los equipos revisan qué extensiones y paquetes instalaron desde principios de 2025. La infraestructura está apagada. La limpieza recién empieza.

Discussion

There are 0 comments.