Մեկուսացման համար օգտագործվում են Linux կոնտեյներների վիրտուալացման ավանդական տեխնոլոգիաները՝ հիմնված cgroups-ի, namespace-ների, Seccomp-ի և SELinux-ի օգտագործման վրա: Կոնտեյների կազմաձևման համար արտոնյալ գործողություններ կատարելու համար Bubblewrap-ը գործարկվում է արմատային իրավունքներով (գործարկվող ֆայլ՝ suid դրոշակով) և այնուհետև վերակայում է արտոնությունները կոնտեյների սկզբնավորումից հետո:
Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.
Ֆայլային համակարգի մակարդակում մեկուսացումն իրականացվում է լռելյայնորեն ստեղծելով նոր մոնտաժի անվանատարածք, որում ստեղծվում է դատարկ արմատային բաժին՝ օգտագործելով tmpfs: Անհրաժեշտության դեպքում արտաքին FS միջնորմները կցվում են այս բաժանմանը «mount —bind» ռեժիմով (օրինակ, երբ գործարկվում է «bwrap —ro-bind /usr /usr» տարբերակով, /usr միջնորմը փոխանցվում է հիմնական համակարգից։ միայն կարդալու ռեժիմում): Ցանցի հնարավորությունները սահմանափակվում են CLONE_NEWNET և CLONE_NEWUTS դրոշների միջոցով ցանցային ցցերի մեկուսացման հետ կապի միջերես մուտք գործելու համար:
Հիմնական տարբերությունը նմանատիպ նախագծից
Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность
Source: opennet.ru