Izdaja Bubblewrap 0.6, sloja za ustvarjanje izoliranih okolij.

Na voljo je izpeljava orodja za organizacijo dela iz izoliranih okolij Bubblewrap 0.6, ki se običajno uporablja za omejevanje posameznih aplikacij neprijavljenih uporabnikov. V praksi se Bubblewrap uporablja v projektu Flatpak kot plast za izolacijo aplikacij, ki jih zagnamo iz paketov. Koda projekta je napisana v jeziku C in se distribuira pod licenco LGPLv2+.

Za izolacijo se uporabljajo tradicionalne tehnologije kontejnerske virtualizacije za Linux, ki temeljijo na uporabi cgroups, prostorov imen (namespaces), Seccomp in SELinux. Za izvedbo privilegiranih operacij za konfiguracijo kontejnerja se Bubblewrap zažene s pravicami root (izvedbena datoteka c s suid-označbo) z nadaljnjim preklicem privilegijev po zaključku inicializacije kontejnerja.

Aktivacija prostorov imen identifikatorjev uporabnika (user namespaces) v sistemu, ki omogočajo uporabo lastnega ločenega sklopa identifikatorjev v kontejnerjih, ni potrebna, saj privzeto ne deluje v mnogih distribucijah (Bubblewrap se pozicionira kot omejena suid-izvedba podmnožice možnosti user namespaces — za izključitev vseh identifikatorjev uporabnikov in procesov iz okolja, razen trenutnega, se uporabljajo načini CLONE_NEWUSER in CLONE_NEWPID). Za dodatno zaščito se programi, ki delujejo pod upravljanjem Bubblewrap, zaženejo v načinu PR_SET_NO_NEW_PRIVS, ki prepoveduje pridobitev novih privilegijev, na primer ob prisotnosti oznake setuid.

Izolacija na razini datotečnog sustava ostvaruje se stvaranjem novog imenskog prostora točaka montiranja (mount namespace) prema zadanim postavkama, u kojem se pomoću tmpfs stvara prazna korijenska particija. U ovu particiju, po potrebi, povezani su dijelovi vanjskog FS-a u režimu 'mount —bind' (na primjer, pri pokretanju s opcijom 'bwrap —ro-bind /usr /usr' dijel je /usr proslijeđen iz glavnog sustava u režimu samo za čitanje). Mrežne mogućnosti ograničene su na pristup loopback sučelju uz izolaciju mrežnog stoga putem zastavica CLONE_NEWNET i CLONE_NEWUTS.

Ključna razlika od podobnega projekta Firejail, ki prav tako uporablja model za zagon z uporabo setuid, je ta, da Bubblewrap plast za ustvarjanje kontejnerjev vključuje le nujno potrebne možnosti, medtem ko so vse razširjene funkcije, potrebne za zagon grafičnih aplikacij, interakcijo s namizjem in filtriranje zahtevkov za Pulseaudio, prenesene na stran Flatpak in se izvajajo šele po preklicu privilegijev. Firejail pa združuje vse spremljajoče funkcije v eni izvršilni datoteki, kar oteži njegov revizijski postopek in vzdrževanje varnosti na ustrezni ravni.

U novom izdanju:

  • Dodana je podpora za gradbeni sistem Meson. Podpora za gradnjo s pomočjo Autotools trenutno ostaja, vendar bo odstranjena v eni od prihodnjih izpeljav.
  • Uvedena je možnost „—add-seccomp“ za dodajanje več kot enega programa seccomp. Dodano je opozorilo, da bo pri ponovnem navedenju možnosti „—seccomp“ uporabljen samo zadnji parameter.
  • Veja master v git-repozitoriju je preimenovana v main.
  • Dodana je delna podpora specifikaciji REUSE, ki poenoti postopek navajanja informacij o licencah in avtorskih pravicah. V mnoge datoteke s kodo so dodani naslovi SPDX-License-Identifier. Slednje priporočila REUSE omogočajo poenostavitev avtomatskega določanja, katera licenca se uporablja za katere dele kode aplikacije.
  • Dodana je preverba vrednosti števec argumentov ukazne vrstice (argc) in izveden je nujni izhod, če je števec enak nič. Ta sprememba omogoča blokiranje težav s varnostjo, ki jih povzroča nepravilno obravnavanje predanih argumentov ukazne vrstice, kot je CVE-2021-4034 v Polkit.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster