Pular para o conteúdo principal

♻️ Políticas de Atualização de Dependências

🌟 Objetivo

Estabelecer práticas sistemáticas para a atualização proativa de bibliotecas e dependências de terceiros, evitando acumulação de dívida técnica e exposição prolongada a riscos conhecidos.

⚠️ Muitas explorações de vulnerabilidades ocorrem em bibliotecas que já têm patch disponível, mas não foram atualizadas. A política de atualização é uma defesa essencial.


⏲ Princípios de atualização segura

  1. Toda dependência deve ter um TTL (Time To Live) definido: prazo máximo até ser revista.
  2. Devem ser usados mecanismos de locking explícito de versões, para evitar atualizações não auditadas.
  3. As atualizações devem ser automatizadas onde possível, mas sempre validadas antes do deploy.
  4. A atualização periódica deve ser tratada como parte do ciclo de desenvolvimento, não como exceção.

🛠️ Mecanismos de controlo por linguagem

StackLockfile / MecanismoFerramentas de atualização
Node.jspackage-lock.json, npm cinpm-check-updates, RenovateBot
Pythonrequirements.txt, pip-toolspip-review, Dependabot
Java (Maven)pom.xml, versão fixaVersions Maven Plugin
.NETpackages.lock.json, *.csprojdotnet outdated, NuKeeper
Gogo.sum, go.modgo get -u, Dependabot

🔐 O uso de lockfiles é essencial para reproduzibilidade e rastreabilidade.


🔧 Frequência recomendada de revisão

Tipo de projetoFrequência mínima de revisão de dependências
Produção crítica (L3)Semanal (automática + validação manual)
Backend / API (L2)Quinzenal
Interno / Ferramentas (L1)Mensal

Findings SCA devem ser tratados fora deste ciclo, em regime reativo (ex: CVE com alerta).


📅 Estratégias de atualização

  • Proativa automatizada: bots que abrem PRs de atualização com testes
  • Agrupada por sprint: tarefa periódica de "atualização de libs"
  • Controlo semântico: limites de ^, ~ e ranges definidos
  • Pinning de versões críticas: ex. express@4.18.2 vs express@latest

📄 Checklist de aplicação de updates

ItemVerificado?
Existe lockfile e é versionado?
Atualizações periódicas são feitas de forma rastreável?
Todas as atualizações passam por CI/CD com testes?
As versões são auditadas por SCA após update?
Atualizações críticas são tratadas em menos de 48h?

🔗 Ligações com outros ficheiros

DocumentoLigação com atualizações
02-analise-sca.mdDetecta vulnerabilidades que podem requerer atualização
04-integracao-ci-cd.mdAutomatiza updates e aplica validadores no pipeline
03-governanca-libs-terceiros.mdDefine quais dependências podem ou não ser atualizadas

✅ A atualização de dependências é um processo técnico e de gestão de risco. Não deve ser adiado indefinidamente, nem feito sem validação e rastreabilidade adequada.