Kubernetes Kyverno bypass
Reading time: 1 minute
L'autore originale di questa pagina è Guillaume
Abusare della misconfigurazione delle policy
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, tra cui:
- 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, potrebbe 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
Maggiori informazioni
Per ulteriori informazioni controlla https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/