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=ASIAZI2LB466WVDWCBPD%2F20260411%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260411T004359Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHAaCXVzLXdlc3QtMiJIMEYCIQCc2C7M2bRm%2FT5Y%2FGMOf7Fh82Ejo5k3QopZ%2FVicZ1BplwIhALBYCSWUeASeWrLaFvvXhNMVguOeEBOWljc37OCCKW%2F7Kv8DCDkQABoMNjM3NDIzMTgzODA1Igzn24SHmFMryRALTZkq3AMKPn3pN3kBYAl%2B3OJJWsiQ19Lm%2B6xLk0ayYqUkrw91OYclMm7%2BBq%2FMeyEBAODeUnAyOmUZ6bS9P8PqhNdBwE2WCffHk0lhMhVvakApLrJApt8ep%2Bk8uHn6GXpTbthEshNCGmu2cyoAKzzVOQdOathDh8N9m2oKK8YBcNuoxOT6%2FDRZ%2FoqsKFL1Q%2B3mJ4YVfR41X%2F5%2FtSj%2FgmHdz92bO7fyN4%2B%2F20Ksbvol5Ud2xrAAQnceEO7FdyAK26wHpWok2qZf6LnXTzeTvEeoiFB3u7nn2p1kOTeIW%2Bwg377dK7SNK76%2F5eO%2BsfXLXHGSjgUMIA5BtnvQ%2BQCBL%2Bzzlun5gM4fi%2Fsk0N%2FuMg6lsHMcNRM%2FxAzIYpeNx3ywdbCSvReva1SejIH0RlhUI6b%2FBCULzdIxXYq8tzJLBHFh0O5N%2BU6%2FuI6d8%2Fn1bRPKqMgu%2BMMi%2FeryLEQyV0NUpVlO%2B32iUd8Rgft8wqvLdBC95MgTKSReQDYTMyrGoQJkQigouoyhl5X6v1mCrsb%2B3CisdRYTVYp0c7XdNu141FDXAu63ulWfVfji%2FC53d91oYAxL3kUVr83GpJQUAc0%2FbwI4JlgKB4%2BpLo1WZzt4nKDWVMk7%2BOdaeaGYbWsqbD%2Be74h0pzCMlubOBjqkAcQ91YKJKeKwIMuLU0w2iff79Dq74%2B4zk0ZyaQiZLusXpqcTSb0C%2FHC7YUb21W9D9sW%2FW9dJRnbhCFcpBxQBCjKRGyR%2FoJqOlPSUi8DhQ53qA8s1iaL5xwqWfDGuA7JOfnSRNqGZx3703bRnnmcgveyey69gzNd00A7IsCOOhACTB92Iy%2FjRTWfkGr9%2F1itElbcVS6BodAQeqnzrSUDwwLvZqhyb&X-Amz-Signature=2c853f290eeaa0ad6e9235f24fecf14bc7382af9f52fa2533dcb2b61818a3d17&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