Kubernetes Kyverno bypass

L'autore originale di questa pagina è Guillaume

Abusare della misconfigurazione delle politiche

Enumerare le regole

Avere una panoramica può aiutare a sapere quali regole sono attive, in quale modalità e chi può bypassarle.

$ kubectl get clusterpolicies
$ kubectl get policies

Enumerare Esclusi

Per ogni ClusterPolicy e Policy, puoi specificare un elenco di entità escluse, inclusi:

  • Gruppi: excludedGroups

  • Utenti: excludedUsers

  • Account di Servizio (SA): excludedServiceAccounts

  • Ruoli: excludedRoles

  • Ruoli di Cluster: excludedClusterRoles

Queste entità escluse saranno esenti dai requisiti della policy, e Kyverno non applicherà la policy per loro.

Esempio

Esploriamo un esempio di clusterpolicy :

$ kubectl get clusterpolicies MYPOLICY -o yaml

Cerca le entità escluse :

exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*

All'interno di un cluster, numerosi componenti, operatori e applicazioni aggiunti possono richiedere l'esclusione da una policy del cluster. Tuttavia, questo può essere sfruttato prendendo di mira entità privilegiate. In alcuni casi, può sembrare che uno spazio dei nomi non esista o che tu non abbia il permesso di impersonare un utente, il che può essere un segno di misconfigurazione.

Abusare di ValidatingWebhookConfiguration

Un altro modo per bypassare le policy è concentrarsi sulla risorsa ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Last updated