Kubernetes क्लस्टर में सुरक्षा कमजोरियों की तलाश करें
kube-hunter अब सक्रिय रूप से विकसित नहीं किया जा रहा है। यदि आप ज्ञात कमजोरियों के लिए Kubernetes क्लस्टर स्कैन करने में रुचि रखते हैं, तो हम Trivy का उपयोग करने की सलाह देते हैं। विशेष रूप से, Trivy का Kubernetes गलत-कॉन्फ़िगरेशन स्कैनिंग और KBOM भेद्यता स्कैनिंग। Trivy Docs में और जानें।
kube-hunter Kubernetes क्लस्टर में सुरक्षा कमजोरियों की खोज करता है। यह टूल Kubernetes वातावरण में सुरक्षा मुद्दों के बारे में जागरूकता और दृश्यता बढ़ाने के लिए विकसित किया गया था। आपको kube-hunter को उस Kubernetes क्लस्टर पर नहीं चलाना चाहिए जो आपका नहीं है!
kube-hunter चलाएँ: kube-hunter एक कंटेनर (aquasec/kube-hunter) के रूप में उपलब्ध है, और हम kube-hunter.aquasec.com पर एक वेब साइट भी प्रदान करते हैं जहाँ आप एक टोकन प्राप्त करने के लिए ऑनलाइन पंजीकरण कर सकते हैं जो आपको परिणाम ऑनलाइन देखने और साझा करने की अनुमति देता है। आप नीचे बताए अनुसार Python कोड स्वयं भी चला सकते हैं।
कमजोरियों का अन्वेषण करें: kube-hunter ज्ञानकोष में खोज योग्य कमजोरियों और मुद्दों के बारे में लेख शामिल हैं। जब kube-hunter कोई मुद्दा रिपोर्ट करता है, तो वह अपना VID (भेद्यता आईडी) दिखाएगा ताकि आप इसे KB में https://aquasecurity.github.io/kube-hunter/ पर देख सकें।
यदि आप Kubernetes ATT&CK मैट्रिक्स के साथ kube-hunter के एकीकरण में रुचि रखते हैं तो पढ़ना जारी रखें
kube-hunter अब Kubernetes ATT&CK मैट्रिक्स के नए प्रारूप का समर्थन करता है। जबकि kube-hunter की कमजोरियाँ क्लस्टर के अंदर (या बाहर) एक हमलावर की नकल करने के लिए डिज़ाइन की गई रचनात्मक तकनीकों का एक संग्रह हैं, Mitre का ATT&CK ऐसा करने के लिए अधिक सामान्यीकृत श्रेणियों को परिभाषित करता है।
आप kube-hunter कमजोरियों को एक हमलावर के लिए छोटे कदमों के रूप में सोच सकते हैं, जो एक अधिक सामान्य तकनीक के ट्रैक का अनुसरण करता है जिसे वह लक्षित करेगा। kube-hunter के अधिकांश शिकारी और कमजोरियाँ इन तकनीकों के अंतर्गत आ सकती हैं, इसलिए हम मैट्रिक्स मानक का पालन करने के लिए आगे बढ़े हैं।
कुछ kube-hunter कमजोरियाँ जिन्हें हम Mitre तकनीक से मैप नहीं कर सके, उनके साथ General कीवर्ड जोड़ा गया है

kube-hunter चलाने के तीन अलग-अलग तरीके हैं, प्रत्येक आपके क्लस्टर में कमजोरियों का पता लगाने के लिए एक अलग दृष्टिकोण प्रदान करता है:
kube-hunter को किसी भी मशीन (आपके लैपटॉप सहित) पर चलाएँ, रिमोट स्कैनिंग चुनें और अपने Kubernetes क्लस्टर का IP पता या डोमेन नाम दें। यह आपको आपके Kubernetes सेटअप का एक हमलावर-दृष्टिकोण देगा।
आप kube-hunter को सीधे क्लस्टर में एक मशीन पर चला सकते हैं, और सभी स्थानीय नेटवर्क इंटरफेस को प्रोब करने का विकल्प चुन सकते हैं।
आप kube-hunter को क्लस्टर के भीतर एक पॉड में भी चला सकते हैं। यह इंगित करता है कि यदि आपके एप्लिकेशन पॉड में से एक से समझौता किया जाता है (उदाहरण के लिए, सॉफ़्टवेयर भेद्यता के माध्यम से) तो आपका क्लस्टर कितना उजागर होगा। (--pod फ़्लैग)
पहले इन पूर्वावश्यकताओं की जाँच करें।
डिफ़ॉल्ट रूप से, kube-hunter एक इंटरैक्टिव सत्र खोलेगा, जिसमें आप निम्नलिखित स्कैन विकल्पों में से एक का चयन कर सकेंगे। आप कमांड लाइन से मैन्युअल रूप से भी स्कैन विकल्प निर्दिष्ट कर सकते हैं। ये आपके विकल्प हैं:
शिकार के लिए रिमोट मशीनों को निर्दिष्ट करने के लिए, विकल्प 1 चुनें या --remote विकल्प का उपयोग करें। उदाहरण:
kube-hunter --remote some.node.com
इंटरफ़ेस स्कैनिंग निर्दिष्ट करने के लिए, आप --interface विकल्प का उपयोग कर सकते हैं (यह मशीन के सभी नेटवर्क इंटरफेस को स्कैन करेगा)। उदाहरण:
kube-hunter --interface
स्कैन करने के लिए एक विशिष्ट CIDR निर्दिष्ट करने के लिए, --cidr विकल्प का उपयोग करें। उदाहरण:
kube-hunter --cidr 192.168.0.0/24
--k8s-auto-discover-nodes फ़्लैग सेट करें ताकि क्लस्टर में सभी नोड्स के लिए Kubernetes से क्वेरी करें, और फिर उन सभी को स्कैन करने का प्रयास करें। डिफ़ॉल्ट रूप से, यह Kubernetes API से कनेक्ट करने के लिए इन-क्लस्टर कॉन्फ़िग का उपयोग करेगा। यदि आप एक स्पष्ट kubeconfig फ़ाइल का उपयोग करना चाहते हैं, तो --kubeconfig /location/of/kubeconfig/file सेट करें।
यह भी ध्यान दें कि --pod मोड का उपयोग करते समय हमेशा ऐसा किया जाता है।
एक हमलावर की नकल करने के लिए उसके शुरुआती चरणों में, kube-hunter को शिकार के लिए किसी प्रमाणीकरण की आवश्यकता नहीं होती है।
प्रतिरूपण (Impersonate) - आप --service-account-token फ़्लैग के साथ मैन्युअल रूप से सेवा-खाता रहस्य (service-account secret) का JWT Bearer टोकन पास करके शिकार करते समय उपयोग करने के लिए kube-hunter को एक विशिष्ट सेवा खाता टोकन प्रदान कर सकते हैं।
उदाहरण:
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
--pod फ़्लैग के साथ चलाते समय, kube-hunter शिकार के दौरान मिलने वाली सेवाओं को प्रमाणित करने के लिए पॉड के अंदर माउंट किए गए सेवा खाता टोकन का उपयोग करता है।
--service-account-token फ़्लैग को प्राथमिकता मिलती है।सक्रिय खोज एक विकल्प है जिसमें kube-hunter आगे की कमजोरियों का पता लगाने के लिए मिली कमजोरियों का शोषण करेगा। सामान्य और सक्रिय खोज के बीच मुख्य अंतर यह है कि एक सामान्य खोज कभी भी क्लस्टर की स्थिति को नहीं बदलेगी, जबकि सक्रिय खोज संभावित रूप से क्लस्टर पर स्थिति-बदलने वाले संचालन कर सकती है, जो हानिकारक हो सकता है।
डिफ़ॉल्ट रूप से, kube-hunter सक्रिय खोज नहीं करता है। किसी क्लस्टर को सक्रिय रूप से शिकार करने के लिए, --active फ़्लैग का उपयोग करें। उदाहरण:
kube-hunter --remote some.domain.com --active
आप --list विकल्प के साथ परीक्षणों की सूची देख सकते हैं: उदाहरण:
kube-hunter --list
सक्रिय खोज परीक्षणों के साथ-साथ निष्क्रिय देखने के लिए:
kube-hunter --list --active
अपने नोड्स नेटवर्क का केवल एक मैपिंग देखने के लिए, --mapping विकल्प के साथ चलाएँ। उदाहरण:
kube-hunter --cidr 192.168.0.0/24 --mapping
यह kube-hunter द्वारा पाए गए सभी Kubernetes नोड्स को आउटपुट करेगा।
लॉगिंग को नियंत्रित करने के लिए, आप --log विकल्प का उपयोग करके एक लॉग स्तर निर्दिष्ट कर सकते हैं। उदाहरण:
kube-hunter --active --log WARNING
उपलब्ध लॉग स्तर हैं:
डिफ़ॉल्ट रूप से, रिपोर्ट stdout पर भेजी जाएगी, लेकिन आप --dispatch विकल्प का उपयोग करके विभिन्न विधियाँ निर्दिष्ट कर सकते हैं। उदाहरण:
kube-hunter --report json --dispatch http
उपलब्ध डिस्पैच विधियाँ हैं: