वीएम (आभासी मशीनों) की तुलना में कंटेनर ब्रेकआउट की संभावना

वीएम की तुलना में कम से कम सैद्धांतिक रूप से सैद्धांतिक रूप से (उच्च) भेद्यता क्या है? दिया गया है, सभी सुरक्षा अनुशंसाओं को कार्यान्वित किया जाता है (जैसे, उपयोगकर्ता संदर्भ रूट है, कोई होस्ट संवेदनशील वॉल्यूम घुड़सवार नहीं है, ट्यूनेड क्षमताओं ..)।

एक शोषण एक वीएम के अलावा नेटवर्क इंटरफ़ेस के माध्यम से एक कंटेनर समझौता कैसे कर सकता है? रूट अधिकारों के साथ एक कंटेनर बनाने के लिए "खराब" टीसीपी पैकेज फोर्स डॉकर डिमन हो सकता है?

1

1 उत्तर

कंटेनर एक साझा ओएस पर एक एप्लिकेशन को अलग करते हैं, वीएम ने साझा हार्डवेयर पर ओएस को अलग किया है। अमूर्तता के उन विभिन्न स्तरों के साथ, आपके पास अलग-अलग शोषण और सुरक्षाएं हैं।

कंटेनर पर एक सफल कर्नेल स्तर का शोषण साझा कर्नेल को प्रभावित करेगा, और इसलिए कंटेनर अलगाव का ब्रेकआउट होगा। मंदी और दर्शक सोचो।

एक सफल वीएम चालक शोषण वीएम से चलने वाले हाइपरवाइजर को वीएम से बाहर कर सकता है। मैंने वीएम में फ्लॉपी ड्राइवर जैसी चीज़ों पर शोषण के बारे में सुना है। ये कर्नेल शोषण से कहीं अधिक दुर्लभ हैं, इसलिए मैं यहां वीएम का लाभ दूंगा।

छोटे वीएम में कंटेनरों को स्पिन करने के लिए कंटेनर रनटाइम को बदलना संभव है। काटा कंटेनर जैसी परियोजनाएं इस पर काम कर रही हैं। तो आप अभी भी कंटेनरों की कुछ विशेषताओं को प्राप्त करते हुए वीएम की सुरक्षा प्राप्त कर सकते हैं।

वीएम के कंटेनरों का एक बड़ा फायदा है। वे कम क्षमता, सीकंप, और वैकल्पिक रूप से selinux/apparmor कॉन्फ़िगर किए गए न्यूनतम वातावरण में चलाते हैं। आप उस पर्यावरण को उन तरीकों से लॉक कर सकते हैं जिनसे आप आसानी से एक वीएम को लॉक नहीं कर सकते, केवल पढ़ने के लिए फाइल सिस्टम के साथ, और गोले, दुभाषिया, और पुस्तकालयों जैसे किसी भी उपकरण को शामिल नहीं कर सकते हैं, जिसे हमलावर को आपके सिस्टम का उपयोग करने के लिए अपने सिस्टम का फायदा उठाने की आवश्यकता हो सकती है कर्नेल पर हमला करना या क्षैतिज रूप से उनके हमले को पिचोट करना।

नतीजतन, कोई स्पष्ट विजेता नहीं है। सबसे अच्छा जवाब संभवतया दोनों का संयोजन है, जो अपने स्वयं के वीएम पर समान सुरक्षा आवश्यकताओं वाले कुछ हद तक कंटेनरों को चला रहा है।

2
जोड़ा
धन्यवाद! लेकिन फिर, यह देखते हुए कि कंटेनर में केवल एक बाइनरी/पुस्तकालय कर्नेल स्तर के हमले के लिए कमजोर प्रतीत होता है, क्या इसका मतलब यह है कि सभी लोग जो इस जोखिम के साथ K8s "लाइव" का उपयोग करते हैं? (जैसा कि K8s कंटेनर का भी उपयोग करता है) (सुनिश्चित नहीं है कि यह एक अलग प्रश्न के लायक है)
जोड़ा लेखक Peter Muryshkin, स्रोत
यकीन नहीं है कि मैं इस सवाल का पालन करता हूं क्योंकि अतिरिक्त सुरक्षा के लिए यदि आवश्यक हो तो के 8 एस अलग-अलग वीएम पर चलाने के लिए कंटेनर शेड्यूल कर सकते हैं। K8s शेड्यूलर/ऑर्केस्ट्रेशन टूल से थोड़ा अधिक है, यह आपके ऊपर चलने वाले पैरोज़ को व्यवस्थित करने के लिए है। एक कंटेनर के अंदर बाइनरी का पालन नहीं करना जो कमजोर है जो वीएम के अंदर कमजोर नहीं होगा, आमतौर पर यह एक अन्य तरीका है क्योंकि आप एक कंटेनर के अंदर एक ऐप लॉक कर सकते हैं जिस तरह से आप आसानी से केवल वीएम में नहीं कर सकते हैं।
जोड़ा लेखक BMitch, स्रोत