Para isolamento, são utilizadas tecnologias tradicionais de virtualização de containers Linux, baseadas no uso de cgroups, namespaces, Seccomp e SELinux. Para realizar operações privilegiadas para configurar um contêiner, o Bubblewrap é iniciado com direitos de root (um arquivo executável com um sinalizador suid) e, em seguida, redefine os privilégios após o contêiner ser inicializado.
Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.
O isolamento no nível do sistema de arquivos é realizado criando um novo namespace de montagem por padrão, no qual uma partição raiz vazia é criada usando tmpfs. Se necessário, partições FS externas são anexadas a esta partição no modo “mount —bind” (por exemplo, quando iniciada com a opção “bwrap —ro-bind /usr /usr”, a partição /usr é encaminhada do sistema principal no modo somente leitura). Os recursos de rede são limitados ao acesso à interface de loopback com isolamento de pilha de rede por meio dos sinalizadores CLONE_NEWNET e CLONE_NEWUTS.
Principais diferenças de um projeto semelhante
Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность
Fonte: opennet.ru