Kubernetes OPA Gatekeeper bypass

Reading time: 1 minute

Mwandishi wa awali wa ukurasa huu ni Guillaume

Kutumia makosa ya usanidi

Kuorodhesha sheria

Kuwa na muonekano wa jumla kunaweza kusaidia kujua ni sheria zipi zinafanya kazi, katika hali gani na nani anaweza kuzipita.

Kwa kutumia CLI

bash
$ kubectl api-resources | grep gatekeeper
k8smandatoryannotations                                                             constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryAnnotations
k8smandatorylabels                                                                  constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryLabel
constrainttemplates                                                                 templates.gatekeeper.sh/v1                         false        ConstraintTemplate

ConstraintTemplate na Constraint zinaweza kutumika katika Open Policy Agent (OPA) Gatekeeper kutekeleza sheria kwenye rasilimali za Kubernetes.

bash
$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

Kwa GUI

Kiolesura cha Mtumiaji wa Picha kinaweza pia kupatikana ili kufikia sheria za OPA na Gatekeeper Policy Manager. Ni "kiolesura rahisi cha kusoma pekee cha wavuti kwa ajili ya kuangalia hali ya sera za OPA Gatekeeper katika Kundi la Kubernetes."

Tafuta huduma iliyofichuliwa:

bash
$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'

Majimbo yaliyoachwa

Kama inavyoonyeshwa katika picha hapo juu, sheria fulani zinaweza zisitumike kwa ujumla katika majimbo yote au watumiaji. Badala yake, zinafanya kazi kwa msingi wa orodha ya ruhusa. Kwa mfano, kizuizi cha liveness-probe kimeachwa kutumika katika majimbo matano yaliyoainishwa.

Kupita

Kwa muonekano wa kina wa usanidi wa Gatekeeper, inawezekana kubaini uwezekano wa makosa ya usanidi ambayo yanaweza kutumika kupata mamlaka. Tafuta majimbo yaliyoorodheshwa au yaliyoachwa ambapo sheria haifanyi kazi, kisha fanya shambulio lako hapo.

Abusing Roles/ClusterRoles in Kubernetes

Kutumia ValidatingWebhookConfiguration

Njia nyingine ya kupita vikwazo ni kuzingatia rasilimali ya ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Marejeleo