مفتاح «الامتيازات» في تطبيق ZimaOS يعادل فعليًا وضع Docker ذي الامتيازات. أوضح دعم IceWhale أنه يمنح الحاوية أذونات شبيهة بأذونات المضيف، ووصولًا مباشرًا إلى الأجهزة، وإمكانات على مستوى الجذر. لا تفعّله إلا عندما يتطلب التطبيق فعلًا هذا المستوى من الوصول.
بالنسبة إلى معظم التطبيقات، لا حاجة إلى وضع الامتيازات، كما أنه يضعف العزل الذي يجعل الحاويات أكثر أمانًا. يُفضّل تعيين جهاز واحد أو إضافة قدرة واحدة من قدرات Linux بدلًا من منح الحاوية كل شيء.
ما الذي يغيّره وضع الامتيازات
يوضح دليل Docker للحاويات ذات الامتيازات الحالي أن الخيار --privileged يمنح الحاوية جميع إمكانات Linux وإمكانية الوصول إلى جميع أجهزة المضيف، مع تخفيف عناصر تحكم أمنية رئيسية.
لماذا وصفته IceWhale بأنه وصول على مستوى المضيف
يفيد الرد الرسمي المصدر بأن عملية الحاوية يمكنها الوصول مباشرة إلى أجهزة المضيف والتنفيذ بامتيازات شبيهة بامتيازات الجذر. وهذا شرح موجز مفيد، لكن الأثر الأمني العملي أوسع: إذ لا تعود الحاوية معزولة في وضع حماية قوي.
لا تفعّل الامتيازات لمجرد إصلاح خطأ عشوائي
إذا تعذر على التطبيق الوصول إلى جهاز USB أو وحدة معالجة الرسومات أو وظيفة شبكية أو نقطة تحميل، فحدّد أولًا الإذن المفقود بدقة. قد يخفي وضع الامتيازات مشكلة الإعداد الحقيقية، مع تعريض المضيف بأكمله للخطر.
فضّل تعيين الأجهزة
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
بالنسبة إلى جهاز واحد، عيّن ذلك الجهاز بدلًا من جميع أجهزة المضيف.
فضّل إمكانات Linux المحددة
cap_add:
- NET_ADMIN
قد تحتاج حاوية VPN أو موجّه إلى قدرة شبكية محددة. امنح الحد الأدنى المطلوب بدلًا من استخدام وضع الامتيازات عندما توضح وثائق التطبيق ذلك.
تطبيقات قد تحتاج بشكل مشروع إلى مزيد من الوصول
تشمل الأمثلة أدوات الأجهزة منخفضة المستوى، وDocker داخل Docker، وبعض أجهزة VPN أو الشبكات، وإدارة أجهزة USB أو الأجهزة الأخرى، أو برامج متخصصة لمراقبة النظام. ومع ذلك، اقرأ إرشادات النشر من المصدر أولًا.
تطبيقات لا تحتاج إليه عادةً
لا ينبغي أن تتطلب تطبيقات الويب العادية، ومكتبات الوسائط، وتطبيقات تدوين الملاحظات، وقواعد البيانات، ومديري الصور، ولوحات المعلومات، ومعظم خدمات API وضع الامتيازات الكامل لمجرد العمل.
راجع الامتيازات بعد تحديث التطبيق
قد تكون حزمة تطبيق قديمة قد فعّلت وضع الامتيازات لتسهيل الاستخدام، حتى بعد أن أضاف المصدر أذونات أضيق نطاقًا. أعد التحقق من متطلبات Compose الحالية عند التحديث.
يوفر دليل أمان Docker نمطًا أكثر أمانًا للتطبيقات المخصصة.
افحص الحاوية قبل منحها وصولًا إضافيًا
docker inspect CONTAINER
تحقق من تعيينات الأجهزة الحالية، والإمكانات، ونقاط التحميل، ووضع الشبكة، وإعدادات المستخدم. تفشل تطبيقات كثيرة بسبب فقدان جهاز أو مسار مطلوب، لا لأنها تحتاج إلى وصول غير مقيّد إلى المضيف.
قد يوسّع وضع الامتيازات نطاق الضرر
إذا اختُرقت تطبيقات ويب عادية غير ذات امتيازات، فقد يحد عزل الحاوية مما يمكن للمهاجم الوصول إليه. أما الحاوية ذات الامتيازات فيمكنها الوصول إلى عدد أكبر بكثير من أجهزة المضيف وواجهات النواة، لذا قد يكون لثغرة في ذلك التطبيق عواقب على النظام بأكمله.
وثّق سبب تفعيل الامتيازات
عند تفعيله عمدًا، دوّن الميزة المحددة التي تتطلبه. أثناء تحديث لاحق للتطبيق، أعد اختبار إمكانية تشغيله بأذونات أضيق، وأوقف المفتاح إذا لم تعد هناك حاجة إليه.
الأسئلة الشائعة
هل تعني «الامتيازات» أن الحاوية تعمل كجذر؟
إنها أوسع من مجرد التشغيل كجذر داخل الحاوية؛ إذ يمنح وضع الامتيازات إمكانات واسعة على المضيف وإمكانية الوصول إلى أجهزته.
هل ينبغي تفعيلها لكل تطبيق مخصص؟
لا. أبقها متوقفة ما لم توضح وثائق المصدر أن عبء العمل يتطلبها.
هل يمكنني منح الوصول إلى وحدة معالجة الرسومات أو USB فقط؟
نعم. يُفضّل استخدام تعيينات أجهزة محددة وإعدادات وقت التشغيل بدلًا من وضع الامتيازات الكامل.
هل وضع الامتيازات خطير؟
إنه يقلل عزل الحاوية بدرجة كبيرة، لذا يمكن لتطبيق ذي امتيازات ومخترق أن يكون تأثيره على المضيف أكبر بكثير.
