प्रस्तावना
मैं इंटरनेट पर सभी लोगों को गलत धारणाओं को दोहराते हुए सुनता रहता हूं .. इस प्रकार, मैं कुछ स्पष्टीकरण देने का प्रयास करूंगा
सबसे पहले; कितनी आकस्मिक खोजें हुई हैं, जो कि बस .. कारण और प्रभाव के कारण समाप्त हो गई हैं, जो अपने इच्छित उद्देश्य के अलावा किसी और चीज के लिए इस्तेमाल की जा रही हैं ?
क्या था, और क्या है, चारोट जेल
चेरोट को शुरू में प्रक्रिया या उपयोगकर्ता (अज्ञात स्रोतों से सॉफ्टवेयर संकलन के लिए महान) के लिए रूट निर्देशिका को बदलने के लिए डिज़ाइन किया गया था। इसने बेस सिस्टम को सुरक्षा प्रदान की , साथ ही एक त्वरित परीक्षण बिस्तर उपकरण, जिसमें आसान सफाई शामिल है। वर्षों से चला गया है, और यह अवधारणा और निहित उपयोग निश्चित रूप से बदल गया है, इसी तरह है।
चेरोट का प्रभावी ढंग से उपयोग किया गया है , और कई कार्यक्रमों और पुस्तकालयों (यानी ओपनएसएसएचडी, अपाचे 2 + mod_security2 / mod_chroot, dovecot, sendmail, openVPN, pam_chroot, और बहुत अधिक ) के लिए सीधे कोड बेस में है । यह मानते हुए कि इन सभी मुख्यधारा के अनुप्रयोगों ने दोषपूर्ण सुरक्षा समाधानों को लागू किया है, सिर्फ सच नहीं है
चुरोट सिस्टम वर्चुअलाइजेशन फाइल करने के लिए एक समाधान है: कुछ कम नहीं, कुछ ज्यादा नहीं। धारणा है कि आप आसानी से एक चौराहे से बाहर तोड़ सकते हैं यह भी सच नहीं है ... जब तक आप चेरोट जेल के अंदर चलने वाली प्रक्रियाओं के दिशानिर्देशों का पालन करते हैं।
अपने चिरोट जेल को सुरक्षित करने के लिए कुछ कदम
अर्थात ROOT के रूप में प्रक्रियाओं को न चलाएं। यह एक रूट एस्केलेशन वेक्टर खोल सकता है (जो क्रोकोट के अंदर या बाहर भी सच है)। चेरोट के अंदर एक प्रक्रिया न चलाएं , चेरोट के बाहर एक अन्य प्रक्रिया के रूप में एक ही उपयोगकर्ता का उपयोग करें। हमले की सतहों को सीमित करने, और गोपनीयता प्रदान करने के लिए प्रत्येक प्रक्रिया और उपयोगकर्ता को अपने स्वयं के चारोट में अलग करें। केवल आवश्यक फ़ाइलें, लाइब्रेरीज़ और डिवाइस माउंट करें। अंत में, चुरोट आधार प्रणाली सुरक्षा के लिए प्रतिस्थापन नहीं है। सिस्टम को उसकी संपूर्णता में सुरक्षित करें।
एक और महत्वपूर्ण नोट: बहुत सारे लोग सोचते हैं कि ओपनवीजेड ब्रोकन है, या यह कि यह पूर्ण सिस्टम वर्चुअलाइजेशन की तुलना में समान नहीं है। वे यह धारणा बनाते हैं क्योंकि यह अनिवार्य रूप से चेरोट है, जिसकी प्रक्रिया तालिका निष्फल है। हार्डवेयर और उपकरणों पर सुरक्षा उपायों के साथ। जिनमें से अधिकांश आप चेरोट में लागू कर सकते हैं।
प्रत्येक व्यवस्थापक के पास समर्पित सर्वर पर या संपूर्ण सिस्टम वर्चुअलाइजेशन के तहत सभी आवश्यक कर्नेल मापदंडों को सुरक्षित करने के लिए आवश्यक ज्ञान का स्तर नहीं है। इसका मतलब यह है कि OpenVZ को तैनात करने का अर्थ है कि आपके ग्राहकों के पास अपने अनुप्रयोगों को तैनात करने से पहले प्रयास करने और कवर करने और सुरक्षित करने के लिए बहुत कम हमले की सतह होगी। एक अच्छा मेजबान इन मापदंडों को हासिल करने के लिए एक अच्छा काम करेगा, और यह बदले में, यह न केवल हर किसी के लिए नोड पर, या डेटा-सेंटर में, बल्कि एक पूरे के रूप में इंटरनेट के लिए बेहतर है ...
जैसा कि कहा गया है, चुरोट फाइल सिस्टम वर्चुअलाइजेशन प्रदान करता है। आपको यह सुनिश्चित करना चाहिए कि कोई सेटलिड एग्जीक्यूटिव न हों, असुरक्षित एप्लिकेशन, लाइब्रेरी, ओनरलेस सिम्बलिंक्स को ख़त्म करना, यदि हमलावर COULD समझौता करते हैं, तो उन्हें कुछ करने के लिए वर्चुअल फाइल सिस्टम को बफ़र करने के लिए, फाइल डिस्क्रिप्टर के साथ खेलने के लिए, या किसी अन्य तरीके से चेरोट के अंदर रहने वाले किसी व्यक्ति से समझौता करना- जेल से भागना आम तौर पर विशेषाधिकार वृद्धि के माध्यम से या आधार प्रणाली में उसके पेलोड को इंजेक्ट करना है।
यदि ऐसा होता है, तो इसका परिणाम आम तौर पर खराब अद्यतन, शून्य दिन के शोषण या मुहावरेदार मानवीय त्रुटि के रूप में होता है ।
चुरोट का उपयोग अभी भी क्यों किया जाता है, पूर्ण प्रणाली वर्चुअलाइजेशन के विपरीत
इस परिदृश्य पर विचार करें: आप एक वर्चुअल प्राइवेट सर्वर चला रहे हैं, जिसमें होस्ट नोड OpenVZ चल रहा है। आप बस कुछ भी नहीं चला सकते हैं जो कर्नेल स्तर पर काम करता है। इसका अर्थ यह भी है कि आप अलग-अलग प्रक्रियाओं के लिए ऑपरेटिंग सिस्टम वर्चुअलाइजेशन का उपयोग नहीं कर सकते हैं, और अतिरिक्त सुरक्षा प्रदान कर सकते हैं। इस प्रकार, आप इस उद्देश्य के लिए चुरोट का उपयोग करना चाहिए ।
इसके अलावा, किसी भी प्रणाली पर चिरोट स्थायी है, भले ही संसाधन उपलब्ध हों। सीधे शब्दों में कहें, इसमें किसी भी वर्चुअलाइजेशन प्रकार का बहुत कम ओवरहेड है। इसका मतलब यह है कि यह अभी भी कई कम अंत बक्से पर महत्वपूर्ण है।
एक और परिदृश्य पर विचार करें: आपके पास एक आभासी वातावरण में चलने वाला अपाचे है। आप प्रत्येक उपयोगकर्ता को अलग करना चाहते हैं। एपाचे (mod_chroot, mod_security, आदि) पर चेरोट ऐड के माध्यम से एक वर्चुअलाइज्ड फाइल सिस्टम प्रदान करना अंतिम उपयोगकर्ताओं के बीच अत्यंत गोपनीयता सुनिश्चित करने के लिए सबसे अच्छा विकल्प होगा। यह भी खुफिया जानकारी को रोकने में मदद करता है, और सुरक्षा की एक और परत प्रदान करता है।
सीधे शब्दों में कहें, तो परतों में सुरक्षा को लागू करना महत्वपूर्ण है । चेरोट संभावित रूप से उनमें से एक है। हर कोई और हर प्रणाली कर्नेल तक पहुंच रखने की लक्जरी नहीं है, इसलिए, क्रोली स्टिल एक उद्देश्य को पूरा करता है। विभिन्न प्रकार के अनुप्रयोग होते हैं जिनमें पूर्ण प्रणाली गुणन अनिवार्य रूप से ओवरकिल होता है।
आपके सवाल के जवाब में
मैं विशेष रूप से CentOS का उपयोग नहीं करता, लेकिन मुझे पता है कि Bind अब संचालन से पहले अपने विशेषाधिकार छोड़ देता है। हालांकि, मैं मान सकता हूं कि यह हमला अटैक वैक्टर और संभावित कमजोरियों के इतिहास के कारण किया गया है।
यह भी ... यह स्वचालित रूप से इस एप्लिकेशन को चेरोट करने के लिए अधिक समझ में आता है, इसलिए नहीं, क्योंकि हर किसी के पास पूर्ण सिस्टम / ऑपरेटिंग सिस्टम स्तर वर्चुअलाइजेशन तक पहुंच नहीं है। बदले में, और सिद्धांत रूप में, CentOS उपयोगकर्ता आधार को सुरक्षा प्रदान करने में मदद करता है:
ऑपरेटिंग सिस्टम प्रदाता बस यह मानकर नहीं चलते हैं कि हर एक समान सिस्टम चला रहा है। इस तरह, वे बड़े पैमाने पर सुरक्षा की एक अतिरिक्त परत प्रदान करने में मदद कर सकते हैं ...
ऐसा एक कारण है कि इतने सारे अनुप्रयोग इसका उपयोग करते हैं , और जाहिर है कि आपका ओएस डिफ़ॉल्ट रूप से क्यों करता है: क्योंकि यह एक सुरक्षा सुविधा के रूप में उपयोग किया जाता है, और यह काम करता है। सावधानीपूर्वक तैयारी के साथ, जैसा कि पहले कहा गया था, यह अभी तक एक और बाधा है संभावित हमलावर को पार करना होगा- ज्यादातर समय, केवल चिरोट जेल को हुए नुकसान को रोकना।