mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 23:15:48 -08:00
99 lines
6.8 KiB
Markdown
99 lines
6.8 KiB
Markdown
# Kubernetes ValidatingWebhookConfiguration
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
**इस पृष्ठ के मूल लेखक हैं** [**Guillaume**](https://www.linkedin.com/in/guillaume-chapela-ab4b9a196)
|
|
|
|
## परिभाषा
|
|
|
|
ValidatingWebhookConfiguration एक Kubernetes संसाधन है जो एक validating webhook को परिभाषित करता है, जो एक सर्वर-साइड घटक है जो आने वाले Kubernetes API अनुरोधों को पूर्वनिर्धारित नियमों और बाधाओं के सेट के खिलाफ मान्य करता है।
|
|
|
|
## उद्देश्य
|
|
|
|
ValidatingWebhookConfiguration का उद्देश्य एक validating webhook को परिभाषित करना है जो आने वाले Kubernetes API अनुरोधों पर पूर्वनिर्धारित नियमों और बाधाओं के सेट को लागू करेगा। यह webhook अनुरोधों को कॉन्फ़िगरेशन में परिभाषित नियमों और बाधाओं के खिलाफ मान्य करेगा, और यदि अनुरोध नियमों के अनुसार नहीं है तो एक त्रुटि लौटाएगा।
|
|
|
|
**उदाहरण**
|
|
|
|
यहाँ एक ValidatingWebhookConfiguration का उदाहरण है:
|
|
```yaml
|
|
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 :
|
|
|
|
<figure><img src="../../images/Kyverno.png" alt=""><figcaption><p>Kyverno.png</p></figcaption></figure>
|
|
|
|
- **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
|
|
```bash
|
|
$ kubectl get validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg -o yaml
|
|
```
|
|
Please provide the output you would like me to identify or translate.
|
|
```yaml
|
|
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}}
|
|
|
|
## संदर्भ
|
|
|
|
- [https://github.com/open-policy-agent/gatekeeper](https://github.com/open-policy-agent/gatekeeper)
|
|
- [https://kyverno.io/](https://kyverno.io/)
|
|
- [https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|