novo izdanje alata , dizajniran za organiziranje rada izoliranih okruženja u Linuxu i rad na razini aplikacije neprivilegiranih korisnika. U praksi, projekt Flatpak koristi Bubblewrap kao sloj za izolaciju aplikacija pokrenutih iz paketa. Kod projekta je napisan u C i licenciran pod LGPLv2+.
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.
Aktivacija korisničkih prostora imena u sustavu prostora imena, koji vam omogućuje korištenje vlastitog zasebnog skupa identifikatora u spremnicima, nije potrebna za rad, budući da ne radi prema zadanim postavkama u mnogim distribucijama (Bubblewrap je pozicioniran kao ograničena suid implementacija podskup mogućnosti korisničkih imenskih prostora - za isključivanje svih identifikatora korisnika i procesa iz okruženja, osim trenutnog, koriste se načini rada CLONE_NEWUSER i CLONE_NEWPID). Za dodatnu zaštitu, izvršna pod kontrolom
Bubblewrap programi pokreću se u načinu PR_SET_NO_NEW_PRIVS, koji zabranjuje dobivanje novih privilegija, na primjer, ako je prisutna zastavica 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 , koji također koristi model pokretanja setuid, je da u Bubblewrapu sloj za stvaranje spremnika uključuje samo potrebne minimalne mogućnosti, a sve napredne funkcije potrebne za pokretanje grafičkih aplikacija, interakciju s radnom površinom i filtriranje poziva Pulseaudio-u su vanjski suradnici Flatpak-a i izvršavaju se nakon resetiranja privilegija. Firejail, s druge strane, kombinira sve povezane funkcije u jednu izvršnu datoteku, što otežava reviziju i održavanje sigurnosti na .
Novo izdanje je značajno po implementaciji podrške za spajanje postojećih korisničkih imenskih prostora i procesnih pid imenskih prostora. Za kontrolu povezivanja imenskih prostora dodane su oznake “--userns”, “--userns2” i “-pidns”.
Ova značajka ne radi u setuid načinu rada i zahtijeva korištenje zasebnog načina rada, koji može raditi bez dobivanja root prava, ali zahtijeva aktivaciju
korisničkih imenskih prostora na sustavu (onemogućeno prema zadanim postavkama na Debianu i RHEL/CentOS) i ne isključuje mogućnost za rub ograničenja "prostora imena korisnika". Nove značajke Bubblewrap 0.4 također uključuju mogućnost izrade s musl C bibliotekom umjesto glibc i podršku za spremanje informacija o prostoru imena u datoteku sa statistikom u JSON formatu.
Izvor: opennet.ru
