Analise automaticamente as cargas de trabalho para encontrar vulnerabilidades conhecidas

Esta página ajuda a começar e explica como usar o painel de controlo de postura de segurança para detetar vulnerabilidades. Verifique os requisitos, selecione um dos níveis disponíveis e saiba como ativar a análise de vulnerabilidades, implementar uma carga de trabalho de teste, ver resultados e recomendações, e desativar a análise.

Esta página destina-se a especialistas em segurança que monitorizam clusters para detetar problemas de segurança. Para saber mais sobre as funções comuns e as tarefas de exemplo a que fazemos referência no Trusted Cloud by S3NS conteúdo, consulte Funções e tarefas comuns de utilizadores do GKE.

Antes de ler esta página, certifique-se de que conhece a vista geral da análise de vulnerabilidades da carga de trabalho.

Preços

Para informações sobre preços, consulte o artigo Preços do painel de controlo de segurança do GKE.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Requisitos

  • Para receber as autorizações de que precisa para usar a análise de vulnerabilidades de cargas de trabalho, peça ao seu administrador para lhe conceder a função de IAM de visualizador da postura de segurança (roles/containersecurity.viewer) no seu projeto Trusted Cloud . Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Esta função predefinida contém as autorizações necessárias para usar a análise de vulnerabilidades da carga de trabalho. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

    Autorizações necessárias

    São necessárias as seguintes autorizações para usar a análise de vulnerabilidades da carga de trabalho:

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

  • As Advanced Vulnerability Insights requerem a versão 1.27 ou posterior do GKE.

Níveis de análise de vulnerabilidades da carga de trabalho

Ativa a análise de vulnerabilidades em níveis, cada um dos quais adiciona capacidades de análise da seguinte forma. Se usar a edição Enterprise do Google Kubernetes Engine (GKE) para gerir frotas de clusters, também pode configurar definições de análise de vulnerabilidades ao nível da frota que se aplicam a todos os clusters membros. Para obter instruções, consulte o artigo Configure as funcionalidades do painel de controlo de segurança do GKE ao nível da frota.

Nível Capacidades ativadas Requisito de versão do GKE
Padrão
standard
Análise de vulnerabilidades do SO do contentor
  • GKE Enterprise edition: ativado por predefinição em todos os novos clusters com a versão 1.27 e posterior
Advanced Vulnerability Insights
enterprise
  • Análise de vulnerabilidades do SO do contentor
  • Análise de vulnerabilidades de pacotes de idiomas
  • GKE Enterprise edition: ativado por predefinição em todos os novos clusters com a versão 1.27 e posterior
  • Edição padrão do GKE: desativada por predefinição em todos os novos clusters.

Para mais informações sobre cada capacidade, consulte o artigo Acerca da análise de vulnerabilidades da carga de trabalho.

Ative a análise de vulnerabilidades do SO do contentor

A análise de vulnerabilidades do SO do contentor está ativada por predefinição em novos clusters do Autopilot que executam a versão 1.27 e posteriores. Esta secção mostra como ativar esta funcionalidade em novos clusters padrão existentes e em clusters do Autopilot que executam versões anteriores à 1.27.

Ative a análise do SO do contentor num cluster existente

gcloud

Atualize o cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --workload-vulnerability-scanning=standard

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do plano de controlo do seu cluster. Indique uma região para clusters padrão e do Autopilot regionais ou uma zona para clusters padrão zonais.

Consola

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança
  2. Clique no separador Definições.
  3. Na secção Clusters com análise de vulnerabilidades ativada, clique em Selecionar clusters.
  4. Selecione as caixas de verificação dos clusters que quer adicionar.
  5. No menu pendente Selecionar ação, selecione Definir como básico.
  6. Clique em Aplicar.

Ative as estatísticas de vulnerabilidades avançadas

As Advanced Vulnerability Insights permitem a análise contínua das suas aplicações em execução para os seguintes tipos de vulnerabilidades:

  • Vulnerabilidades do SO do contentor
  • Vulnerabilidades do pacote de idiomas

Quando ativa as estatísticas de vulnerabilidades avançadas, a capacidade de análise de vulnerabilidades do SO do contentor é ativada automaticamente e não pode ser desativada separadamente.

Requisitos

Ative as Advanced Vulnerability Insights num cluster existente

gcloud

Atualize o cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --workload-vulnerability-scanning=enterprise

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do plano de controlo do seu cluster. Indique uma região para clusters padrão e do Autopilot regionais ou uma zona para clusters padrão zonais.

Consola

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança
  2. Clique no separador Definições.
  3. Na secção Clusters com análise de vulnerabilidades ativada, clique em Selecionar clusters.
  4. Selecione as caixas de verificação dos clusters que quer adicionar.
  5. No menu pendente Selecionar ação, selecione Definir como avançado.
  6. Clique em Aplicar.

Implemente uma carga de trabalho de teste

Na secção seguinte, vai usar exemplos de manifestos de implementação. Uma implementação é um objeto da API Kubernetes que lhe permite executar várias réplicas de pods distribuídas entre os nós num cluster.

Os seguintes manifestos têm vulnerabilidades conhecidas para fins de demonstração. Na prática, se souber que uma aplicação é vulnerável, provavelmente não a deve executar.

  1. Guarde o seguinte manifesto como os-vuln-sample.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: frontend
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: guestbook
          tier: frontend
      template:
        metadata:
          labels:
            app: guestbook
            tier: frontend
        spec:
          containers:
          - name: php-redis
            image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend:v5
            env:
            - name: GET_HOSTS_FROM
              value: "dns"
            resources:
              requests:
                cpu: 100m
                memory: 100Mi
            ports:
            - containerPort: 80
    
  2. Reveja o seguinte manifesto, que contém uma vulnerabilidade conhecida do Maven:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: maven-vulns
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mavenvulns
      template:
        metadata:
          labels:
            app: mavenvulns
        spec:
          containers:
          - name: maven-vulns-app
            image: us-docker.pkg.dev/google-samples/containers/gke/security/maven-vulns
            # This app listens on port 8080 for web traffic by default.
            ports:
            - containerPort: 8080
            env:
              - name: PORT
                value: "8080"
            resources:
              requests:
                memory: "1Gi"
                cpu: "500m"
                ephemeral-storage: "1Gi"
              limits:
                memory: "1Gi"
                cpu: "500m"
                ephemeral-storage: "1Gi"
  3. Opcionalmente, obtenha credenciais para o seu cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    
  4. Implemente as aplicações no cluster:

    kubectl apply -f os-vuln-sample.yaml
    kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
    

Para testar outras vulnerabilidades, experimente implementar versões anteriores de imagens, como nginx em ambientes de preparação.

Veja e tome medidas com base nos resultados

A análise inicial demora, pelo menos, 15 minutos a devolver resultados, consoante o número de cargas de trabalho analisadas. O GKE apresenta os resultados no painel de controlo da postura de segurança e adiciona automaticamente entradas ao registo.

Ver resultados

Para ver uma vista geral das preocupações descobertas nos clusters e nas cargas de trabalho do seu projeto, faça o seguinte:

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança

  2. Clique no separador Preocupações.

  3. No painel Filtrar preocupações, na secção Tipo de preocupação, selecione a caixa de verificação Vulnerabilidade.

Veja detalhes e recomendações sobre preocupações

Para ver informações detalhadas sobre uma vulnerabilidade específica, clique na linha que contém essa preocupação.

O painel Preocupação com vulnerabilidade mostra as seguintes informações:

  • Descrição: uma descrição da preocupação, incluindo um número CVE, se aplicável, e uma descrição detalhada da vulnerabilidade e do respetivo potencial impacto.
  • Ação recomendada: ações que pode realizar para resolver a vulnerabilidade, como versões de pacotes corrigidas e onde aplicar a correção.

Veja registos de preocupações detetadas

O GKE adiciona entradas ao contentor de registos _Default no Logging para cada preocupação descoberta. Estes registos só são retidos durante um período específico. Para ver detalhes, consulte o artigo Períodos de retenção de registos.

  1. Na Trusted Cloud consola, aceda ao Explorador de registos:

    Aceda ao Explorador de registos
  2. No campo Consulta, especifique a seguinte consulta:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_VULNERABILITY"
  3. Clique em Executar consulta.

Para receber notificações quando o GKE adicionar novas descobertas ao Logging, configure alertas baseados em registos para esta consulta. Para mais informações, consulte o artigo Configure alertas baseados em registos.

Limpar

  1. Elimine a carga de trabalho de exemplo que implementou:

    kubectl delete deployment frontend
    
  2. Opcionalmente, elimine o cluster que usou:

    gcloud container clusters delete CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

Desative a análise de vulnerabilidades da carga de trabalho

Pode desativar a análise de vulnerabilidades da carga de trabalho através da CLI gcloud ou da Trusted Cloud consola.

gcloud

Execute o seguinte comando:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --workload-vulnerability-scanning=disabled

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do plano de controlo do seu cluster. Indique uma região para clusters padrão e do Autopilot regionais ou uma zona para clusters padrão zonais.

Consola

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança
  2. Clique no separador Definições.
  3. Na secção Clusters com análise de vulnerabilidades ativada, clique em Selecionar clusters.
  4. Selecione as caixas de verificação para os clusters que quer remover.
  5. No menu pendente Selecionar ação, selecione Definir como desativado.
  6. Clique em Aplicar.

O que se segue?