Files
hacktricks-cloud/src/pentesting-cloud/kubernetes-security/kubernetes-validatingwebhookconfiguration.md

6.8 KiB

Kubernetes ValidatingWebhookConfiguration

{{#include ../../banners/hacktricks-training.md}}

इस पृष्ठ के मूल लेखक हैं Guillaume

परिभाषा

ValidatingWebhookConfiguration एक Kubernetes संसाधन है जो एक validating webhook को परिभाषित करता है, जो एक सर्वर-साइड घटक है जो आने वाले Kubernetes API अनुरोधों को पूर्वनिर्धारित नियमों और बाधाओं के सेट के खिलाफ मान्य करता है।

उद्देश्य

ValidatingWebhookConfiguration का उद्देश्य एक validating webhook को परिभाषित करना है जो आने वाले Kubernetes API अनुरोधों पर पूर्वनिर्धारित नियमों और बाधाओं के सेट को लागू करेगा। यह webhook अनुरोधों को कॉन्फ़िगरेशन में परिभाषित नियमों और बाधाओं के खिलाफ मान्य करेगा, और यदि अनुरोध नियमों के अनुसार नहीं है तो एक त्रुटि लौटाएगा।

उदाहरण

यहाँ एक 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

The main difference between a ValidatingWebhookConfiguration and policies :

Kyverno.png

  • ValidatingWebhookConfiguration (VWC) : एक Kubernetes संसाधन जो एक validating webhook को परिभाषित करता है, जो एक सर्वर-साइड घटक है जो आने वाले Kubernetes API अनुरोधों को पूर्वनिर्धारित नियमों और बाधाओं के सेट के खिलाफ मान्य करता है।
  • Kyverno ClusterPolicy: एक नीति परिभाषा जो Kubernetes संसाधनों, जैसे pods, deployments, और services के लिए मान्य करने और लागू करने के लिए नियमों और बाधाओं के सेट को निर्दिष्ट करती है।

Enumeration

$ kubectl get ValidatingWebhookConfiguration

Abusing Kyverno and Gatekeeper VWC

जैसा कि हम देख सकते हैं, सभी स्थापित ऑपरेटरों के पास कम से कम एक ValidatingWebHookConfiguration(VWC) है।

Kyverno और Gatekeeper दोनों Kubernetes नीति इंजन हैं जो एक क्लस्टर में नीतियों को परिभाषित और लागू करने के लिए एक ढांचा प्रदान करते हैं।

Exceptions उन विशिष्ट नियमों या शर्तों को संदर्भित करते हैं जो किसी नीति को कुछ परिस्थितियों में बायपास या संशोधित करने की अनुमति देते हैं, लेकिन यह एकमात्र तरीका नहीं है!

kyverno के लिए, जैसे ही एक मान्यकरण नीति होती है, वेबहुक kyverno-resource-validating-webhook-cfg भरा जाता है।

Gatekeeper के लिए, gatekeeper-validating-webhook-configuration YAML फ़ाइल है।

दोनों डिफ़ॉल्ट मानों के साथ आते हैं, लेकिन व्यवस्थापक टीमें उन 2 फ़ाइलों को अपडेट कर सकती हैं।

Use Case

$ kubectl get validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg -o yaml

Please provide the output you would like me to identify or translate.

namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: NotIn
values:
- default
- TEST
- YOYO
- kube-system
- MYAPP

यहाँ, kubernetes.io/metadata.name लेबल नामस्थान के नाम को संदर्भित करता है। values सूची में नाम वाले नामस्थान नीति से बाहर रखे जाएंगे:

नामस्थान की उपस्थिति की जांच करें। कभी-कभी, स्वचालन या गलत कॉन्फ़िगरेशन के कारण, कुछ नामस्थान नहीं बनाए गए हो सकते हैं। यदि आपके पास नामस्थान बनाने की अनुमति है, तो आप values सूची में नाम के साथ एक नामस्थान बना सकते हैं और नीतियाँ आपके नए नामस्थान पर लागू नहीं होंगी।

इस हमले का लक्ष्य गलत कॉन्फ़िगरेशन का लाभ उठाना है जो VWC के अंदर है ताकि ऑपरेटर की प्रतिबंधों को बायपास किया जा सके और फिर अन्य तकनीकों के साथ आपके विशेषाधिकारों को बढ़ाया जा सके।

{{#ref}} abusing-roles-clusterroles-in-kubernetes/ {{#endref}}

संदर्भ

{{#include ../../banners/hacktricks-training.md}}