Izolācijai tiek izmantotas tradicionālās Linux konteineru virtualizācijas tehnoloģijas, kuru pamatā ir cgroups, namespaces, Seccomp un SELinux. Lai veiktu priviliģētas darbības konteinera konfigurēšanai, Bubblewrap tiek palaista ar saknes tiesībām (izpildāms fails ar suid karogu) un pēc tam atiestata privilēģijas pēc konteinera inicializācijas.
Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.
Izolēšana failu sistēmas līmenī tiek veikta, pēc noklusējuma izveidojot jaunu mount nosaukumvietu, kurā tiek izveidots tukšs saknes nodalījums, izmantojot tmpfs. Ja nepieciešams, šim nodalījumam tiek pievienoti ārējie FS nodalījumi režīmā “mount —bind” (piemēram, palaižot ar opciju “bwrap –ro-bind /usr /usr”, /usr nodalījums tiek pārsūtīts no galvenās sistēmas tikai lasīšanas režīmā). Tīkla iespējas ir ierobežotas, lai piekļūtu atpakaļcilpas saskarnei ar tīkla steka izolāciju, izmantojot karogus CLONE_NEWNET un CLONE_NEWUTS.
Ключевым отличием от похожего проекта
Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность
Avots: opennet.ru