Skip to content

Dependências e Supply Chain

A segurança da nossa aplicação não depende apenas do código que escrevemos, mas de todo o ecossistema de bibliotecas que utilizamos.


1. Supply Chain Attacks

Ocorre quando um atacante compromete uma biblioteca popular e injeta código malicioso nela. Ao atualizar suas dependências, você acaba trazendo o código malicioso para dentro do seu projeto.

✅ Como fazer

  • Use o arquivo de trava (package-lock.json ou pnpm-lock.yaml) para garantir que todos no time e no CI usem exatamente as mesmas versões.
  • Revise dependências novas antes de adicioná-las.

2. Auditoria de Dependências

Ferramentas que verificam se as bibliotecas instaladas possuem vulnerabilidades conhecidas (CVEs).

  • npm audit / pnpm audit: Comando básico para verificar vulnerabilidades no projeto.
  • Dependabot: Ferramenta do GitHub que abre Pull Requests automaticamente para atualizar dependências vulneráveis.
  • Snyk: Plataforma avançada para análise de vulnerabilidades em dependências e código.

✅ Como fazer

  • Execute npm audit periodicamente.
  • Não ignore alertas do Dependabot; trate-os com prioridade se forem de nível "High" ou "Critical".

3. Versionamento Seguro

  • Use o prefixo ~ (fixa a versão minor) ou evite prefixos para fixar a versão exata se a biblioteca for crítica.
  • Evite o uso de * ou intervalos muito largos que podem trazer versões breaking changes ou maliciosas sem aviso.

4. Licenças de Software

Algumas licenças (como a GPL) podem exigir que você abra o código da sua aplicação. Auditorias de licença garantem que não estamos usando bibliotecas que conflitam com o modelo de negócio da empresa.