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. La scansione delle vulnerabilità dei carichi di lavoro fa parte della dashboard sulla postura di sicurezza, un insieme di funzionalità che forniscono informazioni e consigli per migliorare la sicurezza dei cluster e dei carichi di lavoro di Google Kubernetes Engine (GKE).
Per saperne di più, consulta Informazioni sull'analisi delle vulnerabilità dei carichi di lavoro.
Prezzi
Per informazioni sui prezzi, vedi Prezzi delle 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. 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, scarica la versione più recente
eseguendo
gcloud components update
.
Abilita l'API Container Security.
Per utilizzare Advanced Vulnerability Insights, abilita l'API Container Analysis.
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 progetto Google Cloud. 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 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 ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
-
- Advanced Vulnerability Insights richiede GKE versione 1.27 o in un secondo momento.
Livelli di 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 |
---|---|---|
Standardstandard |
Analisi delle vulnerabilità del sistema operativo dei container |
|
Approfondimenti sulle vulnerabilitàenterprise |
|
|
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 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:
CLUSTER_NAME
: il nome del nuovo cluster.LOCATION
: la posizione Compute Engine per il cluster.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Vai a Google Kubernetes Engine- Fai clic su Crea.
- Nella sezione GKE Standard, fai clic su Configura.
- Nel riquadro di navigazione, fai clic su Sicurezza.
- Nella sezione Sicurezza, seleziona Analisi delle vulnerabilità casella di controllo.
- Seleziona l'opzione Di base.
- 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:
CLUSTER_NAME
: il nome del tuo cluster.LOCATION
: la posizione Compute Engine del tuo cluster.
Console
Vai alla pagina Posizione di sicurezza nella console Google Cloud.
Vai a Security posture- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic su Seleziona i cluster.
- Seleziona le caselle di controllo per i cluster da aggiungere.
- Nel menu a discesa Seleziona azione, scegli Imposta su Base.
- Fai clic su Applica.
Attivare gli insight avanzati sulle vulnerabilità
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
Assicurati di aver attivato l'API Container Analysis nel tuo progetto.
Attiva l'API Container Analysis
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:
CLUSTER_NAME
: il nome del nuovo cluster.LOCATION
: la posizione Compute Engine per il cluster.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Vai a Google Kubernetes Engine- Fai clic su Crea.
- Nella sezione GKE Autopilot, fai clic su Configura.
- Nel riquadro di navigazione, fai clic su Impostazioni avanzate. Se stai creando un cluster standard, fai clic su Sicurezza.
- Nella sezione Sicurezza, seleziona Analisi delle vulnerabilità casella di controllo.
- Seleziona l'opzione Avanzata.
- 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:
CLUSTER_NAME
: il nome del tuo cluster.LOCATION
: la posizione Compute Engine del tuo cluster.
Console
Vai alla pagina Posizione di sicurezza nella console Google Cloud.
Vai a Security posture- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic su Seleziona i cluster.
- Seleziona le caselle di controllo per i cluster da aggiungere.
- Nel menu a discesa Seleziona azione, scegli Imposta su Avanzata.
- Fai clic su Applica.
esegui il deployment di un carico di lavoro di test
I manifest di esempio riportati di seguito presentano vulnerabilità note a scopo dimostrativo. In pratica, se sai che un'applicazione è vulnerabile, probabilmente non dovresti eseguirlo.
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
Esamina il seguente manifest, che contiene una vulnerabilità Maven nota:
Facoltativamente, ottieni le credenziali per il tuo cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=COMPUTE_REGION
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 implementare versioni precedenti delle immagini, ad esempio
nginx
, negli ambienti di staging.
Visualizzare ed eseguire azioni 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 visualizzare una panoramica dei problemi rilevati nei cluster e nei carichi di lavoro del progetto:
Vai alla pagina Posizione di sicurezza nella console Google Cloud.
Fai clic sulla scheda Problemi.
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 del suo potenziale 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 relativi ai 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 maggiori dettagli, consulta Periodi di conservazione dei log.
Nella console Google Cloud, vai a Esplora log:
Vai a Esplora logNel 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"
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 la pagina Configurare gli avvisi basati su log.
Esegui la pulizia
Elimina il carico di lavoro di esempio di cui hai eseguito il deployment:
kubectl delete deployment frontend
Se vuoi, elimina il cluster che hai utilizzato:
gcloud container clusters delete CLUSTER_NAME \ --region=COMPUTE_REGION
Disattivare 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:
CLUSTER_NAME
: il nome del tuo cluster.LOCATION
: la regione o la zona Compute Engine per il tuo cluster.
Console
Vai alla pagina Security posture nella console Google Cloud.
Vai a Postura di sicurezza- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster abilitati per l'analisi delle vulnerabilità, fai clic su Seleziona i cluster.
- Seleziona le caselle di controllo dei cluster da rimuovere.
- Nel menu a discesa Seleziona azione, scegli Imposta su Disattivato.
- Fai clic su Applica.
Passaggi successivi
- Scopri di più sulla dashboard della postura di sicurezza.
- Scopri come eseguire la scansione dei carichi di lavoro per rilevare problemi di configurazione.