Extensões Maliciosas do Visual Studio Code: Como Trojans Estão se Ocultando em Imagens PNG Falsas

Nos últimos meses, desenvolvedores do mundo todo enfrentam um novo risco digital: extensões maliciosas no Marketplace do Visual Studio Code (VS Code), que escondem trojans sofisticados em arquivos aparentemente inofensivos, como imagens PNG. Uma pesquisa da empresa de cibersegurança ReversingLabs revelou que, desde fevereiro de 2025, 19 extensões foram comprometidas, afetando profissionais de programação que dependem do VS Code para suas atividades diárias.

O VS Code é uma das ferramentas mais populares entre desenvolvedores, com milhões de usuários ativos, o que a torna um alvo estratégico para cibercriminosos. Essa popularidade permite que hackers explorem a confiança dos usuários no Marketplace, entregando códigos maliciosos disfarçados de extensões legítimas.


Como o ataque funciona

Segundo a pesquisa, os trojans são ocultados na pasta de dependências da extensão. Essa pasta contém códigos pré-empacotados essenciais para o funcionamento do add-on. Ao invés de criar novos códigos maliciosos, os atacantes interferem em dependências confiáveis, como o pacote path-is-absolute, que acumula 9 bilhões de downloads desde 2021.

Quando o usuário instala a extensão maliciosa, o dropper JavaScript é acionado automaticamente assim que o VS Code é aberto. Este dropper está escondido em um arquivo interno chamado lock e decodifica os binários maliciosos, que se apresentam como arquivos inofensivos, como imagens banner.jpg.

Ao abrir o arquivo banner.jpg, a vítima recebe uma mensagem de erro típica de visualizador de imagens. Mas, na realidade, o arquivo contém dois binários maliciosos. O dropper utiliza a ferramenta nativa do Windows cmstp.exe para lançar os arquivos, facilitando a execução do malware sem levantar suspeitas.


Variantes de ataque

Além do método com o arquivo PNG, algumas extensões maliciosas utilizam a dependência @actions/io, que distribui os binários entre arquivos .ts e .map, sem envolver imagens. Essa estratégia complica a detecção, já que os arquivos não apresentam sinais visuais de ameaça.

Tabela: Principais Dependências Exploitedas e Seus Modos de Ataque

DependênciaTipo de ataqueArquivo maliciosoObservações
path-is-absoluteDropper JS decodifica bináriosbanner.jpgTrojans disfarçados de imagens PNG
@actions/ioBinários separados.ts e .mapNão utiliza arquivos de mídia

Sinais de alerta para desenvolvedores

Para reduzir o risco, especialistas recomendam que usuários do VS Code inspecionem extensões suspeitas, especialmente aquelas com poucos downloads ou análises. Alguns sinais incluem:

  1. Extensões com dependências alteradas ou suspeitas;
  2. Arquivos de imagem que geram mensagens de erro ao abrir;
  3. Execução automática de scripts no VS Code sem aviso;
  4. Pacotes que não possuem histórico de atualizações confiáveis.

Consequências potenciais

Trojans ocultos podem ter funcionalidades complexas, incluindo:

  • Roubo de credenciais e dados sensíveis;
  • Execução de comandos remotos;
  • Instalação de softwares adicionais sem consentimento;
  • Acesso persistente ao sistema da vítima.

Mapa Mental: Fluxo de Infecção

[Instalação da extensão]
         |
[Pasta de dependências manipulada]
         |
[Execução do dropper JavaScript]
         |
[Decodificação dos binários maliciosos]
         |
[Execução via cmstp.exe ou arquivos .ts/.map]
         |
[Infecção do sistema]

O mapa mental mostra a complexidade da cadeia de ataque, desde a instalação até a execução do malware, evidenciando que apenas usuários desatentos ou despreparados podem ser vítimas.


Casos recentes

Uma das extensões falsas detectadas recentemente foi uma versão falsa do Prettier, que entregava o malware Anivia Stealer. A extensão aparentava ser legítima, mas ao ser instalada, executava automaticamente o dropper e comprometia o sistema do desenvolvedor.

Esse tipo de ataque demonstra que mesmo extensões populares ou pacotes com muitas instalações podem ser comprometidos, ressaltando a importância da verificação contínua e do uso de ferramentas de segurança.


Medidas preventivas

Para minimizar riscos, especialistas recomendam:

  1. Verificar a reputação da extensão antes de instalar;
  2. Atualizar regularmente todas as dependências do projeto;
  3. Monitorar logs de execução do VS Code e alertas do sistema;
  4. Usar ferramentas antivírus e antimalware especializadas em desenvolvimento;
  5. Evitar extensões recém-lançadas sem histórico confiável.

Tabela: Checklist de Segurança para Usuários do VS Code

Ação preventivaBenefício
Verificar número de downloadsIdentifica extensões confiáveis
Conferir comentários e avaliaçõesDetecta relatos de comportamento suspeito
Atualizar dependênciasCorrige vulnerabilidades conhecidas
Monitorar execução de scriptsEvita execuções automáticas maliciosas
Usar antivírusDetecta e bloqueia malware

O Papel da ReversingLabs

A ReversingLabs alertou a comunidade de desenvolvedores sobre a ameaça, detalhando a técnica de dropper via dependências confiáveis e recomendando a remoção imediata de extensões suspeitas. Segundo Petar Kirhmajer, pesquisador da empresa:

“O ataque é engenhoso porque aproveita a confiança do usuário nas dependências populares, tornando a detecção mais difícil. A vigilância constante é essencial.”


Considerações finais

O incidente reforça que o ambiente de desenvolvimento moderno não está imune a ciberataques. Extensões maliciosas podem causar prejuízos significativos tanto para desenvolvedores individuais quanto para empresas que dependem de códigos confiáveis.

Ao seguir práticas de segurança, como inspeção de dependências, monitoramento de scripts e uso de antivírus, é possível mitigar os riscos. Além disso, a conscientização sobre técnicas avançadas de ataque, como trojans ocultos em imagens PNG, é crucial para proteger a comunidade de desenvolvedores.

Mais desta Categoria

Satélite da Starlink “Tira Fino” no Espaço e SpaceX Culpa Chineses: Entenda o Incidente de Quase-Colisão

União Europeia deve recuar na proibição de motores de combustão interna em 2035

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *