إطلاق Bubblewrap 0.4.0 ، طبقات لإنشاء بيئات رمل

متاح إصدار جديد من مجموعة الأدوات فقاعات الفقاعات 0.4.0، مصممة لتنظيم عمل البيئات المعزولة في Linux ويعمل على مستوى التطبيق للمستخدمين غير المميزين. عمليًا، يستخدم مشروع Flatpak برنامج Bubblewrap كطبقة لعزل التطبيقات التي يتم تشغيلها عن الحزم. كُتب كود المشروع بلغة C و وزعت من خلال بموجب ترخيص LGPLv2+.

تُستخدم المواد التقليدية للعزل Linux تقنيات المحاكاة الافتراضية للحاويات التي تعتمد على استخدام مجموعات التحكم (cgroups) ومساحات الأسماء وSeccomp وSELinuxلإجراء عمليات تكوين الحاويات ذات الامتيازات، يتم تشغيل Bubblewrap بامتيازات الجذر (يتم تمكين علامة suid في الملف القابل للتنفيذ) ثم يتم إسقاط الامتيازات بعد اكتمال تهيئة الحاوية.

لا يلزم تنشيط مساحات أسماء المستخدمين في النظام، والتي تسمح للحاويات باستخدام مجموعة منفصلة من المعرفات الخاصة بها، للتشغيل، لأنه لا يعمل بشكل افتراضي في العديد من التوزيعات (يتم وضع Bubblewrap كتنفيذ محدود لمجموعة فرعية من قدرات مساحات أسماء المستخدمين - لاستبعاد جميع معرفات المستخدم والعملية من البيئة باستثناء المعرف الحالي، يتم استخدام أوضاع CLONE_NEWUSER وCLONE_NEWPID). للحصول على حماية إضافية، يتم التحكم في الملفات القابلة للتنفيذ بواسطة
يتم تشغيل برامج Bubblewrap في وضع PR_SET_NO_NEW_PRIVS، والذي يحظر الحصول على امتيازات جديدة، على سبيل المثال، إذا كان علم setuid موجودًا.

يتم العزل على مستوى نظام الملفات عن طريق إنشاء مساحة اسم تحميل جديدة بشكل افتراضي ، حيث يتم إنشاء قسم جذر فارغ باستخدام tmpfs. إذا لزم الأمر ، يتم إرفاق أقسام من FS خارجي بهذا القسم في وضع "mount --bind" (على سبيل المثال ، عند بدء تشغيله باستخدام الخيار "bwrap --ro-bind / usr / usr" ، قسم / usr من النظام الرئيسي في وضع القراءة فقط). تقتصر الشبكات على الوصول إلى واجهة الاسترجاع مع عزل مكدس الشبكة عبر علامتي CLONE_NEWNET و CLONE_NEWUTS.

الفرق الرئيسي من مشروع مماثل فايرجيل، والذي يستخدم أيضًا نموذج تشغيل setuid، هو أن طبقة إنشاء الحاوية في Bubblewrap تتضمن فقط الحد الأدنى من القدرات، ويتم نقل جميع الميزات المتقدمة اللازمة لتشغيل التطبيقات الرسومية والتفاعل مع سطح المكتب وتصفية مكالمات Pulseaudio إلى جانب Flatpak وتنفيذها بعد إعادة تعيين الامتيازات. يجمع Firejail جميع الوظائف ذات الصلة في ملف قابل للتنفيذ واحد، مما يعقد عملية التدقيق والحفاظ على الأمان على المستوى المناسب.

يتميز الإصدار الجديد بتقديم الدعم لإرفاق مساحات أسماء المستخدمين ومساحات أسماء معرف العملية (PID) الموجودة. تمت إضافة العلامات "--userns"، و"--userns2"، و"--pidns" للتحكم في اتصال مساحة الأسماء.
هذه الميزة لا تعمل في وضع setuid وتتطلب استخدام وضع منفصل يمكنه العمل دون الحصول على حقوق الجذر، ولكن يتطلب التنشيط
مساحات أسماء المستخدمين في النظام (معطلة افتراضيًا في Debian وRHEL/CentOSولا يستبعد الاحتمال التشغيل يحتمل متبقي نقاط الضعف لتقييدات "مساحات أسماء المستخدمين". تتضمن الميزات الجديدة في Bubblewrap 0.4 أيضًا القدرة على البناء باستخدام مكتبة musl C بدلاً من glibc ودعم حفظ المعلومات حول مساحات الأسماء في ملف يحتوي على إحصائيات بتنسيق JSON.

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster