Uma campanha coordenada tem como alvo desenvolvedores de software por meio de iscas relacionadas a vagas de emprego, utilizando repositórios maliciosos que se passam por projetos legítimos em Next.js e materiais para avaliações técnicas, como testes de programação.
O objetivo dos atacantes é executar código remotamente (RCE) nas máquinas dos desenvolvedores, exfiltrar dados sensíveis e instalar payloads adicionais nos sistemas comprometidos.
Next.js é um framework JavaScript popular para construção de aplicações web.
Ele funciona sobre React e utiliza Node.js no backend.
Segundo a equipe do Microsoft Defender, os criminosos criaram projetos falsos de aplicações web em Next.js, apresentando-os como códigos para compartilhamento em entrevistas de emprego ou avaliações técnicas.
Os pesquisadores identificaram inicialmente um repositório hospedado na plataforma Bitbucket, que oferece serviços de hospedagem e colaboração baseados em Git.
Posteriormente, descobriram múltiplos repositórios com estruturas de código, lógica de carregamento e padrões de nomenclatura semelhantes.
Quando o alvo clona o repositório e o abre localmente, seguindo um fluxo de trabalho padrão, um código JavaScript malicioso é executado automaticamente ao iniciar a aplicação.
Esse script baixa um código adicional malicioso — um backdoor JavaScript — diretamente do servidor do atacante e o executa em memória dentro do processo Node.js em execução, permitindo a execução remota de comandos na máquina infectada.
Para aumentar a taxa de infecção, os atacantes inseriram múltiplos gatilhos de execução nos repositórios maliciosos, conforme explica a Microsoft:
- **Gatilho do VS Code:** um arquivo `.vscode/tasks.json` configurado com `runOn: "folderOpen"` executa um script Node assim que a pasta do projeto é aberta (e confiável);
- **Gatilho do servidor de desenvolvimento:** ao executar o comando `npm run dev`, um recurso trojanizado (por exemplo, uma biblioteca JS modificada) decodifica uma URL oculta, baixa um loader de um servidor remoto e o executa em memória;
- **Gatilho de inicialização do backend:** ao iniciar o servidor, um módulo backend decodifica um endpoint codificado em base64 presente no arquivo `.env`, envia variáveis de ambiente para o atacante, recebe um script JavaScript em resposta e o executa usando `new Function()`.
O processo de infecção começa com a instalação de um payload JavaScript (Stage 1) que coleta informações sobre o host e se conecta a um servidor de comando e controle (C2), realizando polls periódicos.
Em seguida, a infecção evolui para um controlador de tarefas (Stage 2) que conecta a um servidor C2 distinto para verificar comandos, executar scripts JavaScript em memória e monitorar processos criados.
Esse payload também permite a enumeração de arquivos, navegação por diretórios e exfiltração de dados em etapas.
A Microsoft constatou que essa campanha envolve diversos repositórios com convenções de nomenclatura, estrutura de carregamento e infraestrutura de staging semelhantes, indicando um esforço coordenado e não um ataque isolado.
Além da análise técnica, os pesquisadores não divulgaram informações sobre os responsáveis pela campanha nem o alcance da operação.
A gigante da tecnologia recomenda que desenvolvedores considerem seus fluxos de trabalho padrão como superfícies de ataque de alto risco, adotando precauções adequadas.
As medidas sugeridas incluem ativar o Workspace Trust/Restricted Mode no VS Code, aplicar regras de Attack Surface Reduction (ASR) e monitorar acessos suspeitos com Entra ID Protection.
Também é indicada a redução do armazenamento de segredos em endpoints dos desenvolvedores, além do uso de tokens temporários com privilégios mínimos sempre que possível.
Publicidade
Nossa audiência é formada por analistas, pentesters, decisores e entusiastas que consomem nossas notícias todo dia pelo Site, Newsletter e Instagram. Fale com quem realmente importa para o seu negócio. Anuncie aqui. Saiba mais...