Для ізаляцыі выкарыстоўваюцца традыцыйныя для Linux тэхналогіі кантэйнернай віртуалізацыі, заснаваныя на выкарыстанні cgroups, прастор імёнаў (namespaces), Seccomp і SELinux. Для выканання прывілеяваных аперацый па наладзе кантэйнера Bubblewrap запускаецца з правамі root (выкананы файл c suid-сцягам) з наступным скідам прывілеяў пасля завяршэння ініцыялізацыі кантэйнера.
Актывацыя ў сістэме прастор імёнаў ідэнтыфікатараў карыстача (user namespaces), якія дазваляюць выкарыстоўваць у кантэйнерах уласны асобны набор ідэнтыфікатараў, для працы не патрабуецца, бо па змаўчанні не працуе ў шматлікіх дыстрыбутывах (Bubblewrap пазіцыянуецца як абмежаваная suid-рэалізацыя падмноства магчымасцяў user name усіх ідэнтыфікатараў карыстачоў і працэсаў з асяроддзя, акрамя бягучага, выкарыстоўваюцца рэжымы CLONE_NEWUSER і CLONE_NEWPID). Для дадатковай абароны выкананыя пад кіраваннем
Bubblewrap праграмы запускаюцца ў рэжыме PR_SET_NO_NEW_PRIVS, які забараняе атрыманне новых прывілеяў, напрыклад, пры наяўнасці сцяга setuid.
Ізаляцыя на ўзроўні файлавай сістэмы вырабляецца праз стварэнне па змаўчанні новай прасторы імёнаў кропак мантавання (mount namespace), у якім пры дапамозе tmpfs ствараецца пустая каранёвая частка. У дадзены раздзел пры неабходнасці прымацоўваюцца часткі знешняй ФС у рэжыме "mount -bind" (напрыклад, пры запуску c опцыяй "bwrap -ro-bind /usr /usr" раздзел /usr пракідваецца з асноўнай сістэмы ў рэжыме толькі для чытання). Сеткавыя магчымасці абмяжоўваюцца доступам да loopback-інтэрфейсу з ізаляцыяй сеткавага стэка праз сцягі CLONE_NEWNET і CLONE_NEWUTS.
Ключавым адрозненнем ад падобнага праекту
Новы выпуск адметны рэалізацыяй падтрымкі далучэння існуючых прастор імёнаў ідэнтыфікатараў карыстальнікаў (user namespaces) і працэсаў (pid namespaces). Для кіравання падлучэннем прастор імёнаў дададзены сцягі "-userns", "userns2" і "pidns".
Дадзеная магчымасць не працуе ў рэжыме setuid і патрабуе прымянення асобнага рэжыму, які можа працаваць без атрымання правоў root, але патрабуе актывацыі.
user namespaces у сістэме (па змаўчанні адключаныя ў Debian і RHEL/CentOS) і не выключае магчымасць
Крыніца: opennet.ru