Pular para o conteúdo principal

🧨 Deteção e Tratamento de Vulnerabilidades em Imagens

🌟 Objetivo

Assegurar que todas as imagens de container utilizadas em pipelines, ambientes de teste ou produção são analisadas quanto a vulnerabilidades conhecidas (CVEs), produzindo sinais técnicos objetivos que suportam decisões informadas sobre mitigação, aceitação ou bloqueio.

Este ficheiro define como detetar e classificar vulnerabilidades, não como decidir automaticamente a aceitabilidade do risco.


🧬 O que são vulnerabilidades em imagens

Cada imagem de container inclui bibliotecas, runtimes e binários potencialmente vulneráveis, introduzidos por diferentes vias:

  • Herdados da imagem base;
  • Introduzidos por dependências aplicacionais;
  • Transitivos (dependências de dependências);
  • Resultantes do próprio processo de build.

Uma vulnerabilidade identificada por um scanner indica:

  • presença de um componente afetado,
  • associação a uma CVE conhecida,
  • potencial impacto técnico.

⚠️ A presença de uma CVE não implica automaticamente risco explorável no contexto real da aplicação.


⚠️ Deteção não é avaliação de risco

É fundamental evitar a seguinte equivalência incorreta:

  • ✔️ CVE detetada → sinal técnico válido
  • ❌ CVE detetada ≠ risco automaticamente inaceitável
  • ❌ CVSS elevado ≠ impacto real garantido

A avaliação de risco exige contexto adicional:

  • código efetivamente exposto;
  • vetores de ataque disponíveis;
  • permissões e hardening do runtime;
  • criticidade da aplicação e dados tratados.

Este ficheiro trata da deteção e classificação técnica, não da decisão final.


📘 Ferramentas de análise (SCA para containers)

FerramentaFunção técnicaPapel no SbD-ToE
TrivyDeteção rápida de CVEsSinal inicial
GrypeCorrelação SBOM ↔ vulnerabilidadesPrecisão e rastreabilidade
Snyk ContainerContextualização adicional (SaaS)Apoio à triagem
Docker ScoutVisualização de camadas e dependênciasAnálise exploratória

Estas ferramentas detetam presença, não explorabilidade nem impacto real.


🛠️ Como aplicar a deteção corretamente

  1. Gerar SBOM da imagem final (ver 06-sbom-containers.md);
  2. Executar scanner SCA sobre a imagem real;
  3. Produzir relatório técnico, incluindo:
    • CVE;
    • pacote afetado;
    • versão;
    • CVSS;
    • fix disponível ou não;
  4. Classificar tecnicamente as vulnerabilidades:
    • com correção disponível;
    • sem correção disponível;
    • herdadas da base image;
  5. Preservar os resultados como evidência versionada;
  6. Encaminhar os resultados para análise humana, quando aplicável.

A automatização não elimina a necessidade de interpretação.


📂 Armazenamento e rastreabilidade dos resultados

Para garantir auditabilidade:

  • Armazenar relatórios por imagem e digest;
  • Versionar resultados por build;
  • Associar scanner, base de dados e timestamp;
  • Correlacionar com SBOM e assinatura da imagem.

Resultados não rastreáveis não têm valor operacional nem auditável.


🔍 Utilização correta dos resultados de scanning

No SbD-ToE, os resultados de vulnerabilidades devem ser usados para:

  • Priorizar correções;
  • Detetar regressões de segurança;
  • Apoiar decisões documentadas de aceitação ou mitigação;
  • Alimentar métricas de melhoria contínua.

Não devem ser usados como:

  • substituto de análise de risco;
  • prova de segurança;
  • mecanismo único de bloqueio sem contexto.

✅ Boas práticas

  • Definir limiares técnicos iniciais (ex.: CVSS ≥ 7) como trigger, não como veredicto;
  • Distinguir vulnerabilidades exploráveis de teóricas;
  • Rever vulnerabilidades herdadas da base image regularmente;
  • Automatizar correção quando fix está disponível;
  • Documentar aceitação de risco quando aplicável;
  • Rever decisões após incidentes ou novas informações.

📎 Referências cruzadas

DocumentoRelação com vulnerabilidades
01-imagens-base.mdMinimização reduz superfície de CVEs
06-sbom-containers.mdScanner usa SBOM como base
03-assinatura-cadeia-trust.mdIntegridade da imagem analisada
09-riscos-processo-imagens.mdScanners como sinal, não decisão
15-aplicacao-lifecycle.mdIntegração no SSDLC

🚨 Vulnerabilidades detetadas são sinais técnicos, não sentenças.
O risco real só existe quando o sinal é interpretado no contexto correto.