
multi-juicer v10.3.0
सुरक्षा प्रशिक्षण और Capture The Flags के लिए कई Juice Shop इंस्टेंस को होस्ट और प्रबंधित करें।
OWASP Juice Shop के साथ CTF और सुरक्षा प्रशिक्षण आयोजित करना आमतौर पर काफी पेचीदा होता है, Juice Shop बस एक ही समय में कई उपयोगकर्ताओं द्वारा उपयोग किए जाने के लिए नहीं बनाया गया है। सभी को यह सिखाना कि अपनी मशीन पर Juice Shop कैसे शुरू करें, काम तो करता है, लेकिन बहुत अधिक कीमती समय बर्बाद करता है।
MultiJuicer आपको एक केंद्रीय kubernetes क्लस्टर पर प्रत्येक प्रतिभागी के लिए अलग Juice Shop इंस्टेंस चलाने की क्षमता देता है, ताकि स्थानीय Juice Shop इंस्टेंस की आवश्यकता के बिना इवेंट आयोजित किए जा सकें।
यह क्या करता है:
- आवश्यकता पड़ने पर गतिशील रूप से नए Juice Shop इंस्टेंस बनाता है
- एक ही डोमेन पर चलता है, एक LoadBalancer के साथ आता है जो ट्रैफ़िक को प्रतिभागी के Juice Shop इंस्टेंस तक भेजता है
- एक छोटा सा बढ़िया लीडरबोर्ड जो सभी प्रतिभागियों की प्रगति दिखाता है
- इंस्टेंस प्रबंधित करने के लिए एक उपयोगी एडमिन पेज
- Juice Shop कंटेनर के पुनः आरंभ होने की स्थिति में चैलेंज प्रगति का बैकअप और स्वतः लागू करना
- पुराने और अप्रयुक्त इंस्टेंस की स्वचालित सफाई
आर्किटेक्चर और व्यक्तिगत घटकों के विस्तृत विवरण के लिए, Architecture Documentation देखें।
👉 MultiJuicer में नए हैं? यह देखने के लिए कि प्रतिभागी कैसे पंजीकरण करते हैं, अपने JuiceShop इंस्टेंस कैसे प्राप्त करते हैं और स्कोरबोर्ड पर स्कोर कैसे ट्रैक किए जाते हैं, visual walkthrough देखें।
Installation
MultiJuicer kubernetes पर चलता है, इसे इंस्टॉल करने के लिए आपको helm की आवश्यकता होगी
helm install multi-juicer oci://ghcr.io/juice-shop/multi-juicer/helm/multi-juicer
MultiJuicer को उचित इवेंट्स में उपयोग करने से पहले आपको जिन मानों को कॉन्फ़िगर करने की आवश्यकता हो सकती है, उनकी चेकलिस्ट के लिए प्रोडक्शन नोट्स देखें।
JuiceShop v20+ AI/LLM संबंधित चुनौतियों के समर्थन के साथ MultiJuicer सेटअप करने के लिए, AI/LLM कॉन्फ़िगरेशन गाइड देखें
विशिष्ट क्लाउड प्रोवाइडर / एनवायरनमेंट के लिए इंस्टॉलेशन गाइड
सामान्यतः MultiJuicer लगभग किसी भी kubernetes क्लस्टर पर चलता है, लेकिन kubernetes में नए लोगों के लिए इसे आसान बनाने के लिए हमारे पास कुछ विशिष्ट क्लाउड प्रोवाइडर के लिए MultiJuicer इंस्टॉल करके kubernetes क्लस्टर सेटअप करने की कुछ गाइड हैं।
सेटअप को अनुकूलित करना
आपके पास स्टैक सेटअप करने के कुछ विकल्प हैं, साथ ही JuiceShop इंस्टेंस को अपनी पसंद के अनुसार अनुकूलित करने का कुछ विकल्प भी है। आप डिफ़ॉल्ट कॉन्फ़िग मान यहाँ पा सकते हैं: helm/multi-juicer/values.yaml
फ़ाइल डाउनलोड करें और सहेजें, और helm को डिफ़ॉल्ट के बजाय आपकी कॉन्फ़िग फ़ाइल का उपयोग करने के लिए निम्नलिखित चलाकर बताएं:
helm install -f values.yaml multi-juicer ./multi-juicer/helm/multi-juicer/
JuiceShop इंस्टेंस और MultiJuicer UI की थीमिंग (थीम, लोगो, सक्षम चुनौतियाँ, ...) को अनुकूलित करने के लिए, JuiceShop अनुकूलन गाइड देखें।
विस्थापन
helm delete multi-juicer
सामान्य प्रश्न
क्लस्टर को कितने कंप्यूट संसाधनों की आवश्यकता होगी?
सुरक्षित पक्ष पर रहने के लिए इस गणना का उपयोग करें:
- MultiJuicer के लिए 1GB मेमोरी और 1CPU ओवरहेड
- प्रत्येक JuiceShop इंस्टेंस के लिए 384MB और 0.1CPU * प्रतिभागियों / टीमों की संख्या
ऊपर दी गई संख्याएँ डिफ़ॉल्ट संसाधन सीमाओं को दर्शाती हैं। इन्हें बदला जा सकता है, देखें: सेटअप को अनुकूलित करना
MultiJuicer कितने उपयोगकर्ताओं को संभाल सकता है?
इसकी कोई वास्तविक निश्चित सीमा नहीं है। (हालाँकि आप एक कॉन्फ़िगर कर सकते हैं 😉) कस्टम LoadBalancer, जिसके माध्यम से व्यक्तिगत इंस्टेंस के लिए सारा ट्रैफ़िक प्रवाहित होता है, को आप जितना चाहें उतना प्रतिकृति (replicate) कर सकते हैं। आप LoadBalancer को स्वचालित रूप से स्केल करने के लिए Horizontal Pod Autoscaler भी संलग्न कर सकते हैं।
कस्टम LoadBalancer क्यों?
कुछ विशेष आवश्यकताएँ हैं जिन्हें हमने किसी भी पूर्व-निर्मित लोड बैलेंसर से आसानी से हल नहीं पाया:
- किसी डिप्लॉयमेंट के लिए उपयोगकर्ताओं की संख्या को केवल किसी विशिष्ट टीम के सदस्यों तक सीमित करना।
- लोड बैलेंसर का कुकी सुरक्षित होना चाहिए और किसी अन्य इंस्टेंस तक पहुँचने के लिए इसे आसानी से नकली (spoof) नहीं बनाया जा सकना चाहिए।
- नए इंस्टेंस के शुरू होने को संभालना।
यदि आपके पास कस्टम लोड बैलेंसर के बिना इन समस्याओं को हल करने के लिए शानदार विचार हैं, तो कृपया हमें लिखें, हमें आपसे सुनना अच्छा लगेगा!
प्रत्येक टीम के लिए अलग kubernetes डिप्लॉयमेंट क्यों?
इसके कुछ बहुत अच्छे कारण हैं:
- किसी टीम के इंस्टेंस को अलग से हटाने की क्षमता। सक्रिय टीमों के इंस्टेंस को हटाए बिना सुरक्षित रूप से स्केल डाउन करना स्केल्ड डिप्लॉयमेंट के साथ वास्तव में मुश्किल है। आप केवल वांछित स्केल चुन सकते हैं, यह नहीं कि कौन से पॉड रखे जाएँ और कौन से हटाए जाएँ।
- यह सुनिश्चित करने के लिए कि पॉड के पुनः निर्मित होने के बाद भी पॉड टीमों के साथ उचित रूप से जुड़े रहें। अलग डिप्लॉयमेंट के साथ यह कोई समस्या नहीं है और स्केल्ड डिप्लॉयमेंट के साथ यह वास्तव में कठिन है।
- डिप्लॉयमेंट नाम में टीम का नाम एम्बेड करने की क्षमता। यह एक बेतुका कारण लग सकता है, लेकिन केवल
kubectlका उपयोग करके डिबगिंग को बहुत आसान बना देता है।
kubectl का उपयोग करके JuiceShop को आसानी से कैसे प्रबंधित करें?
आप kubectl की custom-columns सुविधा का उपयोग करके सभी JuiceShops को प्रासंगिक जानकारी के साथ सूचीबद्ध कर सकते हैं।
$ kubectl get -l app.kubernetes.io/name=juice-shop -o custom-columns="TEAM:metadata.labels.team,SOLVED-CHALLENGES:metadata.annotations.multi-juicer\.owasp-juice\.shop/challengesSolved,LAST-REQUEST:metadata.annotations.multi-juicer\.owasp-juice\.shop/lastRequestReadable" deployments
TEAM SOLVED-CHALLENGES LAST-REQUEST
foobar 3 Wed May 4 2042 18:14:22 GMT+0000 (Coordinated Universal Time)
team-42 0 Wed May 4 2042 18:14:30 GMT+0000 (Coordinated Universal Time)
the-empire 0 Wed May 4 2042 18:14:46 GMT+0000 (Coordinated Universal Time)
यह प्रोजेक्ट कहाँ से आया
यह प्रोजेक्ट iteratec में शुरू हुआ, जो एक जर्मन सॉफ़्टवेयर डेवलपमेंट कंपनी है, ताकि अपने ही डेवलपर्स और अपने ग्राहकों के लिए उनके सुरक्षा प्रशिक्षण आयोजित किए जा सकें। इसके बाद प्रोजेक्ट को 2019 में ओपन सोर्स किया गया और 2023 में OWASP संगठन / OWASP Juice Shop प्रोजेक्ट को दान कर दिया गया।
हमसे बात करें!
आप हमसे OWASP Slack Workspace के #project-juiceshop चैनल में संपर्क कर सकते हैं। हमें आपके किसी भी फ़ीडबैक या उपयोग रिपोर्ट को सुनना अच्छा लगेगा। यदि आप पहले से OWASP Slack Workspace में नहीं हैं, तो आप इस लिंक के माध्यम से जुड़ सकते हैं।