Pular para o conteúdo principal

📄 Governaça de Bibliotecas e Componentes de Terceiros

🌟 Objetivo

Estabelecer regras claras e verificáveis para a utilização, aprovação, substituição e rastreabilidade de bibliotecas e componentes de terceiros em aplicações desenvolvidas internamente.

🚨 Muitos incidentes de supply chain têm origem em bibliotecas maliciosas, abandonadas ou não verificadas. Este controlo é fundamental.


🔢 Princípios de governaça

  1. Repositórios permitidos devem ser explicitamente definidos e controlados.
  2. Toda biblioteca deve ter:
    • Manutenção ativa
    • Licença compatível
    • Popularidade/comunidade mínima validada
  3. Bibliotecas com CVEs ativos não podem ser utilizadas sem exceção formalizada.
  4. O uso de bibliotecas "exóticas" ou de autor único deve ser justificado.

🚀 Processo de aprovação

EtapaAçãoArtefacto
Solicitação de nova libDev submete nome, versão, função, origemFormulário / issue
Análise de segurançaAppSec ou revisor verifica: CVEs, origem, históricoComentário com aprovação ou veto
Validação legal(opcional) Verifica compatibilidade de licençaLista de licenças aprovadas
Aprovação formalRegisto da decisão e prazo de validade (se aplicável)Repositório de aprovações

Este processo pode ser ligeiro (via Pull Request) ou formalizado (via ferramenta de registo).


🔎 Critérios de aceitação

CritérioRecomendado?Justificativa
Licença open source permissivaSimEx: MIT, Apache 2.0
Manteído ativamente (>1 ano)SimCommits recentes e versões atualizadas
Comunidade ativa (issues/PRs)SimEvita bibliotecas abandonadas
Utilização em outros projetosSimReforça confiança e estabilidade
Presença de testes ou CISimIndica maturidade do projeto
Código obfuscado ou minificadoNãoEvitar dependências opacas
Origem desconhecida ou suspeitaNãoExcluir fontes não verificadas

📝 Registo de decisões

Cada biblioteca deve poder ser rastreada até uma decisão de aprovação. Sugere-se registar:

  • Nome, versão, hash do pacote
  • Justificação de utilização
  • Resultado da análise SCA
  • Aprovação ou exceção
  • Responsável e data

Este registo pode estar num ficheiro .yaml, num repositório Git, Confluence, Jira, etc.


📎 Referências cruzadas

DocumentoRelação com a governaça
01-inventario-sbom.mdControlo do que está a ser utilizado
02-analise-sca.mdBase para aceitação ou bloqueio
09-excecoes-e-aceitacao-risco.mdJustificações formais para desvios

🔍 A governaça de dependências é um dos pilares da segurança moderna, especialmente em ambientes expostos ou com obrigações regulatórias (NIS2, CRA, ISO 27001).