Kubernetes OPA Gatekeeper bypass

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Oryginalnym autorem tej strony jest Guillaume

Wykorzystywanie błędnej konfiguracji

Wyszukiwanie reguł

Posiadanie przeglądu może pomóc w zrozumieniu, które reguły są aktywne, w jakim trybie i kto może je obejść.

Z użyciem CLI

$ 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 i Constraint mogą być używane w Open Policy Agent (OPA) Gatekeeper do egzekwowania zasad na zasobach Kubernetes.

$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

Z interfejsem graficznym

Interfejs graficzny może być również dostępny do uzyskania dostępu do reguł OPA za pomocą Gatekeeper Policy Manager. Jest to “prosty tylko do odczytu interfejs webowy do przeglądania statusu polityk OPA Gatekeeper w klastrze Kubernetes.”

Szukaj wystawionej usługi:

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

Wykluczone przestrzenie nazw

Jak pokazano na powyższym obrazku, niektóre zasady mogą nie być stosowane uniwersalnie we wszystkich przestrzeniach nazw lub użytkownikach. Zamiast tego działają na zasadzie białej listy. Na przykład, ograniczenie liveness-probe jest wyłączone z zastosowania do pięciu określonych przestrzeni nazw.

Ominięcie

Mając pełny przegląd konfiguracji Gatekeepera, można zidentyfikować potencjalne błędy konfiguracyjne, które mogą być wykorzystane do uzyskania uprawnień. Szukaj przestrzeni nazw na białej liście lub wykluczonych, gdzie zasada nie ma zastosowania, a następnie przeprowadź atak tam.

Abusing Roles/ClusterRoles in Kubernetes

Wykorzystywanie ValidatingWebhookConfiguration

Innym sposobem na ominięcie ograniczeń jest skupienie się na zasobie ValidatingWebhookConfiguration:

Kubernetes ValidatingWebhookConfiguration

Odniesienia

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks