2013-09-27 2 views
19

एक डोकर blog post इंगित करता है:सुरक्षा के रूप में यह जड़ उपयोगकर्ता के रूप में चलाता है

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

तो, सुरक्षा समस्या अगर मैं डोकर के तहत एक रूट के रूप में चल रहा हूँ क्या है मेरा मतलब है, अगर मैं गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं के रूप में अपनी प्रक्रियाओं का ख्याल रखता हूं, तो यह काफी सुरक्षित है, तो, मैं रूट उपयोगकर्ता के रूप में एक कंटेनर में होस्ट करने के लिए हानिकारक कैसे हो सकता हूं? मैं इसे समझने के लिए कह रहा हूं, कैसे रूट के रूप में चलते समय यह सुरक्षित नहीं है? कौन सी सिस्टम कॉल होस्ट सिस्टम का पर्दाफाश कर सकती है?

उत्तर

16

जब आप रूट के रूप में दौड़ते हैं, तो आप कर्नेल सेवाओं की एक विस्तृत श्रृंखला तक पहुंच सकते हैं। उदाहरण के लिए, आप यह कर सकते हैं:

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

प्रमुख मुद्दा है कि रूट के रूप में, आप और अधिक कर्नेल कोड का प्रयोग कर सकते है (यह ध्यान रखें कि उन सभी उदाहरण capabilities द्वारा संरक्षित हैं दिलचस्प है।); अगर उस कोड में भेद्यता है, तो आप इसे रूट के रूप में ट्रिगर कर सकते हैं, लेकिन नियमित उपयोगकर्ता के रूप में नहीं।

इसके अतिरिक्त, अगर किसी को कंटेनर से बाहर निकलने का कोई तरीका मिलता है, यदि आप रूट के रूप में तोड़ते हैं, तो आप नियमित रूप से नियमित उपयोगकर्ता की तुलना में अधिक नुकसान कर सकते हैं।

+0

तो तुम लगभग सुरक्षित जब डोकर आप चलाने के मनमाने ढंग से सामान – Mustafa

+1

निष्पादित करने के लिए गैर-रूट उपयोगकर्ता समाप्त होने पर मुझे जड़ करना चाहते हैं होगा कंटेनर में पहुंच, लेकिन सुनिश्चित करें कि यह मेजबान सिस्टम को तोड़ नहीं सकता है। यह एकल ऐप एकल कंटेनर दर्शन करना आसान बनाता है। – CMCDragonkai

+1

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

5

आप डॉकर पर /proc/sysrq-trigger पर प्रतिबिंबित करके होस्ट मशीन को रीबूट कर सकते हैं। डॉकर में रूट के रूप में चलने वाली प्रक्रियाएं यह कर सकती हैं।

यह काफी अच्छा कारण डोकर में रूट के रूप में प्रक्रियाओं को चलाने के लिए नहीं लगता है;)

+6

मुझे 'bash:/proc/sysrq-trigger: केवल-पढ़ने के लिए फ़ाइल सिस्टम ' –

+2

ठीक है ... अंत में दो साल बाद कुछ तय किया? – wrzasa

+0

हाँ क्षमा करें, मुझे तारीख नहीं मिली :) –

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