Analizza automaticamente i carichi di lavoro per individuare vulnerabilità note


Questa pagina mostra come eseguire automaticamente la scansione del sistema operativo dei container e pacchetti di linguaggio nei carichi di lavoro in esecuzione per individuare ottenere strategie di mitigazione attuabili, se disponibili. Vulnerabilità dei carichi di lavoro la scansione fa parte dashboard della security posture, un insieme di funzionalità che forniscono informazioni "guidate" e Suggerimenti per migliorare la sicurezza di Google Kubernetes Engine (GKE) cluster e carichi di lavoro.

Per saperne di più, vedi Informazioni sull'analisi delle vulnerabilità dei carichi di lavoro.

Prezzi

Per informazioni sui prezzi, vedi Prezzi della dashboard della strategia di sicurezza di GKE.

Prima di iniziare

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

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

Requisiti

  • Per ottenere le autorizzazioni necessarie per utilizzare l'analisi delle vulnerabilità dei carichi di lavoro, chiedi all'amministratore di concederti Ruolo IAM Security Posture Viewer (roles/containersecurity.viewer) per il tuo progetto Google Cloud. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare l'analisi delle vulnerabilità dei carichi di lavoro. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

    Autorizzazioni obbligatorie

    Per utilizzare l'analisi delle vulnerabilità dei carichi di lavoro 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 riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.

  • Advanced Vulnerability Insights richiede GKE versione 1.27 o in un secondo momento.

Livelli dell'analisi delle vulnerabilità dei carichi di lavoro

Puoi attivare l'analisi delle vulnerabilità in livelli, ognuno dei quali aggiunge analisi come mostrato di seguito. 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 e si applicano a tutti i cluster membri. Per istruzioni, vedi Configura le funzionalità della dashboard della strategia di sicurezza di GKE a livello di parco risorse.

Livello Funzionalità abilitate Requisito di versione GKE
Standard
standard
Analisi delle vulnerabilità del sistema operativo dei container
  • Versione di GKE Enterprise: abilitata per impostazione predefinita in tutti i nuovi cluster che eseguono la versione 1.27 e successive
  • Versione di GKE Standard: abilitata per impostazione predefinita in tutti i nuovi cluster in modalità Autopilot che eseguono la versione 1.27 in un secondo momento. Disabilitata per impostazione predefinita in tutte le nuove modalità Standard cluster.
Approfondimenti avanzati sulle vulnerabilità
enterprise
  • Analisi delle vulnerabilità del sistema operativo dei container
  • Analisi delle vulnerabilità dei pacchetti di linguaggi
  • Versione di GKE Enterprise: abilitata per impostazione predefinita in tutti i nuovi cluster che eseguono la versione 1.27 e successive
  • Versione di GKE Standard: disabilitata per impostazione predefinita in tutti i nuovi cluster.

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

Abilita 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 con la versione 1.27 e successive. Questa sezione mostra come attivare questa funzionalità nelle nuove Cluster standard e in cluster Autopilot che eseguono versioni precedenti alla 1.27.

Abilita l'analisi del sistema operativo dei container 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 Analisi delle vulnerabilità casella di controllo.
  6. Seleziona l'opzione Di base.
  7. Configura altre opzioni per il cluster e fai clic su Crea quando è tutto pronto.

Abilita l'analisi del sistema operativo dei container 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 Security posture nella console Google Cloud.

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

Abilita Advanced Vulnerability Insights

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 linguaggio

Quando attivi Advanced Vulnerability Insights, l'analisi delle vulnerabilità del sistema operativo del container viene attivata automaticamente e non può essere disattivata separatamente.

Requisiti

Abilita Advanced Vulnerability Insights su 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 invece stai creando un cluster Standard, fai clic su Sicurezza.
  5. Nella sezione Sicurezza, seleziona Analisi delle vulnerabilità casella di controllo.
  6. Seleziona l'opzione Avanzate.
  7. Configura altre opzioni per il cluster e fai clic su Crea quando è tutto pronto.

Abilita Advanced Vulnerability Insights su 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 Security posture nella console Google Cloud.

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

esegui il deployment di un carico di lavoro di test

I seguenti manifest di esempio presentano vulnerabilità note per la dimostrazione scopi. In pratica, se sai che un'applicazione è vulnerabile, probabilmente non dovresti eseguirlo.

  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à 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. Facoltativamente, ottieni 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, come nginx in ambienti di gestione temporanea.

Visualizzare e intervenire sui risultati

La scansione iniziale richiede almeno 15 minuti per restituire i risultati, a seconda di come vengono analizzati molti carichi di lavoro. GKE visualizza i risultati dashboard della postura di sicurezza e aggiunge automaticamente le voci alla Logging.

Visualizza risultati

Per vedere una panoramica dei problemi rilevati nei cluster del progetto carichi di lavoro, segui questi passaggi:

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

    Vai a Security posture

  2. Fai clic sulla scheda Problemi.

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

Visualizzare i dettagli e i consigli sui 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 delle sue potenziali impatto.
  • Azione consigliata: le azioni che puoi intraprendere per risolvere il problema vulnerabilità, come le versioni corrette del pacchetto e dove applicare la correzione.

Visualizza i log per i problemi rilevati

GKE aggiunge voci a Logging per ogni rilevamento problema.

  1. Vai a Esplora log nella console Google Cloud.

    Vai in 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 ulteriori informazioni le informazioni, vedi Configurare 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. Facoltativamente, elimina il cluster che hai utilizzato:

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Disabilita l'analisi delle vulnerabilità dei carichi di lavoro

Puoi disabilitare l'analisi delle vulnerabilità dei carichi di lavoro utilizzando 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 Security posture nella console Google Cloud.

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

Passaggi successivi