मैं 20 से अधिक वर्षों से आईटी में काम कर रहा हूं, लेकिन किसी तरह मुझे कंटेनरों तक पहुंचने का मौका नहीं मिला। सैद्धांतिक रूप से, मैं समझ गया कि वे कैसे संरचित थे और वे कैसे काम करते थे। लेकिन चूंकि मैंने अभ्यास में उनका कभी सामना नहीं किया था, इसलिए मुझे यकीन नहीं था कि उनके हुड के नीचे के गियर वास्तव में कैसे घूमते और घूमते थे।
इसके अलावा, मुझे नहीं पता था कि उनकी सुरक्षा कैसी थी. लेकिन फिर से, सिद्धांत अच्छा लगता है, और पुराना गाना "जैसे-जैसे सुरक्षा बढ़ती है, प्रयोज्यता घटती है" मेरे दिमाग में अटक गया है। इसलिए मैंने सोचा कि चूंकि कंटेनरों के साथ सब कुछ करना इतना आसान है, तो वहां सुरक्षा भी कम है। जैसा कि बाद में पता चला, मैं सही था।
शीघ्र शुरुआत करने के लिए, मैंने पाठ्यक्रमों के लिए साइन अप किया
शीला ए. बर्टा और सोल ओज़ान द्वारा पढ़ाया जाने वाला पाठ्यक्रम तुरंत इस विवरण के साथ शुरू हुआ कि डॉकर कंटेनर कैसे काम करते हैं और कुबेरनेट्स में तैनात होने पर वे क्या यात्रा करते हैं। यह पूरी तरह से व्यावहारिक कक्षा थी - छात्रों को कक्षा से पहले अपनी मशीनों पर डॉकर और माइक्रोके8 इंस्टॉल करना था - यह देखने का एक शानदार तरीका कि उपकरण एक-दूसरे के साथ कैसे इंटरैक्ट करते हैं, कमजोर बिंदुओं को ढूंढते हैं और, सबसे महत्वपूर्ण बात, उन्हें ब्लॉक करने का प्रयास करते हैं।
दुर्भाग्य से, हालाँकि पाठ्यक्रमों में दो दिनों के बाद "राजकुमार" बनने का वादा किया गया था, मुझे लगा कि सब कुछ अभी शुरू हुआ था, और मुझे अभी भी बहुत कुछ सीखना था।
मेरी उदात्त टिप्पणियों पर विचार करने से पहले, यह समझाना महत्वपूर्ण है कि कंटेनर क्या है। विकास की दुनिया में, आपकी व्यक्तिगत मशीन पर लिखे गए कोड का पूरी तरह से काम करना सामान्य माना जाता है, लेकिन जब आप इसे कहीं सर्वर पर चलाने का प्रयास करते हैं, तो यह काम नहीं करता है। कंटेनर स्वयं-निहित मशीनें प्रदान करके इस समस्या को दूर करने का प्रयास करते हैं जिन्हें आप आसानी से एक सर्वर से दूसरे सर्वर पर ले जा सकते हैं, यह जानते हुए कि वे हमेशा काम करेंगे। जैसा कि नाम से पता चलता है, उनमें काम पूरा करने के लिए आवश्यक कोड, लाइब्रेरी और अन्य सॉफ़्टवेयर होते हैं। दूसरी ओर, कुबेरनेट्स है
लाल और नीली टीम के दृष्टिकोण से मेरे कुछ निष्कर्ष नीचे दिए गए हैं।
रेड टीम
अधिकांश कंटेनर सामग्री रूट के रूप में चलती है: इसका मतलब यह है कि यदि कंटेनर से समझौता किया गया है, तो आपको कंटेनर तक पूरी पहुंच प्राप्त होगी। इससे अगले चरण बहुत आसान हो जाते हैं.
किसी कंटेनर के अंदर docker.sock लगाना खतरनाक है: यदि आपके पास एक कंटेनर के अंदर रूट है और एक कंटेनर के अंदर डॉकर भी स्थापित है जिसमें एक डॉकर सॉकेट (/var/run/docker.sock) है, तो आपके पास किसी भी अन्य कंटेनर तक पहुंच सहित पूरे क्लस्टर का पता लगाने की क्षमता है। ऐसी पहुंच को नेटवर्क अलगाव या अन्य माध्यमों से रोका नहीं जा सकता।
पर्यावरण चर में अक्सर गुप्त डेटा होता है: ज्यादातर मामलों में, लोग सामान्य पर्यावरण चर का उपयोग करके कंटेनर में पासवर्ड भेजते हैं। इसलिए यदि आपके पास खाते तक पहुंच है, तो आप बाद में अपनी शक्तियों का विस्तार करने के लिए इन पर्यावरण चर की जासूसी कर सकते हैं।
डॉकर एपीआई बहुत सारी जानकारी दे सकता है: डॉकर एपीआई, जब डिफ़ॉल्ट रूप से कॉन्फ़िगर किया जाता है, तो प्राधिकरण के बिना चलता है और ढेर सारी जानकारी उत्पन्न कर सकता है। Shodan का उपयोग करके, आप आसानी से खुले बंदरगाहों की एक सूची पा सकते हैं, फिर क्लस्टर के बारे में विस्तृत जानकारी प्राप्त कर सकते हैं - और इसके पूर्ण कैप्चर के लिए आगे बढ़ सकते हैं। ट्रेंडमाइक्रो ने इस बारे में लिखा
नीली टीम
कंटेनर सामग्री को रूट के रूप में न चलाएं: हालांकि रूट के रूप में चलाना आसान है, आपको ऐसा नहीं करना चाहिए। इसके बजाय, यूआईडी प्रदर्शित करके रीसेट अनुमतियों के साथ एप्लिकेशन चलाएं, या तो सीएलआई से चलते समय --user विकल्प का उपयोग करें, या Dockerfile में USER निर्दिष्ट करके।
कंटेनरों में सॉफ़्टवेयर स्थापित करने की अनुमति न दें: लगभग हर आक्रमण की शुरुआत कुछ न कुछ रोपने से होती है। nmap से ifconfig से लेकर Docker तक (कंटेनर के अंदर), कंटेनर में कुछ भी इंस्टॉल करना आम बात हो गई है। इसी कारण से, आपको हमेशा सभी अप्रयुक्त पोर्ट को ब्लॉक कर देना चाहिए। यह आपकी मशीन के संक्रमित होने पर नियंत्रण आदेशों को प्रसारित होने से रोकने में भी मदद करता है। प्रोग्रामों की स्थापना को रोकने के अलावा, यह सुनिश्चित करना उचित है कि कार्य को पूरा करने के लिए आवश्यक न्यूनतम संख्या में एप्लिकेशन कंटेनर में ही स्थापित हों।
डॉकर.सॉक को सुरक्षित रखें: इसे संरक्षित किया जाना चाहिए क्योंकि कंटेनर और क्लस्टर के बीच संचार इस सॉकेट के माध्यम से संसाधित होता है। चूँकि मैं इस लेख में विस्तार में नहीं जाना चाहता, इसलिए पढ़ें
पर्यावरण चर के बजाय डॉकर रहस्यों का उपयोग करें: रहस्य हैं
यदि लेख ने कंटेनरों में आपकी रुचि जगाई है, तो आप आसानी से डॉकर या माइक्रोक8एस (कुबेरनेट्स का एक छोटा संस्करण) स्थापित कर सकते हैं।
इंस्टालेशन के बाद आप जा सकते हैं
यदि आप डॉकर पर एक व्यापक पाठ्यक्रम लेना चाहते हैं या इसकी आवश्यकता है, जिसमें व्यावहारिक वक्ता इसके सभी उपकरणों की जांच करते हैं: बुनियादी अमूर्त से लेकर नेटवर्क पैरामीटर, विभिन्न ऑपरेटिंग सिस्टम और प्रोग्रामिंग भाषाओं के साथ काम करने की बारीकियां, तो प्रयास करें "
स्रोत: www.habr.com