No dia 20 de julho, hackers comprometeram a conta da organização Toptal no GitHub, uma das plataformas mais utilizadas por empresas e desenvolvedores do mundo. O ataque, que resultou na publicação de pacotes NPM maliciosos, expôs não apenas repositórios privados da empresa, mas também lançou um alerta vermelho para toda a comunidade sobre os perigos reais de ataques à cadeia de suprimentos.
Ao todo, foram identificados dez pacotes maliciosos publicados na plataforma NPM, disfarçados como atualizações legítimas. O malware não apenas roubava credenciais de acesso, como também tentava apagar completamente o sistema da vítima. Este incidente coloca em evidência a urgência de revisar as práticas de segurança adotadas por desenvolvedores e equipes DevOps ao lidar com dependências externas.
Neste artigo, vamos entender em detalhes como o ataque foi executado, o que faz dos pacotes NPM maliciosos um vetor tão perigoso, e fornecer um guia prático para que você proteja seus projetos contra esse tipo de ameaça.

Entendendo o ataque à Toptal: O que aconteceu?
A invasão e a exposição de repositórios privados
O ataque teve início no dia 20 de julho de 2025, quando a conta da organização Toptal no GitHub foi comprometida. Como consequência, os invasores tiveram acesso a 73 repositórios que antes eram privados, muitos dos quais continham ferramentas internas, protótipos e integrações críticas utilizadas pela empresa.
A extensão completa do vazamento ainda está sendo investigada, mas já se sabe que esse acesso indevido permitiu que os atacantes manipulassem diretamente o código-fonte de projetos legítimos mantidos pela organização.
A publicação dos pacotes maliciosos no NPM
Com acesso ao repositório original da Toptal, os hackers modificaram ferramentas legítimas — incluindo o sistema de design interno Picasso — e publicaram dez pacotes modificados no NPM. Os nomes e descrições dos pacotes imitavam atualizações autênticas, confundindo desenvolvedores desavisados.
Esses pacotes NPM maliciosos foram rapidamente distribuídos e atingiram cerca de 5.000 downloads antes de serem detectados e removidos. O potencial de dano foi elevado, considerando que, uma vez instalados, os pacotes executavam automaticamente scripts maliciosos.
A anatomia do malware: Como os pacotes funcionavam?
Fase 1: Roubo de credenciais com o script ‘preinstall’
A primeira etapa do ataque se baseava na execução de um script malicioso do tipo preinstall
, contido no arquivo package.json
dos pacotes infectados. Esse script era acionado antes mesmo da instalação do pacote.
A função principal do script era extrair o token de autenticação da CLI do GitHub presente na máquina da vítima. Esses tokens, muitas vezes com permissões amplas, eram então enviados para um webhook controlado pelos invasores, permitindo o acesso posterior a outros repositórios e serviços.
Essa abordagem silenciosa e automatizada transformou qualquer desenvolvedor que instalasse o pacote infectado em um elo vulnerável da cadeia de segurança de seus projetos.
Fase 2: Destruição do sistema com o script ‘postinstall’
A segunda etapa, ainda mais agressiva, era executada por meio de um script postinstall
. Uma vez instalado o pacote e realizado o envio do token, o script ativava um comando extremamente destrutivo:
sudo rm -rf --no-preserve-root /
Esse comando, quando executado em sistemas Linux, apaga irreversivelmente todos os arquivos do sistema, inclusive os arquivos do próprio usuário. Em máquinas Windows, comandos semelhantes foram utilizados para causar o mesmo tipo de destruição.
A combinação entre roubo de credenciais e tentativa de destruição do sistema mostra o caráter duplamente malicioso do ataque — ao mesmo tempo furtivo e destrutivo.
O impacto e como se proteger de ataques no NPM
Você foi afetado? Passos imediatos para verificação
Se você trabalha com Node.js ou mantém projetos que utilizam pacotes da Toptal, é fundamental realizar imediatamente as seguintes verificações:
- Revise os arquivos
package.json
epackage-lock.json
de todos os seus projetos à procura dos pacotes maliciosos publicados. - Se um pacote suspeito tiver sido instalado, revogue imediatamente seus tokens de acesso do GitHub e quaisquer chaves de API que possam ter sido expostas.
- Reverta para versões seguras e verificadas dos pacotes legítimos.
- Verifique registros de sistema para identificar possíveis execuções dos scripts maliciosos.
Quanto mais cedo a ação for tomada, menores as chances de prejuízo e de propagação do ataque para outras dependências.
Fortalecendo suas defesas: Boas práticas de segurança
Evitar que ataques como esse comprometam seus sistemas exige disciplina e ferramentas adequadas. Veja algumas boas práticas de segurança essenciais:
- Fixe versões de pacotes (Version Pinning): Sempre utilize versões exatas em vez de intervalos (por exemplo,
"1.2.3"
ao invés de^1.2.3
) para evitar atualizações inesperadas e possivelmente maliciosas. - Audite suas dependências regularmente: Use comandos como
npm audit
ou ferramentas comoSnyk
,Dependabot
ouSocket
para identificar vulnerabilidades conhecidas. - Cuidado com scripts de instalação automática: Scripts como
preinstall
,postinstall
e similares podem conter comandos perigosos. Evite dependências que você não conhece ou que não têm histórico confiável. - Use ferramentas de segurança específicas para NPM: A plataforma Socket, que desempenhou papel essencial na detecção deste ataque, pode ser integrada aos seus repositórios para análise contínua de comportamento suspeito em pacotes.
Conclusão: Uma lição sobre confiança e vigilância
O incidente envolvendo a Toptal e os pacotes NPM maliciosos é mais um exemplo concreto de que a segurança na cadeia de suprimentos de software é um desafio coletivo. Depender de bibliotecas de terceiros é inevitável no desenvolvimento moderno, mas confiar cegamente nelas pode sair caro.
Este episódio nos lembra que auditorias regulares, vigilância ativa e o uso de ferramentas de proteção são indispensáveis em qualquer pipeline de desenvolvimento.
Não espere ser a próxima vítima: reveja suas dependências, fortaleça suas práticas de segurança e compartilhe este conteúdo com sua equipe e rede de contatos. Uma comunidade informada é a melhor defesa contra ameaças silenciosas, mas devastadoras.