Esegui automaticamente la scansione dei workload per rilevare le vulnerabilità note

Questa pagina ti aiuta a iniziare e ti guida nell'utilizzo della dashboard della security posture per rilevare le vulnerabilità. Controlla i requisiti, seleziona uno dei livelli disponibili e scopri come abilitare l'analisi delle vulnerabilità, eseguire il deployment di un carico di lavoro di test, visualizzare i risultati e i suggerimenti e disabilitare l'analisi.

Questa pagina è rivolta agli specialisti della sicurezza che monitorano i cluster per rilevare problemi di sicurezza. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività utente GKE comuni.

Prima di leggere questa pagina, assicurati di conoscere la panoramica generale di analisi delle vulnerabilità dei workload.

Prezzi

Per informazioni sui prezzi, consulta Prezzi della dashboard della security posture di GKE.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo il gcloud components update comando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

Requisiti

  • Per ottenere le autorizzazioni necessarie per utilizzare l'analisi delle vulnerabilità dei workload, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore della security posture (roles/containersecurity.viewer) nel tuo Google Cloud progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Questo ruolo predefinito include le autorizzazioni necessarie per utilizzare l'analisi delle vulnerabilità dei workload. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

    Autorizzazioni obbligatorie

    Per utilizzare l'analisi delle vulnerabilità dei workload sono necessarie le seguenti autorizzazioni:

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

    Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

  • Advanced Vulnerability Insights richiede GKE versione 1.27 o successive.

Livelli di analisi delle vulnerabilità dei workload

L'analisi delle vulnerabilità viene abilitata a livelli, ognuno dei quali aggiunge funzionalità di analisi come segue. Se utilizzi la versione Google Kubernetes Engine (GKE) Enterprise per gestire i parchi risorse di cluster, puoi anche configurare le impostazioni di analisi delle vulnerabilità a livello di parco risorse che si applicano a tutti i cluster membri. Per istruzioni, consulta Configurare le funzionalità della dashboard della security posture di GKE a livello di parco risorse.

Livello Funzionalità abilitate Requisito della versione GKE
Standard
standard
Analisi delle vulnerabilità del sistema operativo dei container
  • Versione GKE Enterprise: abilitata per impostazione predefinita in tutti i nuovi cluster che eseguono la versione 1.27 e successive
Advanced Vulnerability Insights
enterprise
  • Analisi delle vulnerabilità del sistema operativo dei container
  • Analisi delle vulnerabilità dei pacchetti di linguaggio
  • Versione GKE Enterprise: abilitata per impostazione predefinita in tutti i nuovi cluster che eseguono la versione 1.27 e successive
  • Versione GKE Standard: disabilitata per impostazione predefinita in tutti i nuovi cluster.

Per saperne di più su ogni funzionalità, consulta Informazioni sull'analisi delle vulnerabilità dei workload.

Abilitare l'analisi delle vulnerabilità del sistema operativo dei container

L'analisi delle vulnerabilità del sistema operativo dei container è abilitata per impostazione predefinita nei nuovi cluster Autopilot che eseguono la versione 1.27 e successive. Questa sezione mostra come abilitare questa funzionalità nei nuovi cluster Standard esistenti e nei cluster Autopilot che eseguono versioni precedenti alla 1.27.

Abilitare l'analisi del sistema operativo dei container in un cluster esistente

gcloud

Aggiorna il cluster:

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

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • CONTROL_PLANE_LOCATION: la località del control plane del cluster. Fornisci una regione per i cluster Standard e Autopilot regionali, o una zona per i cluster Standard zonali.

Console

  1. Vai alla pagina Security Posture nella Google Cloud console.

    Vai a Security Posture
  2. Fai clic sulla scheda Impostazioni.
  3. Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic Seleziona cluster.
  4. Seleziona le caselle di controllo per i cluster che vuoi aggiungere.
  5. Nel menu a discesa Seleziona azione, seleziona Imposta su Base.
  6. Fai clic su Applica.

Abilitare Advanced Vulnerability Insights

Advanced Vulnerability Insights consente l'analisi continua delle applicazioni in esecuzione per i seguenti tipi di vulnerabilità:

  • Vulnerabilità del sistema operativo dei container
  • Vulnerabilità dei pacchetti di linguaggio

Quando abiliti Advanced Vulnerability Insights, la funzionalità di analisi delle vulnerabilità del sistema operativo dei container viene abilitata automaticamente e non può essere disabilitata separatamente.

Requisiti

Abilitare Advanced Vulnerability Insights in un cluster esistente

gcloud

Aggiorna il cluster:

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

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • CONTROL_PLANE_LOCATION: la località del control plane del cluster. Fornisci una regione per i cluster Standard e Autopilot regionali, o una zona per i cluster Standard zonali.

Console

  1. Vai alla pagina Security Posture nella Google Cloud console.

    Vai a Security Posture
  2. Fai clic sulla scheda Impostazioni.
  3. Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic Seleziona cluster.
  4. Seleziona le caselle di controllo per i cluster che vuoi aggiungere.
  5. Nel menu a discesa Seleziona azione, seleziona Imposta su Avanzato.
  6. Fai clic su Applica.

Eseguire il deployment di un carico di lavoro di test

Nella sezione seguente utilizzerai manifest di deployment di esempio. Un deployment è un oggetto API Kubernetes che ti consente di eseguire più repliche di pod distribuiti tra i nodi di un cluster.

I seguenti manifest hanno vulnerabilità note a scopo dimostrativo. In pratica, se sai che un'applicazione è vulnerabile, probabilmente non dovresti eseguirla.

  1. Salva il seguente manifest come 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. Esamina il seguente manifest, che contiene una vulnerabilità Maven nota:

    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. (Facoltativo) Recupera le credenziali per il tuo cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    
  4. Esegui il deployment delle applicazioni nel tuo 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
    

Per testare altre vulnerabilità, prova a eseguire il deployment di versioni precedenti di immagini come nginx negli ambienti di staging.

Visualizzare i risultati ed eseguire azioni

L'analisi iniziale richiede almeno 15 minuti per restituire i risultati, a seconda del numero di workload analizzati. GKE visualizza i risultati nella dashboard della security posture e aggiunge automaticamente le voci a Logging.

Visualizzare i risultati

Per visualizzare una panoramica dei problemi rilevati nei cluster e nei workload del progetto:

  1. Vai alla pagina Security Posture nella Google Cloud console.

    Vai a Security Posture

  2. Fai clic sulla scheda Problemi.

  3. Nel riquadro Filtra problemi, nella sezione Tipo di problema, seleziona la casella di controllo Vulnerabilità.

Visualizzare i dettagli e i suggerimenti relativi ai problemi

Per visualizzare informazioni dettagliate su una vulnerabilità specifica, fai clic sulla riga contenente il problema.

Il riquadro Problema di vulnerabilità mostra le seguenti informazioni:

  • Descrizione: una descrizione del problema, incluso un numero CVE, se applicabile, e una descrizione dettagliata della vulnerabilità e del suo potenziale impatto.
  • Azione consigliata: azioni che puoi intraprendere per risolvere la vulnerabilità, ad esempio versioni dei pacchetti fisse e dove applicare la correzione.

Visualizzare i log per i problemi rilevati

GKE aggiunge voci al bucket di log _Default in Logging per ogni problema rilevato. Questi log vengono conservati solo per un periodo specifico. Per i dettagli, consulta Periodi di conservazione dei log.

  1. Nella Google Cloud console, vai a Esplora log:

    Vai a Esplora log
  2. Nel campo Query, specifica la seguente query:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_VULNERABILITY"
  3. Fai clic su Esegui query.

Per ricevere notifiche quando GKE aggiunge nuovi risultati a Logging, configura avvisi basati su log per questa query. Per saperne di più, consulta Configurare gli avvisi basati su log.

Esegui la pulizia

  1. Elimina il carico di lavoro di esempio di cui hai eseguito il deployment:

    kubectl delete deployment frontend
    
  2. (Facoltativo) Elimina il cluster che hai utilizzato:

    gcloud container clusters delete CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

Disabilitare l'analisi delle vulnerabilità dei workload

Puoi disabilitare l'analisi delle vulnerabilità dei workload utilizzando gcloud CLI o la Google Cloud console.

gcloud

Esegui questo comando:

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

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • CONTROL_PLANE_LOCATION: la località del control plane del cluster. Fornisci una regione per i cluster Standard e Autopilot regionali, o una zona per i cluster Standard zonali.

Console

  1. Vai alla pagina Security Posture nella Google Cloud console.

    Vai a Security Posture
  2. Fai clic sulla scheda Impostazioni.
  3. Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic Seleziona cluster.
  4. Seleziona le caselle di controllo per i cluster che vuoi rimuovere.
  5. Nel menu a discesa Seleziona azione, seleziona Imposta su Disabilitato.
  6. Fai clic su Applica.

Passaggi successivi