Išskyrimui naudojamos tradicinės Linux konteinerių virtualizacijos technologijos, pagrįstos cgroups, namespaces, Seccomp ir SELinux naudojimu. Norint atlikti privilegijuotas sudėtinio rodinio konfigūravimo operacijas, „Bubblewrap“ paleidžiama su root teisėmis (vykdomasis failas su suid vėliava), o po to, kai konteineris inicijuojamas, privilegijos nustatomos iš naujo.
Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.
Išskyrimas failų sistemos lygiu atliekamas pagal numatytuosius nustatymus sukuriant naują prijungimo vardų erdvę, kurioje tuščias šakninis skaidinys sukuriamas naudojant tmpfs. Jei reikia, išoriniai FS skaidiniai prijungiami prie šio skaidinio „mount —bind“ režimu (pavyzdžiui, kai paleidžiama naudojant parinktį „bwrap —ro-bind /usr /usr“, /usr skaidinys persiunčiamas iš pagrindinės sistemos tik skaitymo režimu). Tinklo galimybės apsiriboja prieiga prie grįžtamojo ryšio sąsajos su tinklo dėklo izoliacija naudojant CLONE_NEWNET ir CLONE_NEWUTS vėliavėles.
Pagrindinis skirtumas nuo panašaus projekto
Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность
Šaltinis: opennet.ru