I dispozitshëm lëshimi i mjetit për organizimin e punës së mjediseve të izoluara Bubblewrap 0.5.0, zakonisht i përdorur për të kufizuar aplikacione të veçanta të përdoruesve pa privilegje. Në praktikë, Bubblewrap përdoret nga projekti Flatpak si një shtresë për izolimin e aplikacioneve të nisura nga paketat. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën LGPLv2+.
Për izolimin përdoren teknologjitë tradicionale të virtualizimit të kontejnerë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 kontejnerit, Bubblewrap ekzekutohet me të drejta root (skedari ekzekutiv me shenjën suid), duke i hequr më pas privilegjet pas përfundimit të inicializimit të kontejnerit.
Aktivizimi nĂ« sistem i user namespaces, qĂ« lejojnĂ« pĂ«rdorimin e njĂ« grupi tĂ« veçantĂ« identifikuesish brenda kontejnerĂ«ve, nuk kĂ«rkohet pĂ«r funksionimin, pasi si parazgjedhje kjo veçori nuk punon nĂ« shumĂ« shpĂ«rndarje (Bubblewrap pozicionohet si njĂ« implementim i kufizuar suid i njĂ« nĂ«nkompleti tĂ« mundĂ«sive tĂ« user namespaces â pĂ«r tĂ« pĂ«rjashtuar nga mjedisi tĂ« gjithĂ« identifikuesit e pĂ«rdoruesve dhe proceseve, pĂ«rveç atij aktual, pĂ«rdoren mĂ«nyrat CLONE_NEWUSER dhe CLONE_NEWPID). PĂ«r mbrojtje shtesĂ«, programet e ekzekutuara nĂ«n kontrollin e Bubblewrap nisen nĂ« regjimin PR_SET_NO_NEW_PRIVS, i cili ndalon marrjen e privilegjeve tĂ« reja, pĂ«r shembull nĂ« prani tĂ« flamurit setuid.
Izolimi nĂ« nivelin e sistemit tĂ« skedarĂ«ve bĂ«het pĂ«rmes krijimit tĂ« njĂ« hapĂ«sire tĂ« re tĂ« emrave tĂ« pikave tĂ« montimit (mount namespace) me parazgjedhje, nĂ« tĂ« cilĂ«n krijohet njĂ« pjesĂ« e zbrazĂ«t e rrĂ«njĂ«s duke pĂ«rdorur tmpfs. NĂ« kĂ«tĂ« pjesĂ«, sipas nevojĂ«s, lidhen pjesĂ« tĂ« FS-sĂ« sĂ« jashtme nĂ« modalitetin âmount âbindâ (pĂ«r shembull, kur ekzekutohet me opsionin âbwrap âro-bind /usr /usrâ, pjesa /usr kalon nga sistemi kryesor nĂ« modalitetin vetĂ«m pĂ«r lexim). MundĂ«sitĂ« rrjetĂ«rore kufizohen nĂ« qasjen nĂ« ndĂ«rfaqen loopback me izolimin e skakereve tĂ« rrjetit pĂ«rmes flamujve CLONE_NEWNET dhe CLONE_NEWUTS.
Dallimi kryesor nga projekti i ngjashëm Firejail, i cili gjithashtu përdor modelin e nisjes me setuid, është se te Bubblewrap shtresa për krijimin e kontejnerëve përfshin vetëm minimumin e nevojshëm të funksioneve, ndërsa të gjitha veçoritë e avancuara të nevojshme për nisjen e aplikacioneve grafike, ndërveprimin me desktop-in dhe filtrimin e thirrjeve ndaj Pulseaudio janë zhvendosur te Flatpak dhe ekzekutohen vetëm pasi privilegjet të jenë hequr. Ndërsa Firejail bashkon në një skedar të vetëm të ekzekutueshëm të gjitha funksionet shoqëruese, gjë që e bën më të vështirë auditimin dhe ruajtjen e sigurisë në nivelin e duhur.
NĂ« kanalin e ri ofrohen opsione: «âchmod» pĂ«r ndryshimin e tĂ« drejtave tĂ« aksesit, «âclearenv» pĂ«r pastrimin e variablave tĂ« mjedisit (pĂ«rveç PWD) dhe «âperms» pĂ«r pĂ«rcaktimin e tĂ« drejtave tĂ« aksesit qĂ« aplikohet gjatĂ« operacioneve «âbind-data», «âdir», «âfile», «âro-bind-data» dhe «âtmpfs». ĂshtĂ« pĂ«rmirĂ«suar diagnostikimi i problemeve qĂ« ndodhin gjatĂ« dĂ«shtimit tĂ« montimit nĂ« modin bind. PĂ«r zsh Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r auto-kompletimin e komandave me prekjen e tabulatĂ«s.
Burimi: opennet.ru
