Kubernetes ValidatingWebhookConfiguration
The original author of this page is Guillaume
Definition
ValidatingWebhookConfiguration to zasób Kubernetes, który definiuje webhook walidacyjny, będący komponentem po stronie serwera, który weryfikuje przychodzące żądania API Kubernetes zgodnie z zestawem zdefiniowanych reguł i ograniczeń.
Purpose
Celem ValidatingWebhookConfiguration jest zdefiniowanie webhooka walidacyjnego, który będzie egzekwował zestaw zdefiniowanych reguł i ograniczeń na przychodzących żądaniach API Kubernetes. Webhook zweryfikuje żądania zgodnie z regułami i ograniczeniami zdefiniowanymi w konfiguracji i zwróci błąd, jeśli żądanie nie będzie zgodne z regułami.
Example
Here is an example of a ValidatingWebhookConfiguration:
Główna różnica między ValidatingWebhookConfiguration a politykami :
ValidatingWebhookConfiguration (VWC) : Zasób Kubernetes, który definiuje webhook walidacyjny, który jest komponentem po stronie serwera, walidującym przychodzące żądania API Kubernetes zgodnie z zestawem zdefiniowanych reguł i ograniczeń.
Kyverno ClusterPolicy: Definicja polityki, która określa zestaw reguł i ograniczeń do walidacji i egzekwowania zasobów Kubernetes, takich jak pod, wdrożenia i usługi
Enumeration
Wykorzystywanie Kyverno i Gatekeeper VWC
Jak widać, wszyscy zainstalowani operatorzy mają przynajmniej jedną ValidatingWebHookConfiguration (VWC).
Kyverno i Gatekeeper to silniki polityki Kubernetes, które zapewniają ramy do definiowania i egzekwowania polityk w całym klastrze.
Wyjątki odnoszą się do konkretnych reguł lub warunków, które pozwalają na ominięcie lub modyfikację polityki w określonych okolicznościach, ale to nie jest jedyny sposób!
Dla kyverno, gdy istnieje polityka walidacyjna, webhook kyverno-resource-validating-webhook-cfg
jest wypełniany.
Dla Gatekeepera istnieje plik YAML gatekeeper-validating-webhook-configuration
.
Oba pochodzą z domyślnymi wartościami, ale zespoły administratorów mogą zaktualizować te 2 pliki.
Przykład użycia
Teraz zidentyfikuj następujące wyjście:
Here, kubernetes.io/metadata.name
label odnosi się do nazwy przestrzeni nazw. Przestrzenie nazw z nazwami w liście values
będą wykluczone z polityki:
Sprawdź istnienie przestrzeni nazw. Czasami, z powodu automatyzacji lub błędnej konfiguracji, niektóre przestrzenie nazw mogły nie zostać utworzone. Jeśli masz uprawnienia do tworzenia przestrzeni nazw, możesz utworzyć przestrzeń nazw z nazwą w liście values
, a polityki nie będą miały zastosowania do twojej nowej przestrzeni nazw.
Celem tego ataku jest wykorzystanie błędnej konfiguracji wewnątrz VWC w celu obejścia ograniczeń operatorów, a następnie podniesienie swoich uprawnień za pomocą innych technik.
References
Last updated