Izid sistema samozadostnih paketov Flatpak 1.12.0

Objavljena je bila nova stabilna veja kompleta orodij Flatpak 1.12, ki zagotavlja sistem za gradnjo samostojnih paketov, ki niso vezani na določene distribucije Linuxa in se izvajajo v posebnem vsebniku, ki izolira aplikacijo od preostalega sistema. Podpora za izvajanje paketov Flatpak je na voljo za Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux in Ubuntu. Paketi Flatpak so vključeni v repozitorij Fedora in jih podpira izvorni upravitelj aplikacij GNOME.

Ključne novosti v veji Flatpak 1.12:

  • Izboljšano upravljanje ugnezdenih okolij peskovnika, ki se uporabljajo v paketu flatpak z odjemalcem za storitev dostave iger Steam. V ugnezdenih peskovnikih je dovoljeno ustvarjanje ločenih hierarhij imenikov /usr in /app, ki se v Steamu uporabljajo za zagon iger v ločenem vsebniku z lastno particijo /usr, izolirano od okolja z odjemalcem Steam.
  • Vsi primerki paketa z istim identifikatorjem aplikacije (app-ID) si delijo imenika /tmp in $XDG_RUNTIME_DIR. Po želji lahko z uporabo zastavice »--allow=per-app-dev-shm« omogočite uporabo imenika v skupni rabi /dev/shm.
  • Izboljšana podpora za aplikacije besedilnega uporabniškega vmesnika (TUI), kot je gdb.
  • Pripomočku build-update-repo je bila dodana hitrejša izvedba ukaza »ostree prune«, optimizirana za delo z repozitoriji v arhivskem načinu.
  • Ranljivost CVE-2021-41133 pri izvajanju mehanizma portala, povezana s pomanjkanjem blokiranja novih sistemskih klicev, povezanih z nameščanjem particij v pravilih seccomp, je bila odpravljena. Ranljivost je aplikaciji omogočila ustvarjanje ugnezdenega peskovnika, da bi zaobšla mehanizme preverjanja »portala«, ki se uporabljajo za organiziranje dostopa do virov zunaj vsebnika.

    Posledično bi lahko napadalec z izvajanjem sistemskih klicev, povezanih z namestitvijo, zaobšel izolacijski mehanizem peskovnika in pridobil popoln dostop do vsebine gostiteljskega okolja. Ranljivost je mogoče izkoristiti le v paketih, ki aplikacijam omogočajo neposreden dostop do vtičnic AF_UNIX, kot so tisti, ki jih uporabljajo Wayland, Pipewire in pipewire-pulse. V izdaji 1.12.0 ranljivost ni bila popolnoma odpravljena, zato je bila za petami izdana posodobitev 1.12.1.

Naj vas spomnimo, da Flatpak omogoča razvijalcem aplikacij, da poenostavijo distribucijo svojih programov, ki niso vključeni v standardna distribucijska skladišča, tako da pripravijo en univerzalni vsebnik brez ustvarjanja ločenih sklopov za vsako distribucijo. Uporabnikom, ki se zavedajo varnosti, vam Flatpak omogoča zagon vprašljive aplikacije v vsebniku, ki omogoča dostop samo do omrežnih funkcij in uporabniških datotek, povezanih z aplikacijo. Za uporabnike, ki jih zanimajo novi izdelki, Flatpak omogoča namestitev najnovejših testnih in stabilnih izdaj aplikacij, ne da bi morali spreminjati sistem. Paketi Flatpak so na primer izdelani za LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio itd.

Da bi zmanjšali velikost paketa, vključuje samo odvisnosti, specifične za aplikacijo, osnovne sistemske in grafične knjižnice (GTK, Qt, knjižnice GNOME in KDE itd.) pa so oblikovane kot standardna izvajalna okolja z vtičniki. Ključna razlika med Flatpakom in Snapom je v tem, da Snap uporablja komponente glavnega sistemskega okolja in izolacijo, ki temelji na filtriranju sistemskih klicev, medtem ko Flatpak ustvari vsebnik, ločen od sistema, in deluje z velikimi nabori izvajalnega časa, pri čemer paketov ne zagotavlja kot odvisnosti, temveč standardne sistemska okolja (na primer vse knjižnice, potrebne za delovanje programov GNOME ali KDE).

Poleg standardnega sistemskega okolja (runtime), nameščenega prek posebnega repozitorija, so dobavljene dodatne odvisnosti (bundle), potrebne za delovanje aplikacije. Skupaj izvajalni čas in paket tvorita polnjenje vsebnika, kljub dejstvu, da je izvajalni čas nameščen ločeno in vezan na več vsebnikov hkrati, kar vam omogoča, da se izognete podvajanju sistemskih datotek, ki so skupne vsebnikom. En sistem ima lahko nameščenih več različnih izvajalnih okolij (GNOME, KDE) ali več različic istega izvajalnega okolja (GNOME 3.40, GNOME 3.42). Vsebnik z aplikacijo kot odvisnostjo uporablja vezavo samo na določeno izvajalno okolje, ne da bi upošteval posamezne pakete, ki sestavljajo izvajalno okolje. Vsi manjkajoči elementi so pakirani neposredno z aplikacijo. Ko se oblikuje vsebnik, se vsebina izvajalnega okolja vpne kot particija /usr, sveženj pa se vpne v imenik /app.

Vsebniki izvajalnega okolja in aplikacij so zgrajeni s tehnologijo OSTree, v kateri je slika atomsko posodobljena iz repozitorija, podobnega Gitu, kar omogoča uporabo metod nadzora različic za komponente distribucije (na primer, sistem lahko hitro vrnete nazaj na prejšnje stanje). Paketi RPM so prevedeni v repozitorij OSTree s posebnim slojem rpm-ostree. Ločeno nameščanje in posodabljanje paketov znotraj delovnega okolja ni podprto, sistem se ne posodablja na ravni posameznih komponent, ampak kot celota, pri čemer atomsko spreminja svoje stanje. Zagotavlja orodja za postopno uporabo posodobitev, pri čemer odpravlja potrebo po popolni zamenjavi slike z vsako posodobitvijo.

Generirano izolirano okolje je popolnoma neodvisno od uporabljene distribucije in ob pravilnih nastavitvah paketa nima dostopa do datotek in procesov uporabnika ali glavnega sistema, ne more neposredno dostopati do opreme, z izjemo izhoda preko DRI, in klice v omrežni podsistem. Organizacija grafičnih izhodov in vnosov se izvaja s protokolom Wayland ali prek posredovanja vtičnic X11. Interakcija z zunanjim okoljem temelji na sporočilnem sistemu DBus in posebnem Portals API.

Za izolacijo se uporabljajo sloj Bubblewrap in tradicionalne tehnologije virtualizacije vsebnikov Linux, ki temeljijo na uporabi cgroups, namespaces, Seccomp in SELinux. PulseAudio se uporablja za oddajanje zvoka. V tem primeru je mogoče onemogočiti izolacijo, ki jo razvijalci številnih priljubljenih paketov uporabljajo za popoln dostop do datotečnega sistema in vseh naprav v sistemu. Na primer, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity in VLC imajo omejen način izolacije, ki pušča popoln dostop do domačega imenika.

Če so paketi z dostopom do domačega imenika ogroženi, kljub prisotnosti oznake »peskovnik« v opisu paketa, mora napadalec le spremeniti datoteko ~/.bashrc, da izvede svojo kodo. Posebno vprašanje je nadzor nad spremembami paketov in zaupanje v graditelje paketov, ki pogosto niso povezani z glavnim projektom ali distribucijami.

Vir: opennet.ru

Dodaj komentar