विशिष्ट डॉकर और कुबेरनेट्स इंस्टॉलेशन की (लापता) सुरक्षा की खोज

विशिष्ट डॉकर और कुबेरनेट्स इंस्टॉलेशन की (लापता) सुरक्षा की खोज
मैं 20 से अधिक वर्षों से आईटी में काम कर रहा हूं, लेकिन किसी तरह मुझे कंटेनरों तक पहुंचने का मौका नहीं मिला। सैद्धांतिक रूप से, मैं समझ गया कि वे कैसे संरचित थे और वे कैसे काम करते थे। लेकिन चूंकि मैंने अभ्यास में उनका कभी सामना नहीं किया था, इसलिए मुझे यकीन नहीं था कि उनके हुड के नीचे के गियर वास्तव में कैसे घूमते और घूमते थे।

इसके अलावा, मुझे नहीं पता था कि उनकी सुरक्षा कैसी थी. लेकिन फिर से, सिद्धांत अच्छा लगता है, और पुराना गाना "जैसे-जैसे सुरक्षा बढ़ती है, प्रयोज्यता घटती है" मेरे दिमाग में अटक गया है। इसलिए मैंने सोचा कि चूंकि कंटेनरों के साथ सब कुछ करना इतना आसान है, तो वहां सुरक्षा भी कम है। जैसा कि बाद में पता चला, मैं सही था।

शीघ्र शुरुआत करने के लिए, मैंने पाठ्यक्रमों के लिए साइन अप किया काली टोपी 2020 शीर्षक "लत्ता से धन तक: डॉकर झुंड और कुबेरनेट्स पर्यावरण की पैठ और सुरक्षा'.

शीला ए. बर्टा और सोल ओज़ान द्वारा पढ़ाया जाने वाला पाठ्यक्रम तुरंत इस विवरण के साथ शुरू हुआ कि डॉकर कंटेनर कैसे काम करते हैं और कुबेरनेट्स में तैनात होने पर वे क्या यात्रा करते हैं। यह पूरी तरह से व्यावहारिक कक्षा थी - छात्रों को कक्षा से पहले अपनी मशीनों पर डॉकर और माइक्रोके8 इंस्टॉल करना था - यह देखने का एक शानदार तरीका कि उपकरण एक-दूसरे के साथ कैसे इंटरैक्ट करते हैं, कमजोर बिंदुओं को ढूंढते हैं और, सबसे महत्वपूर्ण बात, उन्हें ब्लॉक करने का प्रयास करते हैं।

दुर्भाग्य से, हालाँकि पाठ्यक्रमों में दो दिनों के बाद "राजकुमार" बनने का वादा किया गया था, मुझे लगा कि सब कुछ अभी शुरू हुआ था, और मुझे अभी भी बहुत कुछ सीखना था।

विशिष्ट डॉकर और कुबेरनेट्स इंस्टॉलेशन की (लापता) सुरक्षा की खोज

मेरी उदात्त टिप्पणियों पर विचार करने से पहले, यह समझाना महत्वपूर्ण है कि कंटेनर क्या है। विकास की दुनिया में, आपकी व्यक्तिगत मशीन पर लिखे गए कोड का पूरी तरह से काम करना सामान्य माना जाता है, लेकिन जब आप इसे कहीं सर्वर पर चलाने का प्रयास करते हैं, तो यह काम नहीं करता है। कंटेनर स्वयं-निहित मशीनें प्रदान करके इस समस्या को दूर करने का प्रयास करते हैं जिन्हें आप आसानी से एक सर्वर से दूसरे सर्वर पर ले जा सकते हैं, यह जानते हुए कि वे हमेशा काम करेंगे। जैसा कि नाम से पता चलता है, उनमें काम पूरा करने के लिए आवश्यक कोड, लाइब्रेरी और अन्य सॉफ़्टवेयर होते हैं। दूसरी ओर, कुबेरनेट्स है कंटेनरों के लिए ऑर्केस्ट्रेशन प्लेटफ़ॉर्म. सिद्धांत रूप में, इसका उपयोग सैकड़ों या हजारों विभिन्न कंटेनरों को निर्बाध रूप से प्रबंधित करने के लिए किया जा सकता है।

लाल और नीली टीम के दृष्टिकोण से मेरे कुछ निष्कर्ष नीचे दिए गए हैं।

रेड टीम

अधिकांश कंटेनर सामग्री रूट के रूप में चलती है: इसका मतलब यह है कि यदि कंटेनर से समझौता किया गया है, तो आपको कंटेनर तक पूरी पहुंच प्राप्त होगी। इससे अगले चरण बहुत आसान हो जाते हैं.

किसी कंटेनर के अंदर docker.sock लगाना खतरनाक है: यदि आपके पास एक कंटेनर के अंदर रूट है और एक कंटेनर के अंदर डॉकर भी स्थापित है जिसमें एक डॉकर सॉकेट (/var/run/docker.sock) है, तो आपके पास किसी भी अन्य कंटेनर तक पहुंच सहित पूरे क्लस्टर का पता लगाने की क्षमता है। ऐसी पहुंच को नेटवर्क अलगाव या अन्य माध्यमों से रोका नहीं जा सकता।

पर्यावरण चर में अक्सर गुप्त डेटा होता है: ज्यादातर मामलों में, लोग सामान्य पर्यावरण चर का उपयोग करके कंटेनर में पासवर्ड भेजते हैं। इसलिए यदि आपके पास खाते तक पहुंच है, तो आप बाद में अपनी शक्तियों का विस्तार करने के लिए इन पर्यावरण चर की जासूसी कर सकते हैं।

डॉकर एपीआई बहुत सारी जानकारी दे सकता है: डॉकर एपीआई, जब डिफ़ॉल्ट रूप से कॉन्फ़िगर किया जाता है, तो प्राधिकरण के बिना चलता है और ढेर सारी जानकारी उत्पन्न कर सकता है। Shodan का उपयोग करके, आप आसानी से खुले बंदरगाहों की एक सूची पा सकते हैं, फिर क्लस्टर के बारे में विस्तृत जानकारी प्राप्त कर सकते हैं - और इसके पूर्ण कैप्चर के लिए आगे बढ़ सकते हैं। ट्रेंडमाइक्रो ने इस बारे में लिखा सबसे दिलचस्प लेख.

नीली टीम

कंटेनर सामग्री को रूट के रूप में न चलाएं: हालांकि रूट के रूप में चलाना आसान है, आपको ऐसा नहीं करना चाहिए। इसके बजाय, यूआईडी प्रदर्शित करके रीसेट अनुमतियों के साथ एप्लिकेशन चलाएं, या तो सीएलआई से चलते समय --user विकल्प का उपयोग करें, या Dockerfile में USER निर्दिष्ट करके।

कंटेनरों में सॉफ़्टवेयर स्थापित करने की अनुमति न दें: लगभग हर आक्रमण की शुरुआत कुछ न कुछ रोपने से होती है। nmap से ifconfig से लेकर Docker तक (कंटेनर के अंदर), कंटेनर में कुछ भी इंस्टॉल करना आम बात हो गई है। इसी कारण से, आपको हमेशा सभी अप्रयुक्त पोर्ट को ब्लॉक कर देना चाहिए। यह आपकी मशीन के संक्रमित होने पर नियंत्रण आदेशों को प्रसारित होने से रोकने में भी मदद करता है। प्रोग्रामों की स्थापना को रोकने के अलावा, यह सुनिश्चित करना उचित है कि कार्य को पूरा करने के लिए आवश्यक न्यूनतम संख्या में एप्लिकेशन कंटेनर में ही स्थापित हों।

डॉकर.सॉक को सुरक्षित रखें: इसे संरक्षित किया जाना चाहिए क्योंकि कंटेनर और क्लस्टर के बीच संचार इस सॉकेट के माध्यम से संसाधित होता है। चूँकि मैं इस लेख में विस्तार में नहीं जाना चाहता, इसलिए पढ़ें डॉकर से नोट, क्या हो सकता है, और यह सब कैसे रोका जाए।

पर्यावरण चर के बजाय डॉकर रहस्यों का उपयोग करें: रहस्य हैं लगभग 2017 से. हालाँकि यह सुरक्षित नहीं है, फिर भी कंटेनर में गुप्त डेटा भेजने के लिए यह पर्यावरण चर से बेहतर है।

यदि लेख ने कंटेनरों में आपकी रुचि जगाई है, तो आप आसानी से डॉकर या माइक्रोक8एस (कुबेरनेट्स का एक छोटा संस्करण) स्थापित कर सकते हैं। यहां Linux और MacOS के लिए डॉकर स्थापित करने के निर्देश हैं, और यहां — विंडोज़, लिनक्स और मैकओएस के लिए माइक्रोके8 स्थापित करने के निर्देश।

इंस्टालेशन के बाद आप जा सकते हैं यह एक त्वरित आरंभ मार्गदर्शिका है डॉकर से, समान विकल्प की पेशकश की और माइक्रोके8एस के लिए।

यदि आप डॉकर पर एक व्यापक पाठ्यक्रम लेना चाहते हैं या इसकी आवश्यकता है, जिसमें व्यावहारिक वक्ता इसके सभी उपकरणों की जांच करते हैं: बुनियादी अमूर्त से लेकर नेटवर्क पैरामीटर, विभिन्न ऑपरेटिंग सिस्टम और प्रोग्रामिंग भाषाओं के साथ काम करने की बारीकियां, तो प्रयास करें "डॉकर वीडियो कोर्स" आप तकनीक से परिचित हो जाएंगे और समझ जाएंगे कि डॉकर का सबसे अच्छा उपयोग कहां और कैसे करना है। और साथ ही, सर्वोत्तम अभ्यास के मामले प्राप्त करें - व्यक्तिगत रूप से नुकीले हैंडल वाले रेक की तुलना में रेक के बारे में कहानियों से सुरक्षा और अभ्यासकर्ताओं के समर्थन से सीखना बेहतर है।

स्रोत: www.habr.com

एक टिप्पणी जोड़ें