Serbestberdana Bubblewrap 0.6, qatek ji bo afirandina derdorên veqetandî

Serbestberdanek amûrên ji bo birêxistinkirina xebata hawîrdorên veqetandî Bubblewrap 0.6 heye, bi gelemperî ji bo sînordarkirina serîlêdanên kesane yên bikarhênerên bêdestûr tê bikar anîn. Di pratîkê de, Bubblewrap ji hêla projeya Flatpak ve wekî qatek tê bikar anîn da ku serîlêdanên ku ji pakêtan hatine destpêkirin veqetînin. Koda projeyê bi C-yê hatî nivîsandin û di bin lîsansa LGPLv2+ de tê belav kirin.

Ji bo veqetandinê, teknolojiyên virtualîzasyona konteynerê Linux-ê yên kevneşopî têne bikar anîn, li ser bingeha karanîna cgroup, navan, Seccomp û SELinux. Ji bo pêkanîna operasyonên îmtiyazê ji bo mîhengkirina konteynerek, Bubblewrap bi mafên root (pelek îcrakar a bi ala suid) ve tê destpêkirin û dûv re piştî ku konteynir dest pê kir îmtiyazan vedigire.

Çalakkirina cîhên navên bikarhêner ên di pergala cîhê navan de, ku destûrê dide te ku hûn komek nasnameyên xwe yên cihêreng di konteyneran de bikar bînin, ji bo xebitandinê ne hewce ye, ji ber ku ew di gelek belavokan de bi xweber naxebite (Bubblewrap wekî pêkanîna xwerû ya sînorkirî ya binkoma kapasîteyên cîhên navên bikarhêner - ji bo derxistina hemî nasnameyên bikarhêner û pêvajoyê ji hawîrdorê, ji bilî ya heyî, modên CLONE_NEWUSER û CLONE_NEWPID têne bikar anîn). Ji bo parastina zêde, bernameyên ku di binê Bubblewrap de têne darve kirin di moda PR_SET_NO_NEW_PRIVS de têne destpêkirin, ku girtina îmtiyazên nû qedexe dike, mînakî, heke ala setuid hebe.

Veqetandin di asta pergala pelan de bi afirandina cîhek navek nû ya çiyê ji hêla xwerû ve, ku tê de dabeşek root ya vala bi tmpfs tê afirandin, pêk tê. Ger hewce be, dabeşên FS yên derveyî di moda "mount -bind" de bi vê dabeşkirinê ve têne girêdan (mînak, dema ku bi vebijarka "bwrap —ro-bind /usr /usr" tê destpêkirin, dabeşkirina /usr ji pergala sereke tê şandin. di moda tenê xwendinê de). Kapasîteyên torê ji bo gihîştina navbeynkariya loopback ya bi veqetandina stoka torê ve bi alayên CLONE_NEWNET û CLONE_NEWUTS ve sînorkirî ne.

Cûdahiya sereke ji projeya Firejail-ê ya wekhev, ku di heman demê de modela destpêkirina setuid-ê jî bikar tîne, ev e ku di Bubblewrap de qata çêkirina konteynerê tenê kêmasiyên pêwîst, û hemî fonksiyonên pêşkeftî yên ku ji bo xebitandina sepanên grafîkî, danûstendina bi sermaseyê û daxwazên fîlterkirinê re hewce ne dihewîne. ji Pulseaudio re, veguheztin aliyê Flatpak û piştî ku îmtiyaz ji nû ve hatin vegerandin, hate darve kirin. Firejail, ji hêla din ve, hemî fonksiyonên têkildar di yek pelê darvekirinê de tevlihev dike, ku kontrolkirin û parastina ewlehiyê di asta rast de dijwar dike.

Di weşana nû de:

  • Piştgiriya ji bo pergala civîna Meson zêde kir. Piştgiriya ji bo avakirina bi Autotools ji bo niha hate ragirtin, lê dê di serbestberdana pêşerojê de were rakirin.
  • Vebijarka "--lê zêde bike-seccomp" pêk anî da ku ji yek bernameyek seccomp zêde bike. Hişyariyek lê zêde kir ku heke hûn vebijarka "--seccomp" dîsa diyar bikin, tenê pîvana paşîn dê were sepandin.
  • Navê şaxê masterê di depoya git de wekî sereke hate guheztin.
  • Piştgiriya qismî ji bo taybetmendiya REUSE lê zêde kir, ku pêvajoya destnîşankirina agahdariya lîsans û mafên xwerû yek dike. Gelek pelên kodê sernavên SPDX-License-Identifier hatine zêdekirin. Li dû rêwerzên REUSE hêsantir dike ku meriv bixweber diyar bike ka kîjan lîsans ji kîjan beşên koda serîlêdanê re derbas dibe.
  • Kontrolkirina nirxa jimareya argumana rêzika fermanê (argc) lê zêde kir û ger hejmar sifir be derketina acîl pêk anî. Guhertin alîkariya astengkirina pirsgirêkên ewlehiyê dike ku ji ber nerastkirina argumanên rêza fermanê derbas bûne, wek CVE-2021-4034 di Polkit de.

Source: opennet.ru

Add a comment