Kubernetes Kyverno bypass
Reading time: 1 minute
Originalni autor ove stranice je Guillaume
Zloupotreba pogrešne konfiguracije politika
Nabrajanje pravila
Imati pregled može pomoći da se zna koja su pravila aktivna, u kojem režimu i ko može da ih zaobiđe
$ kubectl get clusterpolicies
$ kubectl get policies
Enumerate Excluded
Za svaku ClusterPolicy i Policy, možete navesti listu isključenih entiteta, uključujući:
- Grupe:
excludedGroups
- Korisnike:
excludedUsers
- Servisne naloge (SA):
excludedServiceAccounts
- Uloge:
excludedRoles
- Klaster uloge:
excludedClusterRoles
Ovi isključeni entiteti će biti oslobođeni zahteva politike, i Kyverno neće sprovoditi politiku za njih.
Example
Let's dig into one clusterpolicy example :
$ kubectl get clusterpolicies MYPOLICY -o yaml
Potražite isključene entitete:
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:*
Unutar klastera, brojne dodatne komponente, operatori i aplikacije mogu zahtevati isključenje iz klasterske politike. Međutim, ovo se može iskoristiti ciljanjem privilegovanih entiteta. U nekim slučajevima, može se činiti da prostor imena ne postoji ili da nemate dozvolu da se pretvarate da ste korisnik, što može biti znak pogrešne konfiguracije.
Abusing ValidatingWebhookConfiguration
Drugi način za zaobilaženje politika je fokusiranje na resurs ValidatingWebhookConfiguration:
Kubernetes ValidatingWebhookConfiguration
More info
Za više informacija proverite https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/