„Flatpak 1.12.0“ savarankiško paketo sistemos išleidimas

Paskelbta nauja stabili „Flatpak 1.12“ įrankių rinkinio atšaka, kuri suteikia savarankiškų paketų, nesusietų su konkrečiais „Linux“ paskirstymais, kūrimo sistemą, veikiančią specialiame konteineryje, kuris izoliuoja programą nuo likusios sistemos. „Flatpak“ paketų palaikymas teikiamas „Arch Linux“, „CentOS“, „Debian“, „Fedora“, „Gentoo“, „Mageia“, „Linux Mint“, „Alt Linux“ ir „Ubuntu“. „Flatpak“ paketai yra įtraukti į „Fedora“ saugyklą ir juos palaiko vietinė GNOME programų tvarkyklė.

Pagrindinės naujovės Flatpak 1.12 filiale:

  • Patobulintas įdėtos smėlio dėžės aplinkų valdymas, naudojamas „flatpak“ pakete kartu su klientu „Steam“ žaidimų pristatymo paslaugai. Įdėtose smėlio dėžėse leidžiama kurti atskiras /usr ir /app katalogų hierarchijas, kurios naudojamos Steam žaidimams paleisti atskirame konteineryje su savo /usr skaidiniu, atskirtu nuo aplinkos su Steam klientu.
  • Visi paketo egzemplioriai su tuo pačiu programos identifikatoriumi (programos ID) bendrina /tmp ir $XDG_RUNTIME_DIR katalogus. Pasirinktinai, naudodami žymą „--allow=per-app-dev-shm“, galite įjungti /dev/shm bendrinamo katalogo naudojimą.
  • Patobulintas teksto vartotojo sąsajos (TUI) programų, tokių kaip gdb, palaikymas.
  • Greitesnis „ostree prune“ komandos įgyvendinimas buvo pridėtas prie „build-update-repo“ paslaugų programos, optimizuotos darbui su saugyklomis archyvo režimu.
  • Pažeidimas CVE-2021-41133 diegiant portalo mechanizmą, susijęs su naujų sistemos iškvietimų, susijusių su skaidinių montavimu seccomp taisyklėse, blokavimu, buvo ištaisytas. Dėl pažeidžiamumo programa galėjo sukurti įdėtą smėlio dėžę, kad būtų galima apeiti „portalo“ tikrinimo mechanizmus, kurie naudojami prieigai prie išteklių, esančių už konteinerio ribų, organizuoti.

    Dėl to užpuolikas, atlikdamas su montavimu susijusius sistemos iškvietimus, gali apeiti smėlio dėžės izoliavimo mechanizmą ir gauti visišką prieigą prie pagrindinės aplinkos turinio. Pažeidžiamumą galima išnaudoti tik paketuose, kuriuose programoms suteikiama tiesioginė prieiga prie AF_UNIX lizdų, pvz., naudojamų Wayland, Pipewire ir pipewire-pulse. 1.12.0 leidime pažeidžiamumas nebuvo visiškai pašalintas, todėl 1.12.1 naujinimas buvo išleistas karštai.

Priminsime, kad „Flatpak“ leidžia programų kūrėjams supaprastinti savo programų, kurios nėra įtrauktos į standartines platinimo saugyklas, platinimą, paruošiant vieną universalų konteinerį, nekuriant atskirų rinkinių kiekvienam platinimui. Saugumu besirūpinantiems vartotojams „Flatpak“ leidžia paleisti abejotiną programą konteineryje, suteikiant prieigą tik prie tinklo funkcijų ir su programa susijusių vartotojo failų. Vartotojams, besidomintiems naujais produktais, „Flatpak“ leidžia įdiegti naujausius bandomuosius ir stabilius programų leidimus, nereikia keisti sistemos. Pavyzdžiui, Flatpak paketai sukurti LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio ir kt.

Kad būtų sumažintas paketo dydis, jame yra tik konkrečios programos priklausomybės, o pagrindinės sistemos ir grafikos bibliotekos (GTK, Qt, GNOME ir KDE bibliotekos ir t. t.) yra sukurtos kaip įskiepio standartinės vykdymo aplinkos. Pagrindinis skirtumas tarp „Flatpak“ ir „Snap“ yra tas, kad „Snap“ naudoja pagrindinės sistemos aplinkos komponentus ir izoliaciją, pagrįstą filtravimo sistemos iškvietimais, o „Flatpak“ sukuria atskirą konteinerį nuo sistemos ir veikia su dideliais vykdymo laiko rinkiniais, pateikdamas ne paketus kaip priklausomybes, o standartinius. vienos sistemos aplinkos (pavyzdžiui, visos bibliotekos, reikalingos GNOME ar KDE programoms veikti).

Be standartinės sistemos aplinkos (runtime), įdiegtos per specialią saugyklą, tiekiamos papildomos priklausomybės (paketas), reikalingos programos veikimui. Iš viso vykdymo laikas ir paketas sudaro konteinerio užpildymą, nepaisant to, kad vykdymo laikas yra įdiegtas atskirai ir susietas su keliais konteineriais vienu metu, o tai leidžia išvengti konteineriams įprastų sistemos failų dubliavimo. Vienoje sistemoje gali būti įdiegtos kelios skirtingos vykdymo laikas (GNOME, KDE) arba kelios to paties vykdymo laiko versijos (GNOME 3.40, GNOME 3.42). Konteineris su programa kaip priklausomybe naudoja susiejimą tik su konkrečia vykdymo programa, neatsižvelgiant į atskirus paketus, kurie sudaro vykdymo laiką. Visi trūkstami elementai supakuoti tiesiogiai su programa. Suformavus konteinerį, vykdymo laiko turinys sujungiamas kaip /usr skaidinys, o paketas – /app kataloge.

Vykdymo laiko ir taikomųjų programų konteineriai sukurti naudojant OSTree technologiją, kurioje vaizdas atomiškai atnaujinamas iš į Git panašios saugyklos, o tai leidžia paskirstymo komponentams taikyti versijų valdymo metodus (pavyzdžiui, galite greitai grąžinti sistemą atgal į ankstesnė būsena). RPM paketai verčiami į OSTree saugyklą naudojant specialų rpm-ostree sluoksnį. Atskiras paketų diegimas ir atnaujinimas darbo aplinkoje nepalaikomas, sistema atnaujinama ne atskirų komponentų lygmeniu, o kaip visuma, atomiškai keičiant savo būseną. Suteikia įrankius laipsniškai taikyti naujinimus, todėl nereikia visiškai pakeisti vaizdo su kiekvienu atnaujinimu.

Sukurta izoliuota aplinka visiškai nepriklauso nuo naudojamo paskirstymo ir, tinkamai nustačius paketą, neturi prieigos prie vartotojo ar pagrindinės sistemos failų ir procesų, negali tiesiogiai pasiekti įrangos, išskyrus išvestį per DRI, ir skambučius į tinklo posistemį. Grafikos išvestis ir įvesties organizavimas įgyvendinami naudojant Wayland protokolą arba per X11 lizdo persiuntimą. Sąveika su išorine aplinka pagrįsta DBus pranešimų sistema ir specialia portalų API.

Išskyrimui naudojamas „Bubblewrap“ sluoksnis ir tradicinės „Linux“ konteinerių virtualizacijos technologijos, pagrįstos cgroups, vardų erdvių, „Seccomp“ ir „SELinux“ naudojimu. „PulseAudio“ naudojamas garsui išvesti. Tokiu atveju galima išjungti izoliaciją, kurią naudoja daugelio populiarių paketų kūrėjai, norėdami gauti visišką prieigą prie failų sistemos ir visų sistemos įrenginių. Pavyzdžiui, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ir VLC turi ribotą izoliavimo režimą, kuris palieka visišką prieigą prie namų katalogo.

Jei paketai, turintys prieigą prie pagrindinio katalogo, yra pažeisti, nepaisant to, kad paketo aprašyme yra „smėlio dėžės“ etiketė, užpuolikui tereikia pakeisti failą ~/.bashrc, kad įvykdytų savo kodą. Atskira problema yra paketų pakeitimų kontrolė ir pasitikėjimas paketų kūrėjais, kurie dažnai nėra susiję su pagrindiniu projektu ar platinimais.

Šaltinis: opennet.ru

Добавить комментарий