2015-08-27 3 views
7

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

अगर मैं कुछ अविश्वसनीय कोड लेना चाहता हूं और उसे कंटेनर में चलाता हूं, तो क्या यह सुरक्षित रूप से तब तक किया जा सकता है जब कंटेनर गैर-रूट गैर-सूडो उपयोगकर्ता के रूप में चल रहा हो? ऐसा कुछ करने की संभावित सुरक्षा समस्याएं क्या हैं?

मुझे यकीन है कि उत्पादन अनुप्रयोग आज (सीआई सिस्टम, रननेबल पेस्टबिन्स) कर रहे हैं, लेकिन क्या वे सिर्फ भाग्यशाली हैं कि एक निर्धारित हमलावर नहीं है या क्या यह उत्पादन प्रणाली में उचित बात है?

+0

+1 इस के जवाब में वास्तव में रुचि रखते हैं। मैं स्वयंसेवक बन सकता हूं कि रूट के रूप में चलने से आप सिस्टम फ़ाइलों तक पहुंच लिख सकते हैं जो डॉकर छवि का हिस्सा हैं। मुझे लगता है कि मैलवेयर का एक कल्पनाशील टुकड़ा डॉकर होस्ट के कर्नेल के भीतर मौजूद भेद्यता का उपयोग करने के लिए इसका उपयोग कर सकता है। –

+3

मैं इस सवाल को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं (भले ही यह एक दिलचस्प है)। सुरक्षा का सबसे अच्छा जवाब दिया जाएगा। Reackexchange.com – oleksii

+0

एसओ पर डॉकर व्यवस्थापक प्रश्न पोस्ट करना ठीक है। कई बार चर्चा की गई है: http://meta.stackexchange.com/search?q=docker –

उत्तर

1

डोकर v1.12 के रूप में, यदि एक उपयोगकर्ता नामस्थान सक्षम के साथ एक गैर-रूट उपयोगकर्ता के रूप में एक कंटेनर चलाता है, वहाँ विशेषाधिकार वृद्धि एक दुर्भावनापूर्ण अभिनेता आदेश मेजबान पर जड़ बनने के लिए प्रदर्शन करने के लिए की जरूरत है के दो स्तर हैं:

  1. आगे बढ़ाएं गैर-मूल से कंटेनर के अंदर जड़ उपयोगकर्ता
  2. आगे भेजने के लिए मेजबान

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

सुरक्षा के दोनों परतों के माध्यम से विशेषाधिकार वृद्धि के मामले में, निम्नलिखित हमले सतह प्रतिबंधित मदद करनी चाहिए:

  1. कार्यभार (खासतौर पर कंटेनर डोकर, इस संदर्भ में) अलग विश्वास के स्तर के साथ दूसरे से अलग किया जाना चाहिए कम से कम विशेषाधिकार सिद्धांत के बाद ओवरले नेटवर्क के उपयोग से।
  2. प्रवर्तन मोड (जैसे SELinux, AppArmor)

संदर्भ में उपलब्ध लिनक्स सुरक्षा मॉड्यूल को सक्षम करने से:

0

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

संबंधित मुद्दे