Iseseisva paketisüsteemi Flatpak 1.12.0 väljalase

Avaldatud on Flatpak 1.12 tööriistakomplekti uus stabiilne haru, mis pakub süsteemi iseseisvate pakettide loomiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja töötavad spetsiaalses konteineris, mis isoleerib rakenduse ülejäänud süsteemist. Flatpaki pakettide käitamise tugi on saadaval Arch Linuxi, CentOS-i, Debiani, Fedora, Gentoo, Mageia, Linux Mint, Alt Linuxi ja Ubuntu jaoks. Flatpaki paketid sisalduvad Fedora hoidlas ja neid toetab natiivne GNOME-i rakenduste haldur.

Peamised uuendused Flatpak 1.12 harus:

  • Flatpaki paketis kasutatavate pesastatud liivakastikeskkondade täiustatud haldamine koos kliendiga Steami mängude kohaletoimetamise teenuse jaoks. Pesastatud liivakastides on lubatud /usr ja /app kataloogide eraldi hierarhiate loomine, mida kasutatakse Steamis mängude käivitamiseks eraldi konteineris oma /usr partitsiooniga, mis on keskkonnast eraldatud Steam kliendiga.
  • Kõik sama rakenduse identifikaatoriga (rakenduse ID) paketi eksemplarid jagavad katalooge /tmp ja $XDG_RUNTIME_DIR. Soovi korral saate lipukese „--allow=per-app-dev-shm” abil lubada jagatud kataloogi /dev/shm kasutamise.
  • Täiustatud tugi tekstikasutajaliidese (TUI) rakendustele, nagu gdb.
  • Build-update-repo utiliidile on lisatud käsu "ostree prune" kiirem rakendamine, mis on optimeeritud hoidlatega töötamiseks arhiivirežiimis.
  • Portaalimehhanismi juurutamise haavatavus CVE-2021-41133, mis on seotud seccompi reeglites partitsioonide ühendamisega seotud uute süsteemikutsete blokeerimise puudumisega, on parandatud. Haavatavus võimaldas rakendusel luua pesastatud liivakasti, et minna mööda "portaali" kinnitusmehhanismidest, mida kasutatakse konteinerivälistele ressurssidele juurdepääsu korraldamiseks.

    Selle tulemusena võib ründaja paigaldamisega seotud süsteemikutseid sooritades liivakasti isolatsioonimehhanismist mööda minna ja saada täieliku juurdepääsu hostkeskkonna sisule. Turvaauku saab ära kasutada ainult pakettides, mis pakuvad rakendustele otsejuurdepääsu AF_UNIX pesadele, näiteks need, mida kasutavad Wayland, Pipewire ja pipewire-pulse. Versioonis 1.12.0 haavatavust täielikult ei kõrvaldatud, seega lasti värskendus 1.12.1 välja kuumalt.

Tuletame meelde, et Flatpak võimaldab rakenduste arendajatel lihtsustada nende programmide levitamist, mis ei sisaldu standardsetes levitamishoidlates, valmistades ette ühe universaalse konteineri ilma iga distributsiooni jaoks eraldi komplekte loomata. Turvateadlikel kasutajatel võimaldab Flatpak käivitada küsitava rakenduse konteineris, võimaldades juurdepääsu ainult rakendusega seotud võrgufunktsioonidele ja kasutajafailidele. Uutest toodetest huvitatud kasutajatele võimaldab Flatpak installida rakenduste uusimad test- ja stabiilsed versioonid, ilma et oleks vaja süsteemis muudatusi teha. Näiteks Flatpaki paketid on ehitatud LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio jne jaoks.

Paketi suuruse vähendamiseks sisaldab see ainult rakendusespetsiifilisi sõltuvusi ning põhisüsteemi- ja graafikateekid (GTK, Qt, GNOME ja KDE teegid jne) on loodud pistikprogrammide standardse käituskeskkonnana. Peamine erinevus Flatpaki ja Snapi vahel seisneb selles, et Snap kasutab põhisüsteemi keskkonna komponente ja isolatsiooni, mis põhineb süsteemikõnede filtreerimisel, samas kui Flatpak loob süsteemist eraldi konteineri ja töötab suurte käitusaegsete komplektidega, pakkudes pakette mitte sõltuvustena, vaid standardina. need süsteemikeskkonnad (näiteks kõik GNOME või KDE programmide tööks vajalikud teegid).

Lisaks spetsiaalse hoidla kaudu installitud standardsele süsteemikeskkonnale (käitusajale) on kaasas rakenduse tööks vajalikud täiendavad sõltuvused (pakett). Kokkuvõttes moodustavad käitusaeg ja komplekt konteineri täitmise, hoolimata asjaolust, et käitusaeg on eraldi installitud ja seotud korraga mitme konteineriga, mis võimaldab vältida konteineritele ühiste süsteemifailide dubleerimist. Ühele süsteemile võib olla installitud mitu erinevat käitusaega (GNOME, KDE) või sama käitusaja mitu versiooni (GNOME 3.40, GNOME 3.42). Sõltuvusena rakendust sisaldav konteiner kasutab sidumist ainult konkreetse käitusajaga, võtmata arvesse käitusaja moodustavaid üksikuid pakette. Kõik puuduvad elemendid pakitakse otse rakendusega. Kui konteiner on moodustatud, ühendatakse käitusaja sisu partitsioonina /usr ja pakett kataloogi /app.

Käitusaja ja rakenduste konteinerid on ehitatud OSTree tehnoloogia abil, milles pilti värskendatakse aatomipõhiselt Giti-laadsest hoidlast, mis võimaldab levitamiskomponentidele rakendada versioonikontrolli meetodeid (näiteks saate süsteemi kiiresti tagasi kerida eelmine olek). RPM-paketid tõlgitakse OSTree hoidlasse spetsiaalse rpm-ostree kihi abil. Töökeskkonnas eraldiseisvat pakettide installimist ja uuendamist ei toetata, süsteemi uuendatakse mitte üksikute komponentide tasemel, vaid tervikuna, muutes oma olekut aatomiliselt. Pakub tööriistu värskenduste järkjärguliseks rakendamiseks, välistades vajaduse pilti iga värskendusega täielikult asendada.

Loodud isoleeritud keskkond on kasutatavast distributsioonist täiesti sõltumatu ja paketi õigete seadistustega ei oma juurdepääsu kasutaja või põhisüsteemi failidele ja protsessidele, ei pääse otse seadmetele juurde, välja arvatud DRI kaudu väljund, ja kõned võrgu alamsüsteemile. Graafika väljund ja sisendi korraldamine on rakendatud Waylandi protokolli või X11 pesa edastamise kaudu. Väliskeskkonnaga suhtlemine põhineb DBus-sõnumisüsteemil ja spetsiaalsel Portals API-l.

Isoleerimiseks kasutatakse Bubblewrapi kihti ja traditsioonilisi Linuxi konteineri virtualiseerimistehnoloogiaid, mis põhinevad cgroupide, nimeruumide, Seccompi ja SELinuxi kasutamisel. PulseAudiot kasutatakse heli väljastamiseks. Sel juhul saab isoleerimise keelata, mida paljude populaarsete pakettide arendajad kasutavad failisüsteemile ja süsteemi kõikidele seadmetele täieliku juurdepääsu saamiseks. Näiteks GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC on varustatud piiratud isolatsioonirežiimiga, mis jätab täieliku juurdepääsu kodukataloogile.

Kui kodukataloogile juurdepääsuga paketid on ohus, hoolimata sellest, et paketi kirjelduses on silt "liivakastis", peab ründaja oma koodi käivitamiseks muutma ainult faili ~/.bashrc. Eraldi teema on pakettide muudatuste kontroll ja usaldus paketiehitajate vastu, keda sageli ei seostata põhiprojekti või distributsioonidega.

Allikas: opennet.ru

Lisa kommentaar