يتم حاليًا تطوير آلية عزل مشابهة لآلية التعهد والكشف عن FreeBSD

بالنسبة لـ FreeBSD، تم اقتراح تنفيذ آلية عزل التطبيق، تذكرنا بتعهدات وكشف النقاب عن مكالمات النظام التي طورها مشروع OpenBSD. يتم تحقيق العزل في التعهد من خلال منع الوصول إلى مكالمات النظام غير المستخدمة في التطبيق، وفي الكشف عن طريق فتح الوصول بشكل انتقائي فقط إلى مسارات الملفات الفردية التي يمكن للتطبيق العمل معها. بالنسبة للتطبيق، يتم تشكيل نوع من القائمة البيضاء لاستدعاءات النظام ومسارات الملفات، ويتم حظر جميع المكالمات والمسارات الأخرى.

الفرق بين نظير plegde وكشف النقاب الذي تم تطويره لـ FreeBSD يعود إلى توفير طبقة إضافية تسمح لك بعزل التطبيقات دون إجراء تغييرات على التعليمات البرمجية الخاصة بها أو مع الحد الأدنى من التغييرات. تذكر أنه في OpenBSD، يهدف كل من التعهد والكشف عن التكامل المحكم مع البيئة الأساسية ويتم استخدامهما عن طريق إضافة تعليقات توضيحية خاصة إلى كود كل تطبيق. لتبسيط تنظيم الحماية، تسمح لك المرشحات بالاستغناء عن التفاصيل على مستوى استدعاءات النظام الفردية ومعالجة فئات استدعاءات النظام (الإدخال/الإخراج، قراءة الملفات، كتابة الملفات، المقابس، ioctl، sysctl، إطلاق العملية، إلخ.) . يمكن استدعاء وظائف تقييد الوصول في كود التطبيق أثناء تنفيذ إجراءات معينة، على سبيل المثال، يمكن رفض الوصول إلى المقابس والملفات بعد فتح الملفات الضرورية وإنشاء اتصال بالشبكة.

ينوي مؤلف منفذ التعهد والكشف عن FreeBSD توفير القدرة على عزل التطبيقات التعسفية، والتي يتم من خلالها اقتراح الأداة المساعدة الستارية، والتي تسمح لك بتطبيق القواعد المحددة في ملف منفصل على التطبيقات. يتضمن التكوين المقترح ملفًا بالإعدادات الأساسية التي تحدد فئات مكالمات النظام ومسارات الملفات النموذجية الخاصة بتطبيقات معينة (العمل مع الصوت، وتفاعل الشبكة، والتسجيل، وما إلى ذلك)، بالإضافة إلى ملف به قواعد الوصول لتطبيقات محددة.

يمكن استخدام الأداة المساعدة الستارية لعزل معظم الأدوات المساعدة غير المعدلة وعمليات الخادم والتطبيقات الرسومية وحتى جلسات سطح المكتب بأكملها. يمكن استخدام الستارة جنبًا إلى جنب مع آليات العزل التي يوفرها النظامان الفرعيان Jail وCapsicum. من الممكن أيضًا تنظيم العزلة المتداخلة، عندما ترث التطبيقات التي تم إطلاقها القواعد المحددة للتطبيق الأصلي، وتكملها بالقيود الفردية. بعض عمليات kernel (تسهيلات تصحيح الأخطاء، POSIX/SysV IPC، PTYs) محمية بشكل إضافي بواسطة آلية حاجز تمنع الوصول إلى كائنات kernel التي لم يتم إنشاؤها بواسطة العملية الحالية أو الأصل.

يمكن للعملية تكوين عزلها الخاص عن طريق استدعاء Curtainctl أو باستخدام وظائف libcurtain's plegde() وكشف النقاب عن()، المشابهة لتلك الموجودة في OpenBSD. لتتبع الأقفال أثناء تشغيل التطبيق، يتم توفير sysctl "security.curtain.log_level". يتم تمكين الوصول إلى بروتوكولي X11 وWayland بشكل منفصل عن طريق تحديد خيارات "-X"/"-Y" و"-W" عند تشغيل الستار، ولكن دعم التطبيقات الرسومية لم يستقر بعد بشكل كافٍ ولديه عدد من المشكلات التي لم يتم حلها ( تظهر المشاكل بشكل رئيسي عند استخدام X11، ويتم تنفيذ دعم Wayland بشكل أفضل بكثير). يمكن للمستخدمين إضافة قيود إضافية عن طريق إنشاء ملفات القواعد المحلية (~/.curtain.conf). على سبيل المثال، للسماح بالكتابة من Firfox فقط إلى الدليل ~/Downloads/، يمكنك إضافة قسم "[firefox]" بالقاعدة "~/Downloads/ : rw +".

يتضمن التنفيذ وحدة mac_curtain kernel للتحكم الإلزامي في الوصول (MAC، التحكم الإلزامي في الوصول)، ومجموعة من التصحيحات لنواة FreeBSD مع تنفيذ المعالجات والمرشحات الضرورية، ومكتبة libcurtain لاستخدام وظائف التعهد وكشف النقاب في التطبيقات، الأداة المساعدة الستارية، مثل ملفات التكوين، ومجموعة من الاختبارات والتصحيحات لبعض البرامج في مساحة المستخدم (على سبيل المثال، لاستخدام $TMPDIR لتوحيد العمل مع الملفات المؤقتة). حيثما أمكن، يعتزم المؤلف تقليل عدد التغييرات التي تتطلب تصحيحات للنواة والتطبيقات.

المصدر: opennet.ru

إضافة تعليق