Segurança no npm: Proteja seus projetos de pacotes malicioso

Rocketseat

Rocketseat

5 min de leitura
https://prod-files-secure.s3.us-west-2.amazonaws.com/08f749ff-d06d-49a8-a488-9846e081b224/7a383f98-cbf2-4d6a-b118-c91dd5178e98/saida.webp?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466RXLUMJ76%2F20260411%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260411T004400Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHAaCXVzLXdlc3QtMiJIMEYCIQCcaf6lIigV0uzrrWPUWaTb6%2FXGTKYlEt69yw5f2upGtQIhANm%2FuILRNUi2bS8ge7X2L0BhHCsz7QE5yejCG75pGu0mKv8DCDkQABoMNjM3NDIzMTgzODA1Igx%2BwnduqzqmvzGssIsq3AMd29WqNgppYsLjwq4A0ZrC%2FgmovYBKzxIHl8zN5FoGnKuZxpYSUNQCO04xmThivEGvsU81OlEbZLC1xlygy38vrPLtbLlA9pNbs2F2L31pR%2BRxxQzcH14mSWDQilVkTmkrxRXX5u%2ByQb2mT%2FoBMC2pU%2BTBdaaArwwa3FncUsKeps7UKspwKdQnTmmbaZnvnGAG6%2Bj4eiP3Kll94c60%2BiE0fim0H4Mx6NZESeF3Sc%2FQ9FR7ujqCPtaip76lKVbQ0bP3mXnydLTFFw6xp9mmHJIgJUooLrcGfnKmNfeCuNw89zqq21vYR1tA%2FtEKKadk2kaDzXP5hQjofElUu7UYVsY28b7gjHyR98K%2B5mw2of3BrJEocLo7MbZQNZZXxCHWI95LXPCS0OCeYdm3VCYp4D35sJlquDjoxuOMjhCziBHzcyiUW7UCxIiwHnolozb4qrQIDXk8P2SxQYE8WZFz2hnVVLdQhwrIHU%2FXlviiGy02KCgeRB88ZqH71o4RDjcIvBmJ574%2F%2BA7l0IQlZPeacz%2FX%2FRGjp3VR%2FPzLCXkKe3ZBCo%2Bhb79MyHFFrBCnqJGkN%2F%2BqrgxShsGyOM8gFEpJSx5cH4L5D8oSlF0rpyvk4AcEnE5I%2F5R6uOAnt4xtBDDdlubOBjqkAf548omgAapFaqWgYwSzktHEXv34b7SUnb8jvb2u806CDPvinG4y0ogVOrXHqyeaEHH4E%2FFQYW%2F2hjsrBL1%2BTZlg9FoZtKOFdTunfh1r5cjI5UQ%2FKTm2Yq1txFdJdwBp%2B5kyVBxX4ho0Uj%2BPwzne5lwI7h0Xn0dpmsPSCovDqFVscgplDgDWtlyNT2N%2BcoNWRFkg7StXCANiawn4pHtBz4YglFA0&X-Amz-Signature=0f2101321551fe143c6925c222d9232da98bcb7b87c59fe7124eb94566baf794&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject
Fala, Dev! 💜
Já parou para pensar na quantidade de código de terceiros que você coloca para dentro da sua máquina com um simples npm install? O ecossistema JavaScript é incrível e produtivo, mas a gente precisa abrir o olho. Instalar pacotes sem critério é como deixar a porta da sua casa aberta: uma hora alguém mal-intencionado entra.
Vamos entender como blindar seus projetos e não virar estatística em ataques de supply chain.

O perigo da confiança cega

A facilidade do npm é uma faca de dois gumes. De um lado, velocidade total; do outro, ameaças como o typosquatting (pacotes com nomes quase iguais aos famosos) e injeções em scripts de instalação.
"Segurança não é um 'extra', é parte fundamental da engenharia. O ambiente onde o código roda é tão importante quanto a sintaxe do framework que você está usando."

1. Auditoria constante: O seu primeiro escudo

Não dá para gerenciar o que você não vê. O npm tem ferramentas nativas para identificar vulnerabilidades conhecidas (CVEs):
  • npm audit: Rode esse comando regularmente. Ele faz um "raio-X" das suas dependências.
  • npm audit fix: Tenta resolver os problemas automaticamente atualizando para versões seguras.
⚠️
Cuidado: Nem sempre o fix resolve tudo. Algumas vulnerabilidades exigem atualizações de versão major, o que pode quebrar seu código se você não testar antes.

2. Lockfile e a garantia da integridade

Os arquivos package-lock.json ou yarn.lock registram o hash criptográfico de cada pacote. Isso garante que o código que você baixou hoje é exatamente o mesmo que seu colega ou o servidor de build vai baixar amanhã.
💡 Dica de ouro: Nunca apague o seu lockfile para "resolver problemas de instalação". Isso destrói o histórico de integridade e abre brechas para a substituição silenciosa de pacotes.

3. O perigo nos scripts de instalação

Muitos pacotes maliciosos usam os hooks preinstall e postinstall para rodar códigos no seu terminal. Se estiver testando uma biblioteca nova ou pouco conhecida, use a flag de segurança:
npm install <nome-do-pacote> --ignore-scripts

4. Estudo de caso: O ataque ao Axios (Março/2026)

Para entender o tamanho do risco, basta olhar para o que aconteceu recentemente. Um dos pacotes mais usados do mundo, o Axios, foi alvo de um ataque onde versões maliciosas (v1.14.1 e v0.30.4) injetavam um cavalo de troia (RAT) nos sistemas dos desenvolvedores.
Este caso prova que nem os gigantes estão imunes. O ataque foi tão silencioso que o código-fonte parecia idêntico, mas o segredo estava em uma dependência maliciosa injetada no processo de publicação.

5. Automação no CI/CD

Segurança não pode depender da sua memória. Use ferramentas que monitoram seu repositório 24/7, como o Dependabot ou o Snyk. Eles abrem Pull Requests automáticos assim que uma correção de segurança é lançada.

Continue aprendendo

Para dominar o ecossistema e garantir que suas aplicações estejam prontas para o mercado, confira:
Segurança é um processo contínuo, dev. Mantenha suas ferramentas atualizadas e o olhar sempre atento.
Bora codar com consciência🚀💜
 

Conheça o Rocketseat Para Empresas

Oferecemos soluções personalizadas para empresas de todos os portes.

Rocketseat

Rocketseat

Ecossistema de educação contínua referência em programação e Inteligência Artificial.

Artigos_

Explore conteúdos relacionados

Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.

Imagem contendo uma carta e um símbolo de check
NewsletterReceba conteúdos inéditos e novidades gratuitamente
Mês do programador na Rocketseat

Válido por tempo limitado

Aprenda as tecnologias e habilidades mais valorizadas no mercado dev