იზოლირებისთვის გამოიყენება Linux კონტეინერის ვირტუალიზაციის ტრადიციული ტექნოლოგიები, რომლებიც დაფუძნებულია cgroups, namespaces, Seccomp და SELinux-ის გამოყენებაზე. კონტეინერის კონფიგურაციისთვის პრივილეგირებული ოპერაციების შესასრულებლად, Bubblewrap იხსნება root უფლებებით (შესრულებადი ფაილი suid დროშით) და შემდეგ აღადგენს პრივილეგიებს კონტეინერის ინიციალიზაციის შემდეგ.
Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.
ფაილური სისტემის დონეზე იზოლაცია მიიღწევა ნაგულისხმევად ახალი სამონტაჟო სახელების სივრცის შექმნით, რომელშიც იქმნება ცარიელი root დანაყოფი 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) и не исключает возможность
წყარო: opennet.ru