Avaldati uus stabiilne versioon Flatpaki tööriistakogust 1.12, mis pakub sĂŒsteemi iseseisvate pakettide loomiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ning töötavad spetsiaalses konteineris, mis isoleerib rakenduse ĂŒlejÀÀnud sĂŒsteemist. Flatpak-pakkide kĂ€itamise tugi on tagatud Arch Linuxi, CentOSi, Debian, Fedora, Gentoo, Mageia, Linux Minti, Alt Linuxi ja Ubuntu jaoks. Flatpak-paketid on lisatud Fedora hoidlasse ja neid toetatakse GNOME'i rakenduste haldamise programmis.
Olulised uuendused Flatpaki versioonis 1.12:
- Parandatud on sisemiste sandboxi keskkondade haldust, mida kasutatakse Flatpak-pakettides, mis on seotud Steam'i mÀngude kohaletoimetamise teenusega. Sisemistes sandboxides on lubatud luua eraldi kataloogihierarhiaid /usr ja /app, mida kasutatakse Steam'is mÀngude kÀitamiseks eraldi konteineris koos oma /usr jaotusega, mis on isoleeritud Steam'i kliendi keskkonnast.
- KĂ”ikides pakettides, millel on sama rakenduse identifikaator (app-ID), on tagatud kataloogide /tmp ja $XDG_RUNTIME_DIR ĂŒhisosa. Valikuliselt saab lipuga «âallow=per-app-dev-shm» lubada /dev/shm ĂŒhiskatalooge kasutamise.
- Parandatud on toetust tekstipÔhistele kasutajaliidese rakendustele (TUI), nagu gdb.
- Tööriista build-update-repo on lisatud kiirem versioon kĂ€sust «ostree prune», mis on optimeeritud hoidlate jaoks, mis on arhiveerimise reĆŸiimis.
- Parandatud on CVE-2021-41133 haavatavus portaalimehhanismi teostuses, mis oli seotud seccomp reeglite puudumisega, mis blokeerivad uusi sĂŒsteemi kĂ”nesid, mis on seotud partiide montaaĆŸiga. See haavatavus vĂ”imaldas rakendusel luua sisemise sandboxi, et mööduda âportaalideâ verifitseerimise mehhanismidest, mis on loodud ressursside juurdepÀÀsu korraldamiseks vĂ€ljaspool konteinerit.
Seega sai rĂŒndaja, kasutades montaaĆŸiga seotud sĂŒsteemikĂ”nesid, mööda sandbox-isolatsiooni mehhanismist ning sai tĂ€ieliku juurdepÀÀsu host-keskkonna sisule. Haavatavuse Ă€rakasutamine on vĂ”imalik ainult pakkides, mis vĂ”imaldavad rakendustele otse juurdepÀÀsu AF_UNIX sokkidele, mida nĂ€iteks kasutatakse Waylandis, Pipewire'is ja pipewire-pulse'is. Versioonis 1.12.0 ei olnud haavatavust tĂ€ielikult kĂ”rvaldatud, seega anti vĂ€lja kiire vĂ€rskendus 1.12.1.
We remind that Flatpak provides application developers with a simplified way to distribute their programs that are not included in the official repositories of distributions by preparing a single universal container without the need to create separate builds for each distribution. For users concerned about security, Flatpak allows them to run potentially questionable applications in a container, providing access only to network functions and user files related to the application. For users interested in novelties, Flatpak allows them to install the latest testing and stable releases of applications without needing to modify their system. For example, Flatpak packages are available for LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.
To reduce package size, it includes only application-specific dependencies, while basic system and graphical libraries (GTK, Qt, GNOME and KDE libraries, etc.) are packaged as plug-in standard runtime environments. The key difference between Flatpak and Snap is that Snap utilizes components from the host environment and isolation based on filtering system calls, while Flatpak creates a container separate from the system and operates with large runtime sets, providing not packages as dependencies but standardized system environments (for example, all libraries needed for running GNOME or KDE applications).
Lisaks tĂŒĂŒpilisele sĂŒsteemikeskkonnale (runtime), mis paigaldatakse spetsiaalsete hoiuste kaudu, tarnitakse ka tĂ€iendavaid sĂ”ltuvusi (bundle), mis on vajalikud rakenduse toimimiseks. Kokku moodustavad runtime ja bundle konteineri sisu, kusjuures runtime paigaldatakse eraldi ja sidub korraga mitu konteinerit, mis vĂ”imaldab vĂ€ltida ĂŒldiste sĂŒsteemifailide dubleerimist konteinerite vahel. Ăhes sĂŒsteemis vĂ”ib olla paigaldatud mitu erinevat runtime'i (GNOME, KDE) vĂ”i mitu versiooni ĂŒhest runtime'ist (GNOME 3.40, GNOME 3.42). Rakenduse konteiner, mis kasutab sĂ”ltuvust, seondub ainult konkreetse runtime'iga, arvestamata eraldi pakette, millest runtime koosneb. KĂ”ik puuduvad elemendid pakitakse otse koos rakendusega. Konteineri loomisel mountitakse runtime'i sisu nagu jaotis /usr, samas kui bundle mountitakse katalooge /app.
Runtime'i ja rakenduste konteinerite sisu vormitakse OSTree tehnoloogia abil, kus pilt vĂ€rskendatakse atomaarsetena Git-taolise hoidla kaudu, mis vĂ”imaldab rakendada versiooni kontrollimise meetodeid distributsiooni komponentide osas (nĂ€iteks on vĂ”imalik kiiresti tagasi pöörata sĂŒsteem varasemasse olekusse). RPM-paketid edastatakse OSTree hoidlasse spetsiaalse kihina rpm-ostree abil. Eraldi pakettide paigaldamine ja vĂ€rskendamine töökeskkonnas ei ole toetatud, sĂŒsteemi vĂ€rskendatakse mitte eraldi komponentide tasandil, vaid tervikuna, muutes oma olekut atomaarsetena. Pakutakse vahendeid, et rakendada inkrementaalseid vĂ€rskendusi, vabastades vajadusest iga vĂ€rskenduse korral tervet pilti asendada.
Kujundatud isoleeritud keskkond on tĂ€iesti sĂ”ltumatu kasutatavast distributsioonist ja korralike paketihÀÀlestustega ei ole tal juurdepÀÀsu kasutaja vĂ”i pĂ”hiskeemi failidele ja protsessidele, ei saa ta otse pöörduda riistvara poole, vĂ€lja arvatud vĂ€ljund DRI kaudu ja pöördumised vĂ”rgusĂŒsteemi. Graafika vĂ€ljund ja sisendi korraldamine on rakendatud lĂ€bi Waylandi protokolli vĂ”i X11 soketi edastamise kaudu. Ăhendus vĂ€liskeskkonnaga pĂ”hineb sĂ”numivahetussĂŒsteemil DBus ja spetsiaalsel API Portals.
Isolatsiooniks kasutatakse Bubblewrapâi kihte ja traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid, mis pĂ”hinevad cgroupâidel, nimede ruumidel (namespaces), Seccompâil ja SELinuxâil. Helide edastamiseks kasutatakse PulseAudioât. Samas on isolatsioon vĂ€lja lĂŒlitatav, mida kasutavad paljude populaarsete pakettide arendajad, et saada tĂ€ielik juurdepÀÀs failisĂŒsteemile ja kĂ”igile seadmetele sĂŒsteemis. NĂ€iteks pakuvad GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC piiratud isolatsiooniga reĆŸiimist, mis jĂ€tab tĂ€ieliku juurdepÀÀsu kodu kataloogile.
Pakettide, mis pÀÀsevad kodu katalooge, kompromiteerimisel on piisav, et rĂŒndajal oleks vĂ”imalus oma koodi kĂ€ivitamiseks muuta fail ~ / .bashrc, hoolimata paketi kirjelduses olevast sildist âsandboxedâ. Eraldi kĂŒsimus on kontroll pakettides tehtud muudatuste ĂŒle ja usaldus pakettide koostajate vastu, kes sageli ei ole seotud pĂ”hiprojekti vĂ”i -distriibutidega.
Allikas: opennet.ru
