ببل ریپ 0.4.0 کی ریلیز، الگ تھلگ ماحول بنانے کے لیے ایک تہہ

دستیاب новый выпуск инструментария بلبلہ لپیٹ 0.4.0, предназначенного для организации работы изолированных окружений в Linux и функционирующий на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Код проекта написан на языке Си и نے بانٹا под лицензией LGPLv2+.

تنہائی کے لیے، روایتی لینکس کنٹینر ورچوئلائزیشن ٹیکنالوجیز استعمال کی جاتی ہیں، جو cgroups، namespaces، Seccomp اور SELinux کے استعمال پر مبنی ہیں۔ کنٹینر کو کنفیگر کرنے کے لیے مراعات یافتہ کارروائیوں کو انجام دینے کے لیے، ببل ریپ کو روٹ رائٹس کے ساتھ لانچ کیا جاتا ہے (سوڈ فلیگ کے ساتھ ایک ایگزیکیوٹیبل فائل) اور پھر کنٹینر شروع ہونے کے بعد مراعات کو دوبارہ ترتیب دیا جاتا ہے۔

Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы 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 же объединяет в одном исполняемом файле все сопутствующие функции, что усложняет его аудит и поддержание безопасности на должном уровне.

Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность آپریٹنگ ممکنہ طور پر остающихся کمزوریاں для обода ограничений «user namespaces». Из новых возможностей Bubblewrap 0.4 также отмечается возможность сборки с Си-библиотекой musl вместо glibc и поддержка сохранения информации о пространствах имён в файл со статистикой в формате JSON.

ماخذ: opennet.ru

نیا تبصرہ شامل کریں