Lansimi i Bubblewrap 0.4.0, shtresa për krijimin e ambienteve të izoluara

I verfĂŒshĂ«m lansimi i ri i mjetit Bubblewrap 0.4.0, 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 distribuohet 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 Firejail, 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ë nivelin e duhur.

Ç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ë eksploatimi potencialisht të mbetura të dobësive 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

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster