lansimi i ri i mjetit , i destinuar për organizimin e punës në ambiente të izoluara në Linux dhe që funksionon në nivelin e aplikacioneve të përdoruesve pa privilegje. Në praktikë, Bubblewrap përdoret nga projekti Flatpak si një shtresë për izolon aplikacionet e instaluara nga paketat. Kodi i projektit është shkruar në gjuhën C dhe shkruhet nën licencën LGPLv2+.
PĂ«r izolim, pĂ«rdoren teknologjitĂ« tradicionale tĂ« virtualizimit tĂ« konteinerĂ«ve nĂ« Linux, tĂ« bazuara nĂ« pĂ«rdorimin e cgroups, hapĂ«sirave tĂ« emrave (namespaces), Seccomp dhe SELinux. PĂ«r tĂ« kryer operacione me privilegje pĂ«r konfigurimin e konteinerit, Bubblewrap запŃŃĐșаŃŃŃŃŃ Đ· ĐżŃаĐČĐ°ĐŒĐž root (skedari ekzekutiv me flamurin suid) dhe mĂ« pas e humb privilegjin pas pĂ«rfundimit tĂ« inicializimit tĂ« konteinerit.
Aktivizimi nĂ« sistemin e hapĂ«sirave tĂ« emrave tĂ« identifikuesve tĂ« pĂ«rdoruesit (user namespaces), i cili lejon pĂ«rdorimin nĂ« kontejnerĂ« tĂ« njĂ« grupi tĂ« veçantĂ« identifikuesish, nuk kĂ«rkohet pĂ«r punĂ«, pasi pĂ«r default nuk punon nĂ« shumĂ« distribucione (Bubblewrap pozicionohet si njĂ« implementim i kufizuar i suid me njĂ« nĂ«ngrup funksionesh tĂ« hapĂ«sirave tĂ« emrave tĂ« identifikuesve â pĂ«r tĂ« pĂ«rjashtuar tĂ« gjitha identifikuesit e pĂ«rdoruesve dhe proceseve nga mjedisi, pĂ«rveç atij aktual, pĂ«rdoren modet CLONE_NEWUSER dhe CLONE_NEWPID). PĂ«r mbrojtje shtesĂ«, programe tĂ« ekzekutuara nĂ«n menaxhimin e
Bubblewrap përfundimisht nisën në modin PR_SET_NO_NEW_PRIVS, që ndalon marrjen e privilegjeve të reja, për shembull, në rastin e flamurit setuid.
Izolimi në nivelin e sistemit të skedarëve bëhet përmes krijimit të një hapësire të re të përkohshme siç është hapësira e montimit (mount namespace), ku krijohet një pjesë e zbrazët rrënjore përmes tmpfs. Në këtë pjesë, sipas nevojës, lidhen pjesë të sistemit të skedarëve të jashtëm në mënyrën "mount --bind" (për shembull, kur fillohet me opsionin "bwrap --ro-bind /usr /usr", pjesa /usr kalon nga sistemi kryesor në mënyrë vetëm për lexim). Aftësitë rrjetore kufizohen në qasje në ndërfaqen loopback me izolimin e stekës rrjetore përmes flagjeve CLONE_NEWNET dhe CLONE_NEWUTS.
Dallimi kryesor nga projekti i ngjashëm , i cili gjithashtu përdor modelin e fillimit me përdorimin e setuid, është se në Bubblewrap, shtresa për krijimin e kontejnerëve përfshin vetëm minimumin e nevojshëm të mundësive, ndërsa të gjitha funksionet e avancuara, të nevojshme për të filluar aplikacionet grafike, ndërveprimin me desktopin dhe filtrimin e thirrjeve për Pulseaudio, janë të shkëputura në anën e Flatpak dhe ekzekutohen pas heqjes së privilegjeve. Firejail, nga ana tjetër, bashkon në një skedar ekzekutiv të gjitha funksionet përkatëse, gjë që e komplikon auditimin dhe ruajtjen e sigurisë në .
Ăelja e re karakterizohet nga implementimi i mbĂ«shtetjes pĂ«r lidhjen e hapĂ«sirave ekzistuese tĂ« emrave tĂ« identifikuesve tĂ« pĂ«rdoruesve (user namespaces) dhe proceseve (pid namespaces). PĂ«r tĂ« menaxhuar lidhjen e hapĂ«sirave tĂ« emrave janĂ« shtuar flamujt "âuserns", "âuserns2" dhe "âpidns".
Kjo mundësi nuk funksionon në modalitetin setuid dhe kërkon përdorimin e një modaliteti të veçantë, i cili mund të funksionojë pa e marrë të drejtat root, por kërkon aktivizimin
hapësirave të emrave të përdoruesve në sistem (nga të cilat, me parazgjedhje, janë të çaktivizuara në Debian dhe RHEL/CentOS) dhe nuk përjashton mundësinë për rreth kufizimeve "user namespaces". Nga mundësitë e reja, Bubblewrap 0.4 gjithashtu vë në dukje mundësinë e ndërtimit me bibliotekën C musl në vend të glibc dhe mbështetje për ruajtjen e informacionit të hapësirave të emrave në një skedar me statistikë në formatin JSON.
Burimi: opennet.ru
