Informazioni sull'analisi della strategia di sicurezza per Kubernetes


Questa pagina descrive la scansione della postura di sicurezza Kubernetes, una funzionalità della dashboard della security posture che rileva problemi comuni di configurazione della sicurezza, bollettini per i carichi di lavoro Kubernetes, nonché le minacce attive di cluster GKE Enterprise.

Per attivare e utilizzare l'analisi della strategia di sicurezza di Kubernetes, consulta le seguenti risorse:

L'analisi della security posture di Kubernetes offre le seguenti funzionalità:

Prezzi

  • Livello Standard: offerto senza costi aggiuntivi in GKE.
  • Livello avanzato: incluso in GKE Enterprise.

Le voci aggiunte a Cloud Logging sono soggette ai prezzi di Cloud Logging.

Informazioni sul controllo della configurazione dei carichi di lavoro

I carichi di lavoro di cui esegui il deployment su GKE devono avere protezione avanzata che ne limita la superficie di attacco. Verificare la presenza di problemi di configurazione dei carichi di lavoro su più cluster può essere difficile da eseguire manualmente su larga scala. Puoi utilizzare la dashboard della security posture per eseguire automaticamente il controllo della configurazione di tutti i carichi di lavoro in esecuzione su più cluster e restituire risultati strategici e valutati e consigli attendibili per migliorare la tua security posture.

Il controllo delle vulnerabilità dei carichi di lavoro verifica ogni carico di lavoro di cui è stato eseguito il deployment rispetto a un sottoinsieme di criteri negli standard di sicurezza dei pod. Il controllo della configurazione del carico di lavoro viene eseguito sull'infrastruttura di Google e non utilizza risorse di calcolo sui tuoi nodi.

Vantaggi del controllo della configurazione dei carichi di lavoro

  • Automatizza il rilevamento di problemi di configurazione noti in tutti i carichi di lavoro.
  • Ricevi consigli pratici per migliorare la security posture.
  • Utilizzare la console Google Cloud per avere una visione generale della configurazione le preoccupazioni dei clienti.
  • Utilizza il logging per ottenere una traccia verificabile dei problemi per una migliore generazione di report e osservabilità.

Come funziona il controllo della configurazione dei carichi di lavoro

Per ogni carico di lavoro di cui è stato eseguito il deployment idoneo, GKE esegue continuamente la scansione della specifica del carico di lavoro e confronta i campi e i valori con i controlli definiti nel criterio di sicurezza sottostante. Ad esempio, un pod con spec.containers.securityContext.privileged=true viola lo standard di sicurezza dei pod di base e un pod con il campo spec.securityContext.runAsNonRoot impostato su false viola lo standard con restrizioni. Per un elenco dei criteri di sicurezza controllati da GKE, consulta Che cosa controlla il controllo della configurazione dei carichi di lavoro?.

Dopo la scansione e il rilevamento di problemi, GKE valuta la gravità dei problemi di configurazione rilevati in base alla protezione integrata della sicurezza e adottare misure correttive. GKE assegna classificazione di gravità dei dati sulla velocità con cui rispondi al problema. La La console Google Cloud visualizza i risultati e le azioni consigliate che puoi intraprendere per risolvere i problemi. GKE aggiunge inoltre voci a Cloud Logging per il tracciamento e l'auditing.

Che cosa controlla il controllo della configurazione dei carichi di lavoro?

Problema Campi Valori consentiti Gravità

Spazi dei nomi host

I pod che condividono spazi dei nomi dell'host consentono ai processi del pod di comunicare con i processi dell'host e di raccogliere informazioni sull'host, il che potrebbe portare a un attacco container escape.

  • spec.hostNetwork
  • spec.hostIPC
  • spec.hostPID
  • Non definito o nullo
  • false
Alta

Contenitori con privilegi

I container con privilegi consentono un accesso all'host quasi senza restrizioni. Condividono gli spazi dei nomi con l'host e non hanno gruppo di controllo, seccomp, AppArmor e limitazioni delle funzionalità.

  • spec.containers[*].securityContext.privileged
  • spec.initContainers[*].securityContext.privileged
  • spec.ephemeralContainers[*].securityContext.privileged
  • Non definito o nullo
  • false
Alta

Accesso alla porta host

L'esposizione di una porta host a un container potrebbe consentire al container intercettare il traffico di rete verso un servizio host utilizzando quella porta o bypassare regole di controllo dell'accesso alla rete, come le regole in un criterio NetworkPolicy.

  • spec.containers[*].ports[*].hostPort
  • spec.initContainers[*].ports[*].hostPort
  • spec.ephemeralContainers[*].ports[*].hostPort
  • Non definito o null
  • 0
Alta

Funzionalità non predefinite

Un container ha capacità assegnate che potrebbero consentire un attacco container escape.

  • spec.containers[*].securityContext.capabilities.add
  • spec.initContainers[*].securityContext.capabilities.add
  • spec.ephemeralContainers[*].securityContext.capabilities.add
  • Non definito o null
  • AUDIT_WRITE
  • CHOWN
  • DAC_OVERRIDE
  • FOWNER
  • FSETID
  • KILL
  • MKNOD
  • NET_BIND_SERVICE
  • SETFCAP
  • SETGID
  • SETPCAP
  • SETUID
  • SYS_CHROOT
Medio

Montaggio dei volumi del percorso dell'host

hostPath volumi montano file o directory dall'host. Questi di questi volumi presentano rischi per la sicurezza che potrebbero portare all'attacco container escape.

spec.volumes[*].hostPath Non definito o nullo Medio

Maschera /proc non predefinita

Il tipo di montaggio /proc predefinito maschera alcuni percorsi in /proc per evitare l'esposizione di percorsi che potrebbero portare a perdite di dati o a un attacco container escape. L'utilizzo di un tipo non predefinito aumenta questi rischi.

  • spec.containers[*].securityContext.procMount
  • spec.initContainers[*].securityContext.procMount
  • spec.ephemeralContainers[*].securityContext.procMount
  • Non definito o null
  • Predefinito
Medio

Maschera per sysctl non sicuri

Un pod può essere configurato per consentire la modifica di un kernel non sicuro utilizzando il file system virtuale /proc/sys. I parametri non sicuri non supportano lo spazio dei nomi, non isolano correttamente il loro effetto tra i pod, potrebbero danneggiare l'integrità del nodo o potrebbero consentire al pod di ottenere risorse che superano i suoi limiti.

spec.securityContext.sysctls[*].name
  • Non definito o null
  • kernel.shm_rmid_forced
  • net.ipv4.ip_local_port_range
  • net.ipv4.ip_unprivileged_port_start
  • net.ipv4.tcp_syncookies
  • net.ipv4.ping_group_range
Medio

Esecuzione come utente non root

Puoi consentire esplicitamente l'esecuzione di un container come utente root se runAsUser o l'istruzione USER nell'immagine specifica l'utente root. La mancanza di controlli di sicurezza preventivi per in esecuzione poiché l'utente root aumenta il rischio di container escape.

  • spec.securityContext.runAsNonRoot
  • spec.containers[*].securityContext.runAsNonRoot
  • spec.initContainers[*].securityContext.runAsNonRoot
  • spec.ephemeralContainers[*].securityContext.runAsNonRoot
true Medio

Escalation dei privilegi

Un container può essere configurato esplicitamente per consentire l'escalation dei privilegi al momento dell'esecuzione. Ciò consente un processo creato all'interno del container eseguendo un set-user-id, set-group-id o un file eseguibile per ottenere i privilegi specificati dall'eseguibile. La mancanza di un controllo di sicurezza preventivo aumenta il rischio di attacco container escape.

  • spec.containers[*].securityContext.allowPrivilegeEscalation
  • spec.initContainers[*].securityContext.allowPrivilegeEscalation
  • spec.ephemeralContainers[*].securityContext.allowPrivilegeEscalation
false Medio

Profilo AppArmor non limitato

Un contenitore può essere configurato esplicitamente per essere non limitato da AppArmor. In questo modo, al contenitore non viene applicato alcun profilo AppArmor e quindi non è vincolato da questi. Se si disabilita il controllo di sicurezza preventivo, aumenta il rischio di attacco container escape.

metadata.annotations["container.apparmor.security.beta.kubernetes.io/*"] false Bassa

Informazioni sulla visualizzazione del bollettino sulla sicurezza

Quando viene rilevata una vulnerabilità in GKE, la correggiamo e pubblichiamo un bollettino sulla sicurezza relativo alla vulnerabilità. Per informazioni su identificazione, applicazione di patch e tempistiche, consulta Applicazione di patch di sicurezza di GKE.

La dashboard della security posture visualizza i bollettini sulla sicurezza che cluster, carichi di lavoro e pool di nodi in modalità Standard. Questa funzione è una Parte della funzionalità Postura di sicurezza Kubernetes della dashboard della security posture e viene abilitato automaticamente quando crei un modello Autopilot o Standard in un cluster Kubernetes. Per abilitare l'analisi della security posture di Kubernetes, utilizza le istruzioni in Controllare automaticamente i carichi di lavoro per verificare la presenza di problemi di configurazione.

La console Google Cloud mostra dettagli come i cluster interessati, e le versioni patch consigliate per gli upgrade al fine di mitigare vulnerabilità. Vengono visualizzati solo i bollettini per i quali è disponibile una mitigazione nella regione o nella zona Google Cloud del tuo cluster.

Per visualizzare i bollettini per i cluster che hai registrato per la scansione della strategia di sicurezza di Kubernetes, vai alla dashboard della strategia di sicurezza:

Vai a Security posture

Tutti i bollettini disponibili che interessano il tuo ambiente vengono visualizzati nella Sezione Bollettini sulla sicurezza.

Informazioni sul rilevamento delle minacce per GKE

Il rilevamento delle minacce per GKE esegue la scansione dei cluster registrati. gli audit log per le minacce attive e fornisce le azioni di mitigazione consigliate. Il rilevamento delle minacce per GKE si basa sul servizio Event Threat Detection di Security Command Center. Per saperne di più, nella documentazione di GKE Enterprise consulta Informazioni sul rilevamento delle minacce per GKE.

Passaggi successivi