Eseguire automaticamente la scansione dei workload per rilevare 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, scegli tra i livelli disponibili e scopri come attivare la ricerca di vulnerabilità, eseguire il deployment di un carico di lavoro di test, visualizzare risultati e consigli e disattivare la ricerca.

Questa pagina è rivolta agli esperti di sicurezza che monitorano i cluster per rilevare eventuali problemi di sicurezza. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenutiGoogle Cloud , consulta Ruoli e attività utente comuni di GKE Enterprise.

Prima di leggere questa pagina, assicurati di conoscere la panoramica generale della scansione delle vulnerabilità del carico di lavoro.

Prezzi

Per le informazioni sui prezzi, consulta Prezzi della dashboard della postura di sicurezza di GKE.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Requisiti

  • Per ottenere le autorizzazioni necessarie per utilizzare la scansione delle vulnerabilità del carico di lavoro, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore della posizione di sicurezza (roles/containersecurity.viewer) nel tuo Google Cloud progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

    Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare analisi delle vulnerabilità del carico di lavoro. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

    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 1.27 o versioni successive.

Livelli di analisi delle vulnerabilità dei workload

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

Livello Funzionalità abilitate Requisito della versione GKE
Standard
standard
Analisi delle vulnerabilità del sistema operativo del container
  • Versione GKE Enterprise: abilitata per impostazione predefinita in tutti i nuovi cluster che eseguono la versione 1.27 e successive
  • Versione GKE Standard: abilitata per impostazione predefinita in tutti i nuovi cluster in modalità Autopilot che eseguono la versione 1.27 e successive. Disattivato per impostazione predefinita in tutti i nuovi cluster in modalità standard.
Approfondimenti sulle vulnerabilità
enterprise
  • Analisi delle vulnerabilità del sistema operativo del container
  • Analisi delle vulnerabilità dei pacchetti di lingua
  • Versione GKE Enterprise: abilitata per impostazione predefinita in tutti i nuovi cluster che eseguono la versione 1.27 e successive
  • Edizione GKE Standard: disabilitata per impostazione predefinita in tutti i nuovi cluster.

Per ulteriori informazioni su ciascuna funzionalità, consulta Informazioni sull'analisi delle vulnerabilità dei carichi di lavoro.

Attivare l'analisi delle vulnerabilità del sistema operativo del container

L'analisi delle vulnerabilità del sistema operativo del contenitore è abilitata per impostazione predefinita nei nuovi cluster Autopilot che eseguono la versione 1.27 e successive. Questa sezione spiega come attivare questa funzionalità nei nuovi cluster standard esistenti e nei cluster Autopilot che eseguono versioni precedenti alla 1.27.

Attivare l'analisi del sistema operativo del contenitore in un nuovo cluster

gcloud

Crea un nuovo cluster GKE utilizzando gcloud CLI:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=standard

Sostituisci quanto segue:

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine
  2. Fai clic su Crea.
  3. Nella sezione GKE Standard, fai clic su Configura.
  4. Nel riquadro di navigazione, fai clic su Sicurezza.
  5. Nella sezione Sicurezza, seleziona la casella di controllo Scansione delle vulnerabilità.
  6. Seleziona l'opzione Di base.
  7. Configura altre opzioni per il cluster e fai clic su Crea quando è tutto pronto.

Attivare l'analisi del sistema operativo del contenitore su un cluster esistente

gcloud

Aggiorna il cluster:

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

Sostituisci quanto segue:

Console

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

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

Attivare gli approfondimenti sulle vulnerabilità avanzate

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

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

Quando attivi Advanced Vulnerability Insights, la funzionalità di analisi delle vulnerabilità del sistema operativo del contenitore viene attivata automaticamente e non può essere disattivata separatamente.

Requisiti

Attivare Advanced Vulnerability Insights in un nuovo cluster

gcloud

Crea un nuovo cluster GKE utilizzando gcloud CLI:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=enterprise

Sostituisci quanto segue:

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine
  2. Fai clic su Crea.
  3. Nella sezione GKE Autopilot, fai clic su Configura.
  4. Nel riquadro di navigazione, fai clic su Impostazioni avanzate. Se stai creando un cluster standard, fai clic su Sicurezza.
  5. Nella sezione Sicurezza, seleziona la casella di controllo Scansione delle vulnerabilità.
  6. Seleziona l'opzione Avanzate.
  7. Configura altre opzioni per il cluster e fai clic su Crea quando è tutto pronto.

Attivare Advanced Vulnerability Insights in un cluster esistente

gcloud

Aggiorna il cluster:

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

Sostituisci quanto segue:

Console

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

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

Esegui il deployment di un carico di lavoro di test

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

I seguenti manifest presentano 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@sha256:dc8de8e0d569d2f828b187528c9317bd6b605c273ac5a282aebe471f630420fc
            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à nota di 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. Se vuoi, recupera le credenziali per il tuo cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=COMPUTE_REGION
    
  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 delle immagini, ad esempionginx, negli ambienti di staging.

Visualizzare ed eseguire azioni sui risultati

La scansione iniziale richiede almeno 15 minuti per restituire i risultati, a seconda del numero di carichi di lavoro sottoposti a scansione. GKE mostra i risultati nella dashboard della security posture e aggiunge automaticamente voci al logging.

Visualizza risultati

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

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

    Vai a Postura di sicurezza

  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 consigli relativi ai problemi

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

Il riquadro Problema relativo alla 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 le versioni dei pacchetti corrette e dove applicare la correzione.

Visualizza i log relativi ai problemi rilevati

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

  1. Nella console Google Cloud, 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 gli avvisi basati su log per questa query. Per ulteriori informazioni, 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. Se vuoi, elimina il cluster che hai utilizzato:

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Disattivare l'analisi delle vulnerabilità dei workload

Puoi disattivare analisi delle vulnerabilità del carico di lavoro utilizzando la gcloud CLI o la console Google Cloud.

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --region=LOCATION \
    --workload-vulnerability-scanning=disabled

Sostituisci quanto segue:

Console

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

    Vai a Postura di sicurezza
  2. Fai clic sulla scheda Impostazioni.
  3. Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic su Seleziona cluster.
  4. Seleziona le caselle di controllo dei cluster da rimuovere.
  5. Nel menu a discesa Seleziona azione, seleziona Imposta su Disattivato.
  6. Fai clic su Applica.

Passaggi successivi