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 hoof verskil tussen 'n ValidatingWebhookConfiguration en beleide :

  • 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 al die 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 oorgeslaan 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 met name in die values lys sal van die beleid uitgesluit word:

Kontroleer die bestaan van namespaces. 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 operateursbeperkings te omseil en dan jou voorregte met ander tegnieke te verhoog.

Abusing Roles/ClusterRoles in Kubernetes

Verwysings

Last updated