4.0 KiB
Kubernetes ValidatingWebhookConfiguration
Die oorspronklike skrywer van hierdie bladsy is Guillaume
Definisie
ValidatingWebhookConfiguration is 'n Kubernetes hulpbron wat 'n validerende webhook definieer, wat 'n bediener-kant komponent is wat inkomende Kubernetes API versoeke teen 'n stel vooraf gedefinieerde reëls en beperkings valideer.
Doel
Die doel van 'n ValidatingWebhookConfiguration is om 'n validerende webhook te definieer wat 'n stel vooraf gedefinieerde reëls en beperkings op inkomende Kubernetes API versoeke sal afdwing. Die webhook sal die versoeke teen die reëls en beperkings wat in die konfigurasie gedefinieer is, valideer, en sal 'n fout teruggee as die versoek nie aan die reëls voldoen nie.
Voorbeeld
Hier is 'n voorbeeld van 'n ValidatingWebhookConfiguration:
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: example-validation-webhook
namespace: default
webhook:
name: example-validation-webhook
clientConfig:
url: https://example.com/webhook
serviceAccountName: example-service-account
rules:
- apiGroups:
- ""
apiVersions:
- "*"
operations:
- CREATE
- UPDATE
resources:
- pods
Die hoofverskil tussen 'n ValidatingWebhookConfiguration en beleide :

Kyverno.png
- ValidatingWebhookConfiguration (VWC) : 'n Kubernetes-hulpbron wat 'n validerende webhook definieer, wat 'n bediener-kant komponent is wat inkomende Kubernetes API versoeke teen 'n stel vooraf gedefinieerde reëls en beperkings valideer.
- Kyverno ClusterPolicy: 'n Beleidsdefinisie wat 'n stel reëls en beperkings spesifiseer vir die validering en afdwinging van Kubernetes-hulpbronne, soos pods, ontplooiings en dienste
Enumerasie
$ kubectl get ValidatingWebhookConfiguration
Misbruik van Kyverno en Gatekeeper VWC
Soos ons kan sien, het alle geïnstalleerde operateurs ten minste een ValidatingWebHookConfiguration (VWC).
Kyverno en Gatekeeper is albei Kubernetes-beleidmotors wat 'n raamwerk bied om beleid oor 'n kluster te definieer en af te dwing.
Uitsonderings verwys na spesifieke reëls of toestande wat 'n beleid toelaat om omseil of gewysig te word onder sekere omstandighede, maar dit is nie die enigste manier nie!
Vir kyverno, soos daar 'n validerende beleid is, word die webhook kyverno-resource-validating-webhook-cfg bevolk.
Vir Gatekeeper is daar gatekeeper-validating-webhook-configuration YAML-lêer.
Albei kom met standaardwaardes, maar die Administrateurspanne mag daardie 2 lêers opgedateer het.
Gebruiksgeluk
$ kubectl get validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg -o yaml
Nou, identifiseer die volgende uitvoer :
namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: NotIn
values:
- default
- TEST
- YOYO
- kube-system
- MYAPP
Hierdie, kubernetes.io/metadata.name etiket verwys na die naam van die namespace. Namens ruimtes met name in die values lys sal van die beleid uitgesluit word:
Kontroleer namespaces se bestaan. Soms, as gevolg van outomatisering of verkeerde konfigurasie, mag sommige namespaces nie geskep wees nie. As jy toestemming het om 'n namespace te skep, kan jy 'n namespace met 'n naam in die values lys skep en beleid sal nie op jou nuwe namespace van toepassing wees nie.
Die doel van hierdie aanval is om verkeerde konfigurasie binne VWC te benut om operateurs se beperkings te omseil en dan jou voorregte met ander tegnieke te verhoog.
{{#ref}} abusing-roles-clusterroles-in-kubernetes/ {{#endref}}