सैंडबॉक्स अनुप्रयोगों के लिए कैसे?


66

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


मैंने इसका कभी उपयोग नहीं किया है, इसलिए मैं इसका पूर्ण उत्तर नहीं दे सकता, लेकिन AFAIK, AppArmor ( wiki.ubuntu.com/AppArmor ) ऐसा करने में सक्षम होना चाहिए।
जेवियर रिवेरा

VirtualBox के लिए एक रैपर, Vagrant देखें। vagrantup.com और [विकिपीडिया पर] ( en.wikipedia.org/wiki/Vagrant_(software%29) और
जीथब

@JavierRivera FWIW, SELinux के रूप में अच्छी तरह से। हालांकि उबंटू में दौड़ना कितना आसान होगा, इसका कोई अंदाजा नहीं है।
टीसी 1

उबंटू में डिफ़ॉल्ट रूप से अप्पमोर पहले से स्थापित है, इसलिए यह आसान होना चाहिए।
जेवियर रिवेरा

1
ऐसा लगता है कि वे कई संभावनाएं हैं: वर्चुअलाइजेशन वर्चुअलबॉक्स (जैसे वैग्रेंट), चेरोट, एलएक्ससी, ऐप आर्मर और एसई लिनक्स का उपयोग करते हैं।
फ्लिम

जवाबों:


26

यदि वे वास्तव में अविश्वसनीय हैं, और आप सुनिश्चित होना चाहते हैं, तो आप एक अलग बॉक्स स्थापित करेंगे। या तो वास्तव में, या वस्तुतः।

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

  • इसलिए सबसे सुरक्षित विकल्प आपके नेटवर्क से शारीरिक रूप से हटाया गया एक अलग बॉक्स होगा।
  • आप इसे भौतिक नेटवर्क में जोड़कर थोड़ा सा दे सकते हैं, लेकिन एक अलग सबनेट पर: अंदर कोई 'वास्तविक' कनेक्शन नहीं
  • एक वर्चुअल मशीन एक विकल्प होगा, लेकिन कुछ प्रदर्शन छोड़ना पड़ सकता है

यदि आप इसे उसी बॉक्स पर चलाने के लिए बाध्य हैं, तो आपके पास यह विकल्प है

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

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


वर्चुअल मशीन पर एक अविश्वसनीय एप्लिकेशन चलाने के लिए सुरक्षा के लिहाज से यह कितना सुरक्षित होगा? मैंने सैद्धांतिक कारनामों के बारे में सुना है जो हाइपरविजर के माध्यम से होस्ट ऑपरेटिंग सिस्टम तक पहुंच सकते हैं और इसे संक्रमित कर सकते हैं।
ज़ुलाउज़

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

14

फायरजेल काफी नया है और निरंतर विकास में है। प्रयोग करने में आसान।

आप बस:

sudo apt-get install firejail
firejail app

उबंटू पूछने के लिए आपका स्वागत है! जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करना होगा।
मार्क किर्बी

12

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


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

@ क्रिसहॉल्डॉर्फ सही है, हालांकि डॉकर बेहतर हो रहे हैं और मुझे भी लगता है कि आजकल एक अनधिकृत (रूट के रूप में नहीं) को चलाने के लिए संभव है। एलएक्ससी और एलएक्सडी (कभी-कभी तथाकथित एलएक्ससी डेमन) के लिए यह निश्चित रूप से सच है, ऐसे कंटेनरों के निर्माण को बहुत सरल कर सकता है। इसलिए आधुनिक अप्रकाशित कंटेनरों को चेरोट पर सुरक्षा के मामले में सुधार माना जा सकता है। लेकिन वे एक अभेद्य अवरोध नहीं हैं!
ह्यूजेंस

डॉकर एक सुरक्षा उपकरण नहीं है!
फेडरिको

10

पूर्ण वर्चुअलाइजेशन / एमुलेशन (वर्चुअलबॉक्स)

एक संभव समाधान वर्चुअलाइजेशन सॉफ्टवेयर है जैसे कि वर्चुअलबॉक्स जिसे आप सॉफ्टवेयर सेंटर में पा सकते हैं।

  • वर्चुअल बॉक्स स्थापित करें
  • नेटवर्किंग सक्षम के साथ एक वर्चुअल मशीन बनाएँ
  • उबंटू या शायद एक लाइटर डेस्कटॉप जैसे लुबंटू स्थापित करें
  • पूरी तरह से स्थापित ओएस (वर्चुअल बॉक्स के अंदर) को अपडेट करें
  • वर्चुअल मशीन पर नेटवर्किंग अक्षम करें
  • एक स्नैपशॉट लीजिये

अब आप उस सॉफ़्टवेयर को स्थापित कर सकते हैं जिस पर आपको विश्वास नहीं है कि वह क्या करता है। यह बाहरी दुनिया को परेशान नहीं कर सकता है या आप ओएस की मेजबानी कर सकते हैं क्योंकि इसकी पहुंच नहीं है।

हालाँकि यह आपकी वर्चुअल मशीन को मिटा सकता है लेकिन अगर ऐसा होता है तो आप अपने स्नैपशॉट से बस फिर से चालू कर सकते हैं।

अविश्वास सॉफ्टवेयर की विनाशकारी शक्ति को सीमित करने के लिए अन्य तरीके हो सकते हैं लेकिन यह सबसे मजबूत तरीका है जिसके बारे में मैं सोच सकता हूं।

कंटेनर आधारित वर्चुअलाइजेशन (डॉकर / LXC)

एक अन्य विकल्प यहां एलएक्ससी अधिक जानकारी हो सकती है

LXC लिनक्स कंटेनर के लिए यूजर्सस्पेस कंट्रोल पैकेज है, जिसे कभी-कभी "स्टेरॉयड पर चेरोट" के रूप में वर्णित एक हल्का आभासी सिस्टम तंत्र कहा जाता है।

LXC लिनक्स के मौजूदा प्रोसेस मैनेजमेंट इंफ्रास्ट्रक्चर में रिसोर्स मैनेजमेंट और आइसोलेशन मैकेनिज्म को जोड़ते हुए पूरा वर्चुअल सिस्टम लागू करने के लिए चेरोट से बनाता है।

यह सॉफ्टवेयर सेंटर में उपलब्ध है। हालांकि मुझे कोई अनुभव नहीं है।


1
वह बस असुविधाजनक है। सिर्फ गेम चलाने के लिए एक पूरी वर्चुअल मशीन बनाएं !!? यह बहुत अच्छा समाधान नहीं है। आप स्थापित करने की प्रक्रिया के GID और यूआईडी होगा मत सोचो रास्ता इस की तुलना में आसान?
जैक मेयरज

वास्तव में मुझे लगता है कि एक आभासी बॉक्स स्थापित करना पर्याप्त रूप से आसान है कि मैं शायद स्नैपशॉट लेने से परेशान नहीं होऊंगा। यदि यह मेरी आभासी मशीन को नष्ट कर देता है, तो मैं इसे त्याग सकता हूं।
एमोरी

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

@JavierRivera "आसानी से" सही शब्द नहीं है, या एक AppArmor प्रोफ़ाइल और फ़ायरफ़ॉक्स के लिए एक SELinux नीति हर डिस्ट्रो के साथ डिफ़ॉल्ट रूप से भेज दी जाएगी और ऐसा नहीं है। उबंटू ऐसे प्रोफ़ाइल को जहाज करता है लेकिन यह डिफ़ॉल्ट रूप से सक्रिय नहीं है क्योंकि यह कुछ "लोकप्रिय" फ़ायरफ़ॉक्स सुविधाओं को तोड़ता है। ज्यादातर GUI ऐप्स के लिए या तो SELinux नीतियां नहीं हैं, ऐसे ऐप्स को अभी भी सैंडबॉक्स्ड कहे जाने के लिए बहुत अधिक अनुमतियों की आवश्यकता है। यदि आप असहमत हैं, तो कृपया यहां AppArmor या SELinux का उपयोग करके सैंडबॉक्स फ़ायरफ़ॉक्स के लिंक सुरक्षित रूप से पोस्ट करें! यदि आप कर सकते हैं तो मुझे बहुत खुशी होगी :-)
Huygens

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

9

mbox

एमबॉक्स एक हल्का सैंडबॉक्सिंग तंत्र है जिसे कोई भी उपयोगकर्ता कमोडिटी ऑपरेटिंग सिस्टम में विशेष विशेषाधिकार के बिना उपयोग कर सकता है।

मैंने इसे कुछ चीजों के लिए मज़बूती से इस्तेमाल किया है।


4

subuser

आप डॉकटर के साथ अपने एप्लिकेशन को सैंडबॉक्स करने के लिए सब्यूसर का उपयोग कर सकते हैं। यह आपको सैंडबॉक्स GUI ऐप जैसी चीजें करने की अनुमति देता है, जो सीधे डॉकर के साथ करना आसान नहीं है।

sudo apt install subuser

1

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


2
यह भी ढंग सैंडबॉक्सिंग नहीं है कि इस सवाल का मतलब है - यह है कि अभी भी स्थापित कर सकते हैं पाने के लिए या चलाने दुर्भावनापूर्ण सॉफ़्टवेयर से प्रणाली की रक्षा नहीं करता
थॉमस वार्ड

1

दोश - डॉकर शेल

ऐसे मामले में जब आप उपयोगकर्ताओं की गतिविधि को सैंडबॉक्स करना चाहते हैं, तो आप "DoSH" का उपयोग कर सकते हैं

DoSH (जो डॉकटर शेल के लिए खड़ा है) डॉकटर कंटेनरों को बनाने के लिए एक विकास है जब उपयोगकर्ता लिनक्स सिस्टम में लॉग इन करते हैं और शेल बनाने के बजाय, उन्हें खोलते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.