Container Analysis

O Container Analysis realiza uma varredura nas imagens de contêiner armazenadas no Container Registry para ver se há vulnerabilidades. A análise automatizada contínua de contêineres mantém você informado sobre vulnerabilidades conhecidas, para que você possa analisar e abordar os problemas antes da implantação.

Além disso, os provedores de metadados de terceiros podem usar o Container Analysis para armazenar e recuperar outros metadados referentes às imagens dos clientes, como pacotes instalados em uma imagem.

Nesta página, descrevemos os tipos de metadados compatíveis com o Container Analysis, além de alguns conceitos e termos principais.

Como associar metadados a imagens

Uma parte de alto nível de metadados, como uma vulnerabilidade ou informações de criação, é chamada de nota. Quando o Container Analysis analisa uma imagem, cada instância de uma nota encontrada é identificada como uma ocorrência.

Nota

Uma nota descreve uma parte de metadados de alto nível. Por exemplo, você poderia criar uma nota sobre uma vulnerabilidade específica depois de analisar um pacote do Linux. Você também usaria uma nota para armazenar informações sobre o criador de um processo de criação. As notas geralmente são de propriedade e criadas pelos provedores que realizam a análise. Geralmente, as notas são encontradas analisando-se as imagens do contêiner e ocorrem várias vezes em diferentes projetos.

Recomenda-se armazenar notas e ocorrências em projetos separados, permitindo um controle de acesso mais refinado.

As notas só podem ser editáveis pelo proprietário dela e somente leitura para clientes que tenham acesso às ocorrências que as referenciam.

Ocorrência

Uma ocorrência é representada quando uma nota foi encontrada em uma imagem, podendo ser considerada uma instanciação de uma nota. Por exemplo, uma ocorrência de uma nota sobre uma vulnerabilidade descreveria o pacote em que a vulnerabilidade foi encontrada, as etapas de correção específicas e assim por diante. Como alternativa, uma ocorrência de uma nota sobre detalhes de criação descreveria as imagens de contêiner resultantes de uma criação.

Normalmente, as ocorrências são armazenadas em projetos separados daqueles em que as notas são criadas. O acesso de gravação a ocorrências só pode ser concedido a usuários que têm acesso para vincular uma nota à ocorrência. Qualquer usuário pode ter acesso de leitura a ocorrências.

Ocorrências de descoberta incluem informações coletadas durante a varredura inicial de imagens de contêiner. Ao analisar os contêineres, o Container Analysis atualiza as ocorrências de descoberta para registrar o status da varredura. As ocorrências de descoberta são criadas para todas as imagens atuais quando a API Container Analysis é ativada pela primeira vez. Para as novas imagens, elas são criadas no momento do envio para o Container Registry.

Tipos de metadados compatíveis

A tabela a seguir mostra todos os tipos de metadados compatíveis com o Container Analysis e disponíveis para imagens do Container Registry no formato de notas. Provedores de metadados de terceiros podem armazenar e recuperar todos os tipos de metadados a seguir para as imagens dos respectivos clientes.

Tipo de metadados Fornecido pelo Container Analysis para imagens do Container Registry
Vulnerabilidade, que fornece informações sobre vulnerabilidade de imagens do contêiner. Sim. O Container Analysis recebe as informações de vulnerabilidade de origens externas.
Criação, que fornece informações sobre a procedência da criação. Sim. O Container Analysis só fornece essas informações quando você usa o Cloud Build para criar a imagem.
Implantação, que traz informações sobre eventos de implantação de imagem. Não
Imagem, que são os metadados sobre a imagem do contêiner, por exemplo, informações sobre as diferentes camadas de uma imagem. Não
Pacote, que contém informações sobre os pacotes instalados na sua imagem. Não
Atestado, que é o papel lógico que pode atestar as imagens. Não
Descoberta, que contém informações sobre a verificação inicial de imagens. Sim. O Container Analysis fornece essas informações apenas para vulnerabilidades.

Provedores e clientes

Provedores são as empresas que fornecem metadados para as imagens dos clientes. Os provedores podem usar o Container Analysis para armazenar e recuperar metadados para as imagens de seus clientes. Por exemplo, uma empresa que gerencia a segurança de contêineres do Docker dos seus clientes pode usar o Container Analysis para armazenar e recuperar metadados relacionados à segurança das imagens. Para mais informações, consulte Como fornecer metadados para projetos.

Os clientes usam os metadados fornecidos pelo Google para as imagens no Container Registry ou por provedores de terceiros.

Verificação de vulnerabilidades

O Container Analysis executa os seguintes tipos de verificação de vulnerabilidades para as imagens no Container Registry:

  • Verificação inicial: quando você ativa a API Container Analysis pela primeira vez, ela verifica todas as imagens existentes no Container Registry e extrai o gerenciador de pacotes, a base da imagem e as ocorrências de vulnerabilidade referentes às imagens. Depois de concluída a verificação inicial, o Container Analysis cria uma ocorrência de descoberta com esses metadados.

  • Verificação incremental: o Container Analysis verifica novas imagens à medida que elas são carregadas no Container Registry.

  • Análise contínua: conforme o Container Analysis recebe informações novas e atualizadas sobre vulnerabilidade de origens de vulnerabilidade, ele executa novamente a análise de contêineres para manter a lista de ocorrências de vulnerabilidades de imagens atualizada. A verificação contínua cria novas ocorrências de notas novas e exclui ocorrências que não são mais relevantes. Esse tipo de análise refere-se apenas a vulnerabilidades de pacote, outros tipos de metadados não são analisados.

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

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:

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 do Container Analysis é 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.

As contas de serviço do projeto podem ser vistas pelo menu IAM do Console do GCP.

Interfaces do Container Analysis

No Console do GCP, é possível visualizar vulnerabilidades de imagem e metadados de imagem para contêineres no Container Registry.

Use a ferramenta gcloud para visualizar vulnerabilidades e metadados de imagens.

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. É possível fazer chamadas à API usando as bibliotecas de cliente ou usando cURL para REST/JSON.

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

É possível integrar a autorização binária com a verificação de vulnerabilidades para impedir que imagens com problemas de segurança conhecidos sejam executadas no seu ambiente de implementação.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Container Registry