Kubernetes OPA Gatekeeper बायपास

Reading time: 2 minutes

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

गलत कॉन्फ़िगरेशन का दुरुपयोग

नियमों की गणना करें

एक अवलोकन होने से यह जानने में मदद मिल सकती है कि कौन से नियम सक्रिय हैं, किस मोड में हैं और कौन इसे बायपास कर सकता है।

CLI के साथ

bash
$ kubectl api-resources | grep gatekeeper
k8smandatoryannotations                                                             constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryAnnotations
k8smandatorylabels                                                                  constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryLabel
constrainttemplates                                                                 templates.gatekeeper.sh/v1                         false        ConstraintTemplate

ConstraintTemplate और Constraint का उपयोग Open Policy Agent (OPA) Gatekeeper में Kubernetes संसाधनों पर नियम लागू करने के लिए किया जा सकता है।

bash
$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

GUI के साथ

एक ग्राफिक यूजर इंटरफेस भी Gatekeeper Policy Manager के साथ OPA नियमों तक पहुँचने के लिए उपलब्ध हो सकता है। यह "Kubernetes क्लस्टर में OPA Gatekeeper नीतियों की स्थिति देखने के लिए एक सरल read-only वेब UI है।"

खुले हुए सेवा के लिए खोजें :

bash
$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'

Excluded namespaces

जैसा कि ऊपर की छवि में दर्शाया गया है, कुछ नियम सभी namespaces या उपयोगकर्ताओं पर सार्वभौमिक रूप से लागू नहीं हो सकते हैं। इसके बजाय, वे एक व्हाइटलिस्ट आधार पर कार्य करते हैं। उदाहरण के लिए, liveness-probe बाधा को पांच निर्दिष्ट namespaces पर लागू करने से बाहर रखा गया है।

Bypass

Gatekeeper कॉन्फ़िगरेशन का व्यापक अवलोकन करते हुए, संभावित गलत कॉन्फ़िगरेशन की पहचान करना संभव है जिसे विशेषाधिकार प्राप्त करने के लिए शोषित किया जा सकता है। उन व्हाइटलिस्टेड या बाहर किए गए namespaces की तलाश करें जहाँ नियम लागू नहीं होता है, और फिर वहाँ अपना हमला करें।

Abusing Roles/ClusterRoles in Kubernetes

Abusing ValidatingWebhookConfiguration

बाधाओं को बायपास करने का एक और तरीका ValidatingWebhookConfiguration संसाधन पर ध्यान केंद्रित करना है :

Kubernetes ValidatingWebhookConfiguration

References