Za izolaciju se koriste tradicionalne tehnologije virtualizacije Linux spremnika, temeljene na korištenju cgroups, namespaces, Seccomp i SELinux. Za izvođenje privilegiranih operacija za konfiguriranje spremnika, Bubblewrap se pokreće s root pravima (izvršna datoteka s oznakom suid), a zatim poništava privilegije nakon što se spremnik inicijalizira.
Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.
Izolacija na razini datotečnog sustava postiže se stvaranjem novog namespacea montiranja prema zadanim postavkama, u kojem se prazna korijenska particija stvara pomoću tmpfs. Ako je potrebno, vanjske FS particije se pridružuju ovoj particiji u načinu rada "mount —bind" (na primjer, kada se pokrene s opcijom "bwrap —ro-bind /usr /usr", /usr particija se prosljeđuje iz glavnog sustava u načinu rada samo za čitanje). Mrežne mogućnosti ograničene su na pristup sučelju povratne petlje s izolacijom mrežnog stoga putem oznaka CLONE_NEWNET i CLONE_NEWUTS.
Ključna razlika u odnosu na sličan projekt
Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность
Izvor: opennet.ru