Verificação de vulnerabilidades

O Container Analysis fornece verificação de vulnerabilidades e armazenamento de metadados para contêineres. Esta página descreve a verificação de vulnerabilidades.

Verificação de vulnerabilidades

Vulnerabilidades de software são pontos fracos que podem causar uma falha acidental do sistema ou ser explorados intencionalmente.

O Container Analysis realiza verificações de vulnerabilidades em imagens no Container Registry e monitora as informações de vulnerabilidade para mantê-las atualizadas. Esse processo inclui duas tarefas principais: verificação e análise contínua.

Quando a varredura de uma imagem é concluída, o resultado de vulnerabilidade é uma coleção das ocorrências de vulnerabilidade de uma imagem.

Verificação

o Container Analysis verifica as novas imagens quando elas são enviadas para o Container Registry. Essa verificação extrai informações sobre os pacotes do sistema no contêiner.

O Container Analysis verifica as imagens apenas uma vez, com base no resumo da imagem. Isso significa que a adição ou modificação de tags não acionará novas verificações, mudando apenas o conteúdo da imagem.

O Container Analysis só detecta pacotes monitorados publicamente quanto a vulnerabilidades de segurança.

Análise contínua

O Container Analysis cria ocorrências de vulnerabilidades encontradas quando você faz upload da imagem. Após a verificação inicial, ele monitora continuamente os metadados de imagens digitalizadas no Container Registry para detectar novas vulnerabilidades.

Como o Container Analysis recebe informações novas e atualizadas sobre vulnerabilidade de fontes de vulnerabilidade, ele atualiza os metadados das imagens digitalizadas para mantê-las atualizadas, criando novas ocorrências de vulnerabilidade para novas notas e excluindo ocorrências de vulnerabilidade que não são mais válidas.

Origem de vulnerabilidade

A API Container Analysis é compatível com a verificação de vulnerabilidades de pacotes para distribuições Linux e recebe os dados de CVE das origens a seguir:

Versões compatíveis

O Container Analysis é compatível com a verificação de vulnerabilidades das seguintes versões do SO:

  • Debian GNU/Linux - Versões: 9, 10
  • Versões do Ubuntu: 12.04, 12.10, 13.04, 14.04, 14.10, 15.04, 15.10, 16.05, 16.10, 17.04, 17.10, 18.04, 18.10, 20,04
  • Alpine Linux - Versões: 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12
  • CentOS: versões: 6, 7, 8 e versões secundárias
  • Redhat - Versões: 6, 7, 8 e versões secundárias

Níveis de gravidade de vulnerabilidades

O Container Analysis usa os níveis de gravidade a seguir:

  • Crítica
  • Alta
  • Média
  • Baixa
  • Mínima

Os níveis de gravidade são rótulos qualitativos que refletem fatores como capacidade de exploração, escopo, impacto e maturidade da vulnerabilidade. Por exemplo, se uma vulnerabilidade permitir que um usuário remoto acesse facilmente um sistema e execute um código arbitrário sem autenticação ou interação com o usuário, essa vulnerabilidade será classificada como Crítica.

Dois tipos de gravidade estão associados a cada vulnerabilidade:

  • Gravidade efetiva: o nível de gravidade atribuído pela distribuição Linux. Se os níveis de gravidade específicos da distribuição estiverem indisponíveis, o Container Analysis usará o nível de gravidade atribuído pelo provedor da nota.

  • Pontuação CVSS: a pontuação do sistema de pontuação de vulnerabilidade comum (CVSS, na sigla em inglês) e o nível de gravidade associado. Consulte a especificação CVSS 3.0 (em inglês) para saber mais sobre como as pontuações do CVSS são calculadas.

Para uma determinada vulnerabilidade, a gravidade derivada de uma pontuação do CVSS calculada pode não corresponder à gravidade efetiva. As distribuições Linux que atribuem níveis de gravidade usam seus próprios critérios para avaliar os impactos específicos de uma vulnerabilidade nas distribuições.

Conta de serviço padrão do Container Analysis

O Container Analysis analisa suas imagens de contêiner usando uma conta de serviço, uma conta especial do Google que coleta informações sobre suas imagens no seu nome. O e-mail da conta de serviço da Análise de contêiner é service-[PROJECT_NUMBER]@container-analysis.iam.gserviceaccount.com. Essa conta usa o papel Agente de serviço do Container Analysis.

Se você ativar a verificação de vulnerabilidades, a API Container Scanning usada por esse recurso também usará uma Conta do Google especial. O e-mail dessa conta de serviço é service-[PROJECT_NUMBER]@gcp-sa-containerscanning.iam.gserviceaccount.com. A conta usa o papel de Agente de serviço do Container Scanner.

É possível ver as contas de serviço do seu projeto por meio do menu "IAM" do Console do Cloud.

Interfaces do Container Analysis

No Console do Cloud, você pode ver vulnerabilidades de imagem e metadados de imagem para contêineres no Container Registry.

Você pode usar a ferramenta gcloud para visualizar vulnerabilidades e metadados de imagem.

A API REST Container Analysis também pode ser usada para executar qualquer uma dessas ações. Assim como em outras APIs do Cloud Platform, você precisa autenticar o acesso usando o OAuth2. Depois da autenticação, você pode usar a API para criar novas notas e ocorrências, ver ocorrências de vulnerabilidade etc.

A API Container Analysis é compatível com gRPC e REST/JSON. Você pode fazer chamadas à API usando as bibliotecas de cliente ou usando cURL para REST/JSON.

Como controlar a implantação de imagens vulneráveis

Com base nas informações de vulnerabilidade fornecidas pelo Container Analysis, é possível usar a autorização binária para criar uma lista de permissões de vulnerabilidade como parte do pipeline do Cloud Build. Se as vulnerabilidades violarem a política na lista de permissões, a compilação falhará.

Você também pode integrar o Container Analysis com autorização binária para criar atestados, o que pode impedir que as imagens de contêiner com problemas de segurança conhecidos sejam executadas no ambiente da sua implantação.

A seguir