Itusilẹ ti Bubblewrap 0.4.0, Layer fun ṣiṣẹda awọn agbegbe ti o ya sọtọ

Wa новый выпуск инструментария Bubble murasilẹ 0.4.0, предназначенного для организации работы изолированных окружений в Linux и функционирующий на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Код проекта написан на языке Си и pin nipasẹ под лицензией LGPLv2+.

Fun ipinya, awọn imọ-ẹrọ imudara eiyan Linux ibile ni a lo, da lori lilo awọn akojọpọ, awọn aaye orukọ, Seccomp ati SELinux. Lati ṣe awọn iṣẹ ti o ni anfani lati tunto eiyan kan, Bubblewrap ti ṣe ifilọlẹ pẹlu awọn ẹtọ gbongbo (faili ti o le ṣiṣẹ pẹlu asia suid) ati lẹhinna tun awọn anfani tunto lẹhin ti a ti kọ eiyan naa.

Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.

Ipinya ni ipele eto faili jẹ aṣeyọri nipasẹ ṣiṣẹda aaye orukọ oke tuntun nipasẹ aiyipada, ninu eyiti a ṣẹda ipin root ofo ni lilo tmpfs. Ti o ba jẹ dandan, awọn ipin FS ita ti wa ni asopọ si ipin yii ni ipo “mount —bind” (fun apẹẹrẹ, nigbati a ṣe ifilọlẹ pẹlu aṣayan “bwrap —ro-bind / usr / usr”, ipin / usr ti wa ni ifiranšẹ siwaju lati eto akọkọ. ni ipo kika-nikan). Awọn agbara nẹtiwọọki ni opin si iraye si wiwo loopback pẹlu ipinya akopọ akopọ nẹtiwọọki nipasẹ awọn asia CLONE_NEWNET ati CLONE_NEWUTS.

Iyatọ bọtini lati iṣẹ akanṣe kan Fireejail, который также использует модель запуска с применением setuid, является то, что в Bubblewrap прослойка для создания контейнеров включает только необходимый минимум возможностей, а все расширенные функции, необходимые для запуска графических приложений, взаимодействия с рабочим столом и фильтрации обращений к Pulseaudio, вынесены на сторону Flatpak и выполняются уже после сброса привилегий. Firejail же объединяет в одном исполняемом файле все сопутствующие функции, что усложняет его аудит и поддержание безопасности на должном уровне.

Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность ilokulo потенциально остающихся ailagbara для обода ограничений «user namespaces». Из новых возможностей Bubblewrap 0.4 также отмечается возможность сборки с Си-библиотекой musl вместо glibc и поддержка сохранения информации о пространствах имён в файл со статистикой в формате JSON.

orisun: opennet.ru

Fi ọrọìwòye kun