A equipa responsável pela Nx, uma das maiores ferramentas de gestão de bases de código open source, confirmou ter sido alvo de um ataque à cadeia de fornecimento que resultou no roubo de mais de 2 300 credenciais de utilizadores. O incidente foi detetado pela Wiz Research, empresa especializada em cibersegurança, e envolve a distribuição de versões contaminadas da plataforma e dos seus plug-ins através do npm registry.
Como o ataque foi executado
O invasor aproveitou, em 21 de agosto, uma vulnerabilidade no fluxo pull_request_target do GitHub. Ao injetar código malicioso num campo de texto de um pull request, obteve privilégios administrativos temporários, incluindo acesso ao GITHUB_TOKEN da organização responsável pelo Nx. Com esse token, foi possível extrair o npm token do projecto e publicar pacotes adulterados que pareciam legítimos.
Os pacotes comprometedores foram descarregados por programadores que, sem suspeitarem, instalaram um malware capaz de:
- Examinar o sistema operativo em busca de chaves de acesso, palavras-passe e ficheiros de configuração;
- Copiar essas informações para repositórios GitHub criados automaticamente na própria conta da vítima;
- Adicionar um ficheiro modificado (
.zshrc
) que desligava o computador, forçando o utilizador a introduzir novamente a senha e expondo mais um dado sensível.
De acordo com a Wiz Research, o código malicioso actua apenas em Linux e macOS, deixando os utilizadores de Windows fora do vetor directo de infeção, embora se recomende precaução a todos os utilizadores.
Impacto e dimensão da intrusão
Além das mais de 2 300 credenciais confirmadas, os atacantes criaram 1 346 repositórios no GitHub para armazenar os dados furtados. A análise indica que cerca de 90 % dos tokens roubados permanecem activos, o que permite a continuação de acessos não autorizados mesmo após a divulgação do ataque.
A Nx é amplamente utilizada para acelerar ciclos de desenvolvimento em projectos de grande escala, registando milhares de descargas semanais. O seu carácter open source e a confiança da comunidade tornam-na um alvo atractivo para ataques que procuram distribuir código malicioso de forma massiva.
Pacotes e versões afectadas
Foram identificadas como comprometidas as seguintes versões:
- @nrwl/nx (nx) – 20.9.0, 20.10.0, 20.11.0, 20.12.0, 21.5.0, 21.6.0, 21.7.0, 21.8.0
- @nx/devkit – 21.5.0, 20.9.0
- @nx/enterprise-cloud – 3.2.0
- @nx/eslint – 21.5.0
- @nx/js – 21.5.0, 20.9.0
- @nx/key – 3.2.0
- @nx/node – 21.5.0, 20.9.0
- @nx/workspace – 21.5.0, 20.9.0
Recomendações para utilizadores do Nx
A equipa do projecto solicita a todos os programadores que tenham descarregado ou actualizado a plataforma nas datas e versões listadas que:
- Alterem de imediato palavras-passe, chaves SSH e tokens de qualquer serviço relacionado;
- Implementem autenticação de dois factores em todas as contas de desenvolvimento;
- Verifiquem os ficheiros
.zshrc
e.bashrc
em busca de comandos suspeitos, removendo qualquer linha adicionada sem autorização; - Actualizem para versões seguras assim que forem disponibilizadas e validem a integridade dos pacotes através de hashes conhecidos;
- Revoguem tokens antigos no GitHub e no npm registry, substituindo-os por credenciais novas.
Perspetiva de mitigação
Após a deteção do ataque, a equipa do Nx removeu os pacotes maliciosos do npm registry e está a colaborar com o GitHub para eliminar os repositórios utilizados no armazenamento de dados roubados. Auditorias de segurança adicionais estão em curso para reforçar os procedimentos de publicação de software e impedir futuras explorações da mesma falha.
Especialistas sublinham que ataques à cadeia de fornecimento se tornaram uma das tácticas preferidas de grupos maliciosos, justamente porque exploram a confiança depositada em projectos populares. O incidente reforça a necessidade de processos de revisão de código mais rigorosos, assinaturas digitais de pacotes e monitorização contínua de integridade.
Os utilizadores que identifiquem qualquer actividade anómala associada às suas contas deverão relatá-la de imediato à plataforma Nx e aos respectivos fornecedores de serviços, assegurando a revogação de acessos potencialmente comprometidos.