Bubblewrap ، أداة لإنشاء تطبيقات في بيئات معزولة

Bubblewrap هي أداة ماذا يعمل لتنظيم عمل وضع الحماية على Linux و اهرب على مستوى التطبيق للمستخدمين غير المتميزين. من الناحية العملية ، يتم استخدام Bubblewrap بواسطة مشروع Flatpak كطبقة وسيطة لعزل التطبيقات التي تم إطلاقها من حزم البرامج.

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

ليست هناك حاجة لتمكين مساحات أسماء المستخدمين على النظام ، مما يسمح لك باستخدام مجموعة المعرفات الخاصة بك في الحاويات ، لأنها لا تعمل افتراضيًا على العديد من التوزيعات.

حول Bubblewrap

يتم وضع Bubblewrap باعتباره تطبيقًا محدودًا للسويداء من المجموعة الفرعية لوظائف مساحة اسم المستخدم لاستبعاد جميع معرّفات المستخدم والعمليات من البيئة باستثناء البيئة الحالية ، استخدم الأوضاع CLONE_NEWUSER و CLONE_NEWPID.

لمزيد من الحماية ، تبدأ البرامج التي تعمل في Bubblewrap في الوضع PR_SET_NO_NEW_PRIVS, الذي يحظر الامتيازات الجديدة ، على سبيل المثال ، مع العلم setuid.

يتم العزل على مستوى نظام الملفات عن طريق إنشاء مساحة اسم تحميل جديدة بشكل افتراضي ، حيث يتم إنشاء قسم جذر فارغ باستخدام tmpfs.

إذا لزم الأمر ، يتم إرفاق أقسام FS الخارجية بهذا القسم في «جبل ربط»(على سبيل المثال ، البدء بالخيار«bwrap –ro-bind / usr / usr'، تتم إعادة توجيه قسم / usr من المضيف في وضع القراءة فقط).

تقتصر إمكانيات الشبكة على الوصول إلى واجهة الاسترجاع مقلوب مع عزل مكدس الشبكة عبر المؤشرات CLONE_NEWNET و CLONE_NEWUTS.

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

من ناحية أخرى ، يجمع Firejail جميع الوظائف ذات الصلة في ملف واحد قابل للتنفيذ، مما يعقد تدقيقك والحفاظ على الأمان عند المستوى المناسب.

Bubblewrap يعمل بشكل أساسي من خلال إنشاء مساحة اسم تحميل فارغة على نظام ملفات مؤقت التي سيتم تدميرها بعد اكتمال معالجة وضع الحماية.

باستخدام المحولات ، يمكن للمستخدم إنشاء بيئة نظام الملفات المطلوبة داخل مساحة اسم التحميل عن طريق تحميل الدلائل المطلوبة على الرابط من النظام المضيف.

فقاعات الفقاعات 0.4.0

Bubblewrap موجود حاليًا في نسخته 0.4.0 الذي تم إصداره مؤخرًا. تمت كتابة كود المشروع بلغة C وتوزيعه بموجب ترخيص LGPLv2 +.

النسخة الجديدة هو ملحوظ لتنفيذ الدعم للانضمام إلى مساحات الأسماء والعمليات المستخدمين الحاليين (مساحات أسماء pid).

تمت إضافة العلامات "-userns" و "-userns2" و "-pidns" للتحكم في اتصال مساحات الأسماء.

لا تعمل هذه الميزة في وضع setuid وتتطلب وضعًا منفصلاً يمكن أن يعمل بدون امتيازات الجذر ، ولكنها تتطلب تمكين مساحات أسماء المستخدمين على النظام (معطلة افتراضيًا في Debian و RHEL / CentOS) ولا تستبعد الاحتمال لاستغلال نقاط الضعف المحتملة المتبقية إلى حافة قيود "مساحات أسماء المستخدمين".

من الميزات الجديدة لـ Bubblewrap 0.4 ، لوحظ أيضًا إمكانية البناء باستخدام مكتبة musl C بدلاً من glibc ، ودعم حفظ معلومات مساحة الاسم في ملف إحصائيات بتنسيق JSON.

يمكن الرجوع إلى كود Bubblewrap ، بالإضافة إلى الوثائق المتعلقة به ، على Github ، الرابط هو هذا.


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.