Informazioni sull'analisi della strategia di sicurezza di Kubernetes


Questa pagina descrive la scansione della security posture di Kubernetes, una funzionalità della dashboard della security posture che consente di identificare e risolvere in modo proattivo le vulnerabilità di sicurezza nei cluster Google Kubernetes Engine (GKE). Questa pagina spiega il controllo della configurazione dei carichi di lavoro, la visualizzazione dei bollettino sulla sicurezza e la scansione per il rilevamento delle minacce per monitorare le vulnerabilità e mitigare i rischi per la sicurezza in GKE.

Questa pagina è rivolta agli esperti di sicurezza che monitorano i cluster per rilevare eventuali problemi di sicurezza. Comprendendo la dashboard della strategia di sicurezza, puoi prendere decisioni consapevoli sulle tue configurazioni di sicurezza e scoprire come utilizzare al meglio le sue funzionalità avanzate per il rilevamento delle minacce e la gestione delle vulnerabilità. Per scoprire di più sui ruoli comuni e sugli esempi di attività a cui facciamo riferimento nei contenuti di Google Cloud, consulta Ruoli e attività comuni degli utenti di GKE Enterprise.

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

L'analisi della strategia di sicurezza di Kubernetes fornisce 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 workload

I carichi di lavoro di cui esegui il deployment su GKE devono avere una configurazione rafforzata che limiti la loro superficie di attacco. Verificare la presenza di problemi di configurazione dei workload 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 tuoi 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 della configurazione del carico 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 workload

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

Come funziona il controllo della configurazione del workload

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 aver eseguito la scansione e rilevato i problemi, GKE valuta la gravità degli eventuali problemi di configurazione rilevati in base alle misure di rafforzamento della sicurezza integrate. GKE assegna un livello di gravità che può indicare la velocità con cui rispondi al problema. La console Google Cloud mostra i risultati e le azioni consigliate che puoi intraprendere per risolvere i problemi. GKE aggiunge anche voci a Cloud Logging per il monitoraggio e il controllo.

Che cosa controlla il controllo della configurazione del workload?

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 null
  • false
Alta

Contenitori con privilegi

I container con privilegi consentono un accesso 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 null
  • false
Alta

Accesso alla porta host

L'esposizione di una porta host a un container potrebbe consentire al container di intercettare il traffico di rete che punta a una porta host o di ignorare le regole di controllo dell'accesso dell'accesso alla rete, come quelle di un 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

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

spec.volumes[*].hostPath Non definito o null 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 dei parametri del kernel non sicuri 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 a un contenitore di essere eseguito come utente root se l'istruzione runAsUser o USER nell'immagine specifica l'utente root. La mancanza di controlli di sicurezza preventivi durante l'esecuzione come utente root aumenta il rischio di attacco 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 in modo esplicito per consentire l'escalation dei privilegi al momento dell'esecuzione. Ciò consente a un processo creato all'interno del container di eseguire 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, che quindi non lo limita. 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

Inoltre, GKE controlla la presenza di associazioni RoleBinding o ClusterRoleBindings RBAC che fanno riferimento a uno dei seguenti utenti o gruppi:

  • system:anonymous
  • system:authenticated
  • system:unauthenticated

Se esistono associazioni RBAC che fanno riferimento a questi utenti o gruppi, nella dashboard della posizione di sicurezza viene visualizzato un rilevamento chiamato Accesso al cluster GKE concesso a utenti anonimi con una gravità di Media. Questi utenti e gruppi sono effettivamente anonimi e non devono essere utilizzati in RoleBinding o ClusterRoleBindings. Per ulteriori informazioni, consulta Evitare ruoli e gruppi predefiniti.

Informazioni sulla visualizzazione dei 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 sulla postura di sicurezza mostra i bollettini sulla sicurezza che interessano i cluster, i workload e i pool di nodi in modalità standard. Questa funzionalità fa parte della funzionalità Security posture di Kubernetes della dashboard della security posture e viene attivata automaticamente quando crei un cluster Autopilot o Standard. Per attivare l'analisi della security posture di Kubernetes, segui le istruzioni riportate in Eseguire automaticamente l'audit dei carichi di lavoro per rilevare i problemi di configurazione.

La console Google Cloud mostra dettagli come i cluster e le versioni interessati e le versioni delle patch consigliate per gli upgrade per mitigare la 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 Postura di sicurezza

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

Informazioni sul rilevamento delle minacce di GKE

Il rilevamento delle minacce di GKE analizza gli audit log dei cluster registrati per individuare 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 ulteriori informazioni, consulta la sezione Informazioni sul rilevamento delle minacce di GKE nella documentazione di GKE Enterprise.

Passaggi successivi