Flatpak 1.12.0 iseseisvate pakettide süsteemi väljaanne

Avaldatud uus stabiilne Flatpak 1.12 tööriistade haru, mis pakub süsteemi iseseisvate pakettide koostamiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja mida käitatakse spetsiaalses konteineris, mis isoleerib rakenduse ülejäänud süsteemist. Flatpak-pakettide käitamine on tagatud Arch Linuxi, CentOSi, Debiani, Fedoro, Gentoo, Mageia, Linux Minti, Alt Linuxi ja Ubuntu jaoks. Flatpak-pakettid on lisatud Fedora hoidlasse ja neid toetatakse GNOME'i rakenduste haldustarkvara kaudu.

Flatpak 1.12 haru peamised uuendused:

  • Parandatud sisemiste sandbox-keskkondade haldamist, mida kasutatakse Flatpak-paketis Steami mängude kohaletoimetamisteenuse kliendi jaoks. Sisemistes sandboxides on lubatud luua eraldi kataloogihierarhiad /usr ja /app, mida kasutatakse Steamis mängude käitamiseks eraldi konteineris oma /usr jaotusega, mis on isoleeritud Steami kliendi keskkonnast.
  • Kõikides pakettides, millel on sama rakenduse ID (app-ID), on tagatud kataloogide /tmp ja $XDG_RUNTIME_DIR jagamine. Valikuliselt saab lipuga „—allow=per-app-dev-shm“ lubada ühise katalooge /dev/shm kasutamist.
  • Parandatud on kasutajaliidese tekstipõhiste rakenduste (TUI), nagu gdb, toetust.
  • Tööriista build-update-repo on lisatud kiirem teostus käsust „ostree prune“, mis on optimeeritud arhiveeritud repositooriote töötlemiseks.
  • Parandatud on CVE-2021-41133 haavatavus portaalimehanismi rakenduses, mis oli seotud selle puudumisega seccomp reeglistike poolt, mis takistavad uusi süsteemikutseid, mis on seotud jaotiste montaažiga. Haavatavus võimaldas rakendusel luua sisemise sandbox'i, et mööda minna portaalide verifitseerimismehhanismidest, mis reguleerivad juurdepääsu konteinerist väljaspool ressurssidele.

    Kokkuvõttes suutis ründaja süsteemi süsteemikõnede seondumise kaudu mööda minnida sandbox-isolatsiooni mehhanismist ja saada täieliku juurdepääsu host-ümbruse sisule. Haavatavust saab kasutada ainult paketides, mis võimaldavad rakendustel otse juurdepääsu AF_UNIX soketitele, mida näiteks kasutatakse Waylandis, Pipewire'is ja pipewire-pulse'is. Versioonis 1.12.0 ei suudetud haavatavust täielikult likvideerida, seetõttu ilmus kohe versioon 1.12.1.

Tuletame meelde, et Flatpaki rakenduste arendajatele pakub võimalust lihtsustada oma programmide levitamist, mis ei kuulu jaotuste tavalistesse hoidlatest, ühe universaalse konteineri ettevalmistamise kaudu, ilma et oleks vaja luua eraldi versioone iga jaotuse jaoks. Kasutajatele, kes jälgivad turvalisust, võimaldab Flatpak käitada kahtlaseid rakendusi konteineris, andes juurdepääsu ainult rakendusega seotud võrgufunktsioonidele ja kasutaja failidele. Huvi tuntavate uute asjade vastu pakkudes, võimaldab Flatpak installida kõige värskemaid katse- ja stabiilseid rakenduste versioone ilma süsteemi muutmata. Näiteks kogutakse Flatpak-pakette LibreOffice'i, Midori, GIMP-i, Inkscape'i, Kdenlive'i, Steami, 0 A.D., Visual Studio Code'i, VLC, Slacki, Skype'i, Telegram Desktopi, Android Studio jne jaoks.

Paketi suuruse vähendamiseks sisaldab see ainult rakendusele spetsiifilisi зависимостей, samas kui põhissüsteemi ja graafikakogumid (GTK, Qt, GNOME ja KDE raamatukogud jne) on esitatud kui liidavad tüüpilised runtime-ümbrikud. Flatpaki peamine erinevus Snapist seisneb selles, et Snap kasutab põhiosade keskkonna komponente ja isoleerimist, mis põhineb süsteemikutsungite filtreerimisel, samas kui Flatpak loob süsteemist eraldi konteineri ning töötab suurte runtime-komplektidega, pakkudes sõltuvustena mitte pakette, vaid tüüpilisi süsteemi ümbrikke (näiteks kõik teegid, mida GNOME või KDE programmide tööks vajatakse).

Lisaks standardsetele süsteemikeskkondadele (runtime), mis installitakse läbi spetsiaalse hoarderi, pakutakse ka täiendavaid sõltuvusi (bundle), mis on vajalikud rakenduse toimimiseks. Kokku moodustavad runtime ja bundle konteineri sisu, kusjuures runtime installitakse eraldi ja seotakse kohe mitme konteineriga, mis võimaldab vältida süsteemifailide dubleerimist konteinerite vahel. Ühes süsteemis võib olla installeeritud mitu erinevat runtime'i (GNOME, KDE) või mitu versiooni ühest runtime'ist (GNOME 3.40, GNOME 3.42). Rakenduse konteiner, mis kasutab sõltuvusi, seondub ainult kindla runtime'iga, arvestamata eraldi pakette, millest runtime koosneb. Kõik puuduvad elemendid pakitakse otse koos rakendusega. Konteineri loomisel monteeritakse runtime sisu kui partition /usr, samas kui bundle monteeritakse katalooge /app.

Runtime'i ja rakenduste konteinerite koostamine toimub OSTree tehnoloogia abil, mis võimaldab atomaarsete piltide värskendamist Git-taolises hoidlas, võimaldades versioonihaldusmeetodite rakendamist distributsiooni komponentidele (nt süsteemi saab kiiresti tagasi viia eelmisse olekusse). RPM-pakette edastatakse OSTree hoidlasse spetsiaalse ülekande kaudu rpm-ostree. Pakettide eraldi installimist ja värskendamist töökeskkonnas ei toetata, süsteemi uuendatakse mitte üksikute komponentide tasandil, vaid tervikuna, muutes oma olekut atomaarsetena. Pakutakse vahendeid inkrementaalsete uuenduste rakendamiseks, mis vabastavad vajadusest iga värskenduse ajal kogu pilti asendada.

Isoleeritud keskkond on täielikult sõltumatu kasutatavast distrost ja nõuetekohaste pakettide seadistuste korral ei pääse see ligi kasutaja või põhisüsteemi failidele ja protsessidele, ei saa otse kasutada riistvara, välja arvatud väljundi kaudu DRI ja võrgualaste kõnede ning Pildi ja sisendi korraldamiseks kasutatakse Waylandi protokolli või X11 sokli edastamist. Suhtlemine välismaailmaga põhineb DBus-sõnumite süsteemil ja spetsiaalsel API Portals.

Isolatsiooni tagamiseks kasutatakse Bubblewrap'i kihti ja traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid, mis põhinevad cgroup'e, nimede ruumide (namespaces), Seccomp'i ja SELinux'i kasutamisel. Heli väljundi jaoks kasutatakse PulseAudio't. Isolatsiooni saab siiski välja lülitada, mida kasutavad paljude tuntud paketide arendajad, et saada täielik juurdepääs failisüsteemile ja kõigile seadmetele, mida süsteem sisaldab. Näiteks on GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC saadaval piiratud isolatsiooni režiimis, mis jätab täieliku juurdepääsu kodukaustale.

Kui juurdepääsukatalooge sisaldavate paketide puhul tekib kompromiss, ei piisa ründajast, et oma koodi täita, isegi kui paketi kirjel on märge 'sandboxed', piisab, kui muuta faili ~/.bashrc. Eraldi küsimuseks on muudatuste jälgimine pakettides ja usaldus pakettide koostajate suhtes, kes sageli ei seondu põhiprojekti või distributsioonidega.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster