वर्चुअलबॉक्स मशीन को पूरी तरह से अलग करें


17

मैं सॉफ्टवेयर के कुछ टुकड़े को स्थापित करने के लिए वर्चुअलबॉक्स का उपयोग करना चाहूंगा, जिसकी मेरे होस्ट कंप्यूटर (और इसके विपरीत) तक पहुंच नहीं होनी चाहिए। हालाँकि, मैं और अधिक "खतरनाक" सामानों की कोशिश करने की संभावना की कल्पना करता हूं, जैसे कि शून्य-दिन के कारनामों को चलाने की कोशिश करना और देखना कि वे क्या कर सकते हैं।

वर्चुअल मशीन को होस्ट से कितना अलग किया जा सकता है? क्या मुझे (या मैं?) अतिथि और मेजबान के बीच एक फ़ायरवॉल स्थापित कर सकता हूं? क्या अतिथि ऐड-ऑन एक सुरक्षा जोखिम हैं? साझा निर्देशिकाओं के बारे में क्या?

अभी, अतिथि मशीन GNU / Linux डेबियन परीक्षण चला रही है।


7
यदि आप विस्तृत सुरक्षा प्रश्न पूछना चाहते हैं तो स्टैक एक्सचेंज में एक सूचना सुरक्षा समूह है।
सायबरनार्ड

यहां @cybernard को सुरक्षित करना। थोडा संभलने के बाद, यह Security.SE के लिए एक बहुत ही उचित प्रश्न होगा, यह मानते हुए कि यह कोई डुप्लिकेट नहीं है (जो मुझे डर है कि यह अच्छी तरह से हो सकता है, उनके सामुदायिक विकास को देखते हुए)।
19 अगस्त को 0xdd

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

जवाबों:


36

मैं यह कहकर शुरू करूंगा कि यह प्रश्न बहुत व्यापक है और बहुत कम मूल शोध दिखाता है, और इस उत्तर को उस प्रकार के प्रश्न के प्रोत्साहन के रूप में नहीं देखा जाना चाहिए। इसके बजाय, यह उत्तर लोगों के लिए कुछ अत्यंत बुनियादी सुरक्षा युक्तियां प्रदान करने की उम्मीद करता है, जो केवल मैलवेयर विश्लेषण से शुरू होती हैं।

इस धारणा के तहत काम करना कि आप पहले से ज्ञात मैलवेयर के बारे में जान रहे हैं, आप अपने पर्यावरण को कैसे अलग करते हैं, यह इस बात पर बहुत अधिक निर्भर करता है कि मालवेयर सक्षम है या नहीं। कुछ सामान्य नियम जो सबसे आधुनिक मैलवेयर पर लागू होते हैं :

  • इंटरनेट से अपने वीएम को अलग करें। यह अतिथि मशीन में इंटरफ़ेस फ़ॉरवर्डिंग स्थापित नहीं करने के रूप में सरल हो सकता है, और मैलवेयर को किसी भी संभावित कमांड-एंड-कंट्रोल नोड्स के साथ संचार करने से रोकता है जो इसे अप्रत्याशित रूप से कार्य करने के लिए निर्देशित कर सकता है।

  • एक उपयुक्त हाइपरविजर का उपयोग करें। कुछ Hypervisor.frameworkनाम रखने के लिए VirtualBox, HyperV, QEMU और macOS सहित बाज़ार में कुछ प्रमुख हैं ; इनमें से कुछ सक्रिय रूप से मैलवेयर द्वारा लक्षित होते हैं, और संस्करण के आधार पर, अतिथि मशीन से बाहर निकलने वाले मैलवेयर के लिए असुरक्षित हो सकते हैं।

  • निश्चित रूप से अतिथि परिवर्धन , या कुछ अन्य मंच के एनालॉग को स्थापित नहीं करते हैं । इस तरह के सॉफ्टवेयर का शाब्दिक लक्ष्य अतिथि और मेजबान के बीच एकीकरण स्थापित करना है, उनके बीच प्रभावी रूप से अलगाव को कमजोर करना है। मैं एक मैलवेयर शोधकर्ता नहीं हूं, लेकिन मुझे आश्चर्य होगा कि अगर कोई मैलवेयर नहीं था जो विशेष रूप से इस तरह की सतह को लक्षित करता है।

अपने कुछ बिंदुओं को सीधे संबोधित करने के लिए:

वर्चुअल मशीन को होस्ट से कितना अलग किया जा सकता है?

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

आपके VM के पास अभी भी आपके होस्ट मशीन के हार्डवेयर के भीतर एक प्रक्रिया स्थान है, हालांकि - और जबकि यह आम तौर पर एक जोखिम नहीं है क्योंकि आधुनिक OSes सभ्य प्रक्रिया को अलग-थलग करते हैं, यह अभी भी एक बहुत ही निम्न स्तर के हमलों का फायदा उठाने के लिए इस्तेमाल किया जा सकता है , जैसे कि एक किन्नर , जहां एक प्रक्रिया क्रमिक रूप से मेमोरी को एक विशिष्ट तरीके से लिखती है, जब तक कि यह आसन्न मेमोरी ब्लॉकों को नहीं पढ़ सकता है कि यह स्वयं नहीं है - प्रभावी रूप से प्रक्रियाओं के बीच स्मृति के रिसाव की अनुमति देता है।

यह भी ध्यान देने योग्य है कि अलगाव कुछ हद तक दूर चला जाता है जब आप अनिवार्य रूप से किसी भी प्रकार का I / O करना चाहते हैं: इनपुट और आउटपुट का मतलब जरूरी है कि pststhrough, जो एक हमले की सतह को उजागर करता है जिसे मेजबान कार्रवाई करने के लिए लीवरेज किया जा सकता है। इसमें एक माउस और कीबोर्ड की तरह HID pststhrough और साथ ही नेटवर्क passthrough जैसी चीजें शामिल हैं - हालाँकि यह आमतौर पर इस बात पर निर्भर करता है कि I / O passthrough को आपके VM में कितनी अच्छी तरह लागू किया गया है।

क्या मुझे (या मैं?) अतिथि और मेजबान के बीच एक फ़ायरवॉल स्थापित कर सकता हूं?

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

क्या अतिथि ऐड-ऑन एक सुरक्षा जोखिम हैं?

जी हां । वे आपके मेजबान मशीन और अतिथि मशीन के बीच सभी प्रकार के एकीकरण की अनुमति देते हैं, और हमेशा खुले चश्मे की सुविधा नहीं देते हैं जहां आप देख सकते हैं कि क्या खोला जा रहा है; ऊपर देखो।

साझा निर्देशिका के बारे में क्या?

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


मेरी चिंता यह है कि आपने इसमें बहुत कम शोध किया है, और आप अपनी मशीन या अपने डेटा को नुकसान पहुंचा सकते हैं। इससे पहले कि आप जारी रखें, मैं आपको सामान्य OSes (KVMs) पर अलग-अलग अलगाव तंत्र में देखने की सलाह दूंगा, कि वे उच्च-स्तरीय वर्चुअलाइजेशन फ्रेमवर्क ( ), कंटेनर ( ), और chrootतंत्र ( ) को कैसे नाम दें कुछ), जब प्रत्येक उपयुक्त हो, और वे क्या कर सकते हैं और क्या नहीं कर सकते। उस समय, आप बेहतर तरीके से न्याय कर पाएंगे कि आप उचित रूप से अलग-थलग वातावरण में मैलवेयर के साथ सुरक्षित रूप से खेल सकते हैं या नहीं।

अंत में, आपको नए या अल्प-ज्ञात मालवेयर के साथ काम करने की कोशिश में संलग्न नहीं होना चाहिए (जब तक कि आप एक अनुभवी सुरक्षा शोधकर्ता नहीं हैं, लेकिन यह उत्तर अनुभवी सुरक्षा शोधकर्ताओं के उद्देश्य से नहीं है)। दुर्भावनापूर्ण अभिनेता बेहद रचनात्मक होते हैं जब यह आता है कि वे क्या शोषण करते हैं और कैसे वे इसका शोषण करते हैं। इसका अंदाजा लगाने के लिए, किसी भी हाल में DEFCON वार्ता पर एक नज़र डालें, जो सोशल इंजीनियरिंग के इर्द-गिर्द केंद्रित नहीं है या यांत्रिक साधनों के माध्यम से भौतिक पहुँच प्राप्त कर रही है।


3
मुझे नहीं लगता कि केवीएम और VirtualBox / VMWare / ... के बीच, सिद्धांत रूप में, अलगाव के मामले में बहुत अंतर है, क्योंकि उन सभी को कर्नेल मॉड्यूल समर्थन की आवश्यकता है और हार्डवेयर-सहायता वर्चुअलाइजेशन का उपयोग करें। शायद आपका मतलब कंटेनर / डॉकर्स से था? यह कहा कि यकीनन शुद्ध qemu कारनामे केवल यूजर्सस्पेस में होंगे, लेकिन आजकल यह kvm की तुलना में बहुत कम जांच है (फ्लॉपी ड्राइव शोषण भी देखें) लेकिन न तो kvm और न ही qemu कर्नेल में प्रत्यक्ष syscalls की अनुमति देता है, लेकिन दोनों अप्रत्यक्ष (वर्चुअलाइजेशन या पैरा-वर्चुअलाइजेशन के माध्यम से) अनुमति देते हैं ।
मैकीज पाइचोटका

@MaciejPiechotka मेरी ग़लती, वह ग़लत थी। मैंने उत्तर अपडेट कर दिया है, लेकिन इसे लाने के लिए धन्यवाद!
0xdd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.