Tecnologia

GlassWorm viveu um ano em extensões do VS Code antes de ser desmantelado

Susan Hill

Durante mais de um ano, alguns dos programadores que constroem as aplicações do seu telemóvel trabalhavam, sem o saber, para outra pessoa. Um programa malicioso chamado GlassWorm vivia dentro de extensões do Visual Studio Code, o editor de código mais usado do mundo, e dentro dos pacotes de código aberto que esses programadores integram nos seus projetos todos os dias. Recolhia as suas palavras-passe, sequestrava as suas contas e usava-as para se instalar em ainda mais software. A CrowdStrike, a Google e a Shadowserver Foundation acabaram de lhe cortar os fios.

Isto importa até a quem nunca abriu um editor de código, porque a cadeia de abastecimento do software é exatamente isso, uma cadeia. A aplicação de mensagens do telemóvel, a do banco, o jogo da consola assentam todos em milhares de pequenas peças de código aberto escritas e mantidas por outras pessoas. Envenene-se uma dessas peças e o veneno pode descer a jusante até produtos acabados usados por milhões. O GlassWorm foi concebido para apanhar essa corrente sem ser visto.

O que o distinguia era a forma de se esconder. Os seus operadores escreviam as instruções maliciosas com caracteres Unicode invisíveis, código que surge como espaço em branco dentro do editor, de modo que um programador a rever o ficheiro não via nada de estranho. Os investigadores da Koi Security, que identificaram a campanha em primeiro lugar, descreveram-no como o primeiro worm capaz de se propagar sozinho através de extensões de editores de código. Cada máquina infetada tornava-se o ponto de partida da seguinte.

A maioria dos ataques à cadeia de abastecimento é um golpe rápido: um pacote envenenado é encontrado, retirado e corrigido em poucos dias. O GlassWorm foi feito para durar. Como roubava as credenciais de que precisava para se propagar, podia voltar a instalar-se muito depois de qualquer extensão cair, e foi assim que uma só operação alcançou centenas de projetos e dezenas de milhares de descargas ao longo de mais de um ano.

As vias de infeção eram a canalização corrente do trabalho com software. Os operadores carregavam extensões armadilhadas no Open VSX, o mercado que alimenta o VS Code e os seus primos Cursor, Windsurf, Positron e VSCodium, disfarçadas de ferramentas inofensivas como cronómetros ou formatadores de código. Inseriam código adulterado em pacotes do npm e do índice do Python através de scripts de instalação que arrancam sozinhos e, com credenciais tiradas a vítimas anteriores, forçavam alterações maliciosas nos ramos principais de mais de 300 repositórios no GitHub. Uma vez dentro de uma máquina, o GlassWorm procurava chaves: tokens do npm, acessos ao GitHub, os tokens de publicação que permitem carregar extensões e carteiras de criptomoedas. Transformava os computadores infetados em servidores de passagem para outro tráfego criminoso e, em alguns casos, instalava um software de acesso remoto oculto que dava aos operadores uma vista em direto do ecrã.

Desmantelá-lo obrigava a atacar a forma como os operadores se mantinham em contacto com as suas máquinas, e aí o GlassWorm tinha sido concebido para sobreviver. Em vez de depender de um único servidor de comando que se pudesse desligar, usava quatro canais ao mesmo tempo. Um codificava as instruções dentro de transações da blockchain Solana, um registo público pensado para ser permanente e fora de alcance. Outro escondia a configuração na rede de partilha de ficheiros BitTorrent. Um terceiro inseria endereços codificados nos títulos de eventos do Google Calendar. O quarto era um simples servidor alugado. A equipa Counter Adversary Operations da CrowdStrike, com a Google e a Shadowserver, cortou o conjunto inteiro numa única operação coordenada.

Cortar os fios não é o mesmo que limpar a ferida. Cortar os canais impede os operadores de enviar novas ordens e novas cargas, mas não retira o GlassWorm das máquinas que já controla, e cada palavra-passe já roubada continua roubada. Também não é a primeira interrupção da campanha. Depois de a Koi Security a ter exposto, o GlassWorm regressou, uma vez com duas dúzias de novas extensões maliciosas e, meses depois, com dezenas mais. O canal em blockchain que os investigadores descreviam como impossível de desmantelar acaba de ser desmantelado, mas quem está por trás mostrou repetidamente que reconstrói.

Os investigadores acreditam que os operadores estarão provavelmente na Rússia. O programa verifica o idioma e o fuso horário do computador ao arrancar e encerra-se em silêncio se cair num sistema na Rússia ou num país vizinho da antiga órbita soviética, uma assinatura conhecida dos grupos criminosos que operam a partir da região e evitam as vítimas locais. A CrowdStrike resumiu a viragem sem rodeios: os atacantes já não visam apenas os produtos, visam os programadores que os constroem. A Shadowserver Foundation começou a avisar as organizações afetadas para que limpem os seus sistemas e renovem todas as credenciais que possam ter sido divulgadas, e para todos os que estão mais abaixo na cadeia o trabalho a sério começa agora, à medida que as equipas verificam que extensões e pacotes instalaram desde o início de 2025. A infraestrutura está apagada. A limpeza mal começou.

Discussão

Existem 0 comentários.