Kubernetes Kyverno bypass
Reading time: 1 minute
L'auteur original de cette page est Guillaume
Abuser des erreurs de configuration des politiques
Énumérer les règles
Avoir un aperçu peut aider à savoir quelles règles sont actives, dans quel mode et qui peut les contourner.
$ kubectl get clusterpolicies
$ kubectl get policies
Énumérer les Exclues
Pour chaque ClusterPolicy et Policy, vous pouvez spécifier une liste d'entités exclues, y compris :
- Groupes :
excludedGroups
- Utilisateurs :
excludedUsers
- Comptes de service (SA) :
excludedServiceAccounts
- Rôles :
excludedRoles
- Rôles de cluster :
excludedClusterRoles
Ces entités exclues seront exemptées des exigences de la politique, et Kyverno n'appliquera pas la politique pour elles.
Exemple
Examinons un exemple de clusterpolicy :
$ kubectl get clusterpolicies MYPOLICY -o yaml
Recherchez les entités exclues :
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:*
Dans un cluster, de nombreux composants, opérateurs et applications ajoutés peuvent nécessiter une exclusion d'une politique de cluster. Cependant, cela peut être exploité en ciblant des entités privilégiées. Dans certains cas, il peut sembler qu'un namespace n'existe pas ou que vous n'ayez pas la permission d'usurper un utilisateur, ce qui peut être un signe de mauvaise configuration.
Abuser de ValidatingWebhookConfiguration
Une autre façon de contourner les politiques est de se concentrer sur la ressource ValidatingWebhookConfiguration :
Kubernetes ValidatingWebhookConfiguration
Plus d'infos
Pour plus d'infos, consultez https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/