Aikido

O GlassWorm torna-se nativo: o novo dropper Zig infeta todos os IDE na sua máquina

Escrito por
Ilyas Makari

Há mais de um ano que acompanhamos o GlassWorm. Este surgiu pela primeira vez em março de 2025, quando Aikido pacotes npm maliciosos que ocultavam cargas úteis dentro de caracteres Unicode invisíveis. Desde então, a campanha tem-se expandido repetidamente, comprometendo centenas de projetos no GitHub, npm e VS Code, e , mais recentemente, distribuindo um RAT persistente através de uma extensão falsa do Chrome que registava as teclas digitadas e extraía cookies de sessão. O grupo continua a evoluir e acaba de dar um salto significativo.

Observámos esta nova técnica numa extensão do OpenVSX chamada code-wakatime-activity-tracker. A extensão faz-se passar pelo WakaTime, a popular ferramenta de monitorização de tempo para programadores, e inclui um binário nativo compilado com o Zig juntamente com o seu código JavaScript. Esta não é a primeira vez que o GlassWorm recorre ao uso de código compilado nativo em extensões. No entanto, em vez de utilizar o binário diretamente como carga útil, este é usado como uma indireção furtiva para o conhecido dropper do GlassWorm, que agora infeta secretamente todos os outros IDEs que consegue encontrar no seu sistema.

O dropper: uma extensão infectada com um trojan

A extensão código-wakatime-monitorizador-de-atividade, publicado no OpenVSX, é, à primeira vista, quase idêntico à extensão legítima do WakaTime: os mesmos comandos registados, os mesmos pedidos de introdução da chave API, os mesmos ícones na barra de estado. A diferença reside num único aspeto: o activate() função.

const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();

Antes de qualquer lógica do WakaTime ser executada, a extensão carrega um ficheiro binário nativo a partir do ./bin/ diretório incluído com a extensão e chama imediatamente install(). No Windows, isto é win.node, uma DLL PE32+. No macOS, é mac.node, um Mach-O universal compatível tanto com x86_64 como com arm64. Trata-se de complementos nativos do Node.js: bibliotecas partilhadas compiladas que são carregadas diretamente no ambiente de execução do Node e executadas fora da sandbox do JavaScript, com acesso total ao nível do sistema operativo. Ambos foram escritos em Zig. O binário para macOS foi compilado com os símbolos de depuração intactos, revelando um caminho do projeto /Usuários/davidioasd/Downloads/vsx_installer_zig.

Infectar todos os IDE da máquina

Depois de carregado, a primeira tarefa do ficheiro binário é localizar todos os IDE instalados no computador que suportem o formato de extensão do VS Code. Em seguida, instala silenciosamente uma extensão maliciosa em cada um dos que encontrar.

Windows (a partir de win.node):

%LOCALAPPDATA%\Programas\Microsoft VS Code\bin\code.cmd
%LOCALAPPDATA%\Programas\Microsoft VS Code Insiders\bin\code-insiders.cmd
%LOCALAPPDATA%\Programas\cursor\resources\app\bin\cursor.cmd
%LOCALAPPDATA%\Programas\windsurf\resources\app\bin\windsurf.cmd
%LOCALAPPDATA%\Programas\VSCodium\resources\app\bin\codium.cmd
%LOCALAPPDATA%\Programas\Positron\resources\app\bin\positron.cmd
%ProgramFiles%\Microsoft VS Code\bin\code.cmd
%ProgramFiles%\Positron\resources\app\bin\positron.cmd

macOS (a partir de mac.node):

/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code
/Applications/Visual Studio Code - Insiders.app/.../code-insiders
/Applications/Cursor.app/Contents/Resources/app/bin/cursor
/Aplicativos/Windsurf.app/Conteúdo/Recursos/app/bin/windsurf
/Aplicativos/VSCodium.app/Conteúdo/Recursos/app/bin/codium
/Aplicativos/Positron.app/Conteúdo/Recursos/app/bin/positron

Este ataque não se limita ao VS Code: abrange todo o ecossistema de editores que partilham o mesmo sistema de extensões: VS Code, VS Code Insiders, Cursor, Windsurf, VSCodium e Positron. Um programador que utilize o Cursor como editor principal, mas que também tenha o VS Code instalado, veria ambos os editores comprometidos.


Depois de criada a lista IDE, o binário descarrega um ficheiro malicioso .vsix a partir de uma página de lançamentos do GitHub controlada pelo atacante:

https://github.com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsix

O pacote faz-se passar por steoates.autoimport, uma extensão legítima e popular do VS Code com milhões de instalações. O ficheiro descarregado .vsix é gravado num caminho temporário e, em seguida, instalado silenciosamente em todos os IDE encontrados no passo anterior, utilizando o próprio instalador de linha de comandos de cada editor. No Windows, isto é executado através de cmd.exe:

cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"

Após a instalação, cleanupVsix apaga o ficheiro descarregado para eliminar as provas.

A extensão da segunda fase

O ficheiro .vsix instalado à força é o mesmo dropper GlassWorm que temos vindo a acompanhar e a analisar em profundidade. Este programa delimita geograficamente os sistemas russos, envia sinais para um servidor de comando e controlo (C2) baseado na blockchain Solana e, na nossa análise anterior, descobrimos que realiza a exfiltração secreta de dados e instala um RAT persistente, incluindo uma extensão maliciosa do Chrome.

Como Aikido isto

Se instalou specstudio/código-wakatime-rastreador-de-atividades ou consulte floktokbok.autoimport Se estiver presente em qualquer uma das suas listas de extensões do IDE, considere o seu computador como comprometido e altere quaisquer secrets possam ter sido acedidas.

Se é Aikido , verifique o seu feed central e filtre por problemas de malware. Isto aparecerá como um problema crítico 100/100. Aikido todas as noites, mas recomendamos que inicie uma nova verificação manual agora.

Se ainda não é Aikido , pode criar uma conta e ligar os seus repositórios. A nossa proteção contra malware está incluída no plano gratuito, sem necessidade de cartão de crédito.

Para uma cobertura mais abrangente em toda a sua equipa, o Endpoint Protection Aikido oferece-lhe visibilidade e controlo sobre os pacotes de software instalados nos dispositivos da sua equipa. Abrange extensões de navegador, bibliotecas de código, plug-ins de IDE e dependências de compilação, tudo num único local. Impedir o malware antes que seja instalado.

Para proteção futura, considere Aikido Chain (código aberto). O Safe Chain integra-se no seu fluxo de trabalho atual, interceptando comandos npm, npx, yarn, pnpm e pnpx e verificando os pacotes com base Aikido antes da instalação.

IOCs

Extensões‍

  • specstudio/código-wakatime-rastreador-de-atividades (extensão OpenVSX infectada com um trojan)
  • autoimport-2.7.9 (implantação de segunda fase em IDE)

Ficheiros

  • win.node dentro do diretório ./bin/ de qualquer extensão do VS Code
    • SHA-256: 2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
  • mac.node dentro do diretório ./bin/ de qualquer extensão do VS Code
    • SHA-256: 112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44

Rede

  • https://github[.]com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsix

Cordas

  • vsx_installer_zig (Nome do projeto Zig encontrado no ficheiro binário do macOS)
  • davidioasd (Nome de utilizador encontrado no ficheiro binário do macOS)
Compartilhar:

https://www.aikido.dev/blog/glassworm-zig-dropper-infects-every-ide-on-your-machine

Assine para receber notícias sobre ameaças.

Comece hoje, gratuitamente.

Comece Gratuitamente
Não é necessário cc
4.7/5
Cansado de falsos positivos?

Experimente Aikido como 100 mil outros.
Começar Agora
Obtenha um tour personalizado

Confiado por mais de 100 mil equipes

Agende Agora
Escaneie seu aplicativo em busca de IDORs e caminhos de ataque reais

Confiado por mais de 100 mil equipes

Iniciar Escaneamento
Veja como o pentest de IA testa seu aplicativo

Confiado por mais de 100 mil equipes

Iniciar Testes
Escaneie seus repositórios em busca de ataques GlassWorm

Confiado por 100 mil equipes

Comece gratuitamente

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.