Vrystelling van Flatpak 1.12.0 selfstandige pakketstelsel

'n Nuwe stabiele tak van die Flatpak 1.12-gereedskapstel is gepubliseer, wat 'n stelsel bied vir die bou van selfstandige pakkette wat nie aan spesifieke Linux-verspreidings gekoppel is nie en in 'n spesiale houer loop wat die toepassing van die res van die stelsel isoleer. Ondersteuning vir die bestuur van Flatpak-pakkette word verskaf vir Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux en Ubuntu. Flatpak-pakkette is ingesluit in die Fedora-bewaarplek en word ondersteun deur die inheemse GNOME-toepassingsbestuurder.

Sleutelinnovasies in die Flatpak 1.12-tak:

  • Verbeterde bestuur van geneste sandbox-omgewings wat in die flatpak-pakket gebruik word met die kliënt vir die Steam-speletjieafleweringsdiens. In geneste sandkaste word die skepping van aparte hiërargieë van die /usr- en /app-gidse toegelaat, wat in Steam gebruik word om speletjies in 'n aparte houer met sy eie /usr-partisie te begin, geïsoleer van die omgewing met die Steam-kliënt.
  • Alle pakketgevalle met dieselfde toepassing-identifiseerder (toepassing-ID) deel die /tmp- en $XDG_RUNTIME_DIR-gidse. Opsioneel, deur die “--allow=per-app-dev-shm” vlag te gebruik, kan jy die gebruik van die /dev/shm gedeelde gids aktiveer.
  • Verbeterde ondersteuning vir teksgebruikerskoppelvlak (TUI) toepassings soos gdb.
  • 'n Vinniger implementering van die "ostree prune"-opdrag is by die build-update-repo-nutsding gevoeg, geoptimaliseer om met bewaarplekke in argiefmodus te werk.
  • Die kwesbaarheid CVE-2021-41133 in die implementering van die portaalmeganisme, wat verband hou met die gebrek aan blokkering van nuwe stelseloproepe wat verband hou met die montering van partisies in die seccomp-reëls, is reggestel. Die kwesbaarheid het die toepassing toegelaat om 'n geneste sandbox te skep om die "portaal"-verifikasiemeganismes te omseil wat gebruik word om toegang tot hulpbronne buite die houer te organiseer.

    As gevolg hiervan kan 'n aanvaller, deur monteringverwante stelseloproepe uit te voer, die sandbox-isolasiemeganisme omseil en volle toegang tot die inhoud van die gasheeromgewing verkry. Die kwesbaarheid kan slegs uitgebuit word in pakkette wat toepassings bied met direkte toegang tot AF_UNIX-voetstukke, soos dié wat deur Wayland, Pipewire en pipewire-pulse gebruik word. In vrystelling 1.12.0 is die kwesbaarheid nie heeltemal uitgeskakel nie, so opdatering 1.12.1 is op sy hakke vrygestel.

Laat ons u daaraan herinner dat Flatpak toepassingsontwikkelaars toelaat om die verspreiding van hul programme wat nie by die standaardverspreidingsbewaarplekke ingesluit is nie te vereenvoudig deur een universele houer voor te berei sonder om aparte samestellings vir elke verspreiding te skep. Vir sekuriteitsbewuste gebruikers laat Flatpak u toe om 'n twyfelagtige toepassing in 'n houer te laat loop, wat slegs toegang bied tot die netwerkfunksies en gebruikerslêers wat met die toepassing geassosieer word. Vir gebruikers wat belangstel in nuwe produkte, laat Flatpak jou toe om die nuutste toets en stabiele vrystellings van toepassings te installeer sonder dat dit nodig is om veranderinge aan die stelsel aan te bring. Flatpak-pakkette word byvoorbeeld gebou vir LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, ens.

Om die pakketgrootte te verminder, sluit dit slegs toepassingspesifieke afhanklikhede in, en die basiese stelsel- en grafiese biblioteke (GTK-, Qt-, GNOME- en KDE-biblioteke, ens.) is ontwerp as inprop-standaard-looptydomgewings. Die belangrikste verskil tussen Flatpak en Snap is dat Snap die komponente van die hoofstelselomgewing en isolasie gebruik wat gebaseer is op filterstelseloproepe, terwyl Flatpak 'n houer apart van die stelsel skep en met groot looptydstelle werk, wat nie pakkette as afhanklikhede verskaf nie, maar standaard die stelselomgewings (byvoorbeeld alle biblioteke wat nodig is vir die werking van GNOME- of KDE-programme).

Benewens die standaardstelselomgewing (looptyd), wat deur 'n spesiale bewaarplek geïnstalleer is, word addisionele afhanklikhede (bondel) wat benodig word vir die werking van die toepassing, verskaf. In totaal vorm runtime en bondel die vul van die houer, ten spyte van die feit dat runtime afsonderlik geïnstalleer is en aan verskeie houers gelyktydig gekoppel is, wat jou toelaat om te verhoed dat die stelsellêers wat algemeen is aan houers, gedupliseer word. Een stelsel kan verskeie verskillende looptye geïnstalleer hê (GNOME, KDE) of verskeie weergawes van dieselfde looptyd (GNOME 3.40, GNOME 3.42). 'n Houer met 'n toepassing as 'n afhanklikheid gebruik slegs 'n binding aan 'n spesifieke looptyd, sonder om die individuele pakkette wat die looptyd uitmaak in ag te neem. Alle ontbrekende elemente word direk saam met die toepassing verpak. Wanneer 'n houer gevorm word, word die looptyd-inhoud as die /usr-partisie gemonteer, en die bondel word in die /app-gids gemonteer.

Die looptyd- en toepassingshouers word gebou met behulp van OSTree-tegnologie, waarin die beeld atomies opgedateer word vanaf 'n Git-agtige bewaarplek, wat dit moontlik maak om weergawebeheermetodes op die verspreidingskomponente toegepas te word (jy kan byvoorbeeld die stelsel vinnig terugrol na 'n vorige toestand). RPM-pakkette word in die OSTree-bewaarplek vertaal met behulp van 'n spesiale rpm-otree-laag. Afsonderlike installasie en opdatering van pakkette binne die werksomgewing word nie ondersteun nie; die stelsel word nie op die vlak van individuele komponente opgedateer nie, maar as 'n geheel, wat die toestand daarvan atoomies verander. Verskaf gereedskap om opdaterings inkrementeel toe te pas, wat die behoefte uitskakel om die prent heeltemal met elke opdatering te vervang.

Die gegenereerde geïsoleerde omgewing is heeltemal onafhanklik van die verspreiding wat gebruik word en het, met behoorlike pakketinstellings, nie toegang tot lêers en prosesse van die gebruiker of die hoofstelsel nie, en kan nie direk toegang tot die toerusting verkry nie, met die uitsondering van uitset via DRI en oproepe na die netwerksubstelsel. Grafiese uitset en insetorganisasie word geïmplementeer met behulp van die Wayland-protokol of via X11-sok-aanstuur. Interaksie met die eksterne omgewing is gebaseer op die DBus-boodskapstelsel en 'n spesiale Portals API.

Vir isolasie word die Bubblewrap-laag en tradisionele Linux-houervirtualiseringstegnologie gebruik, gebaseer op die gebruik van cgroups, naamruimtes, Seccomp en SELinux. PulseAudio word gebruik om klank uit te voer. In hierdie geval kan isolasie gedeaktiveer word, wat deur die ontwikkelaars van baie gewilde pakkette gebruik word om volle toegang tot die lêerstelsel en alle toestelle in die stelsel te verkry. Byvoorbeeld, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity en VLC het 'n beperkte isolasiemodus wat volle toegang tot die tuisgids gee.

As pakkette met toegang tot die tuisgids gekompromitteer word, ten spyte van die teenwoordigheid van die "sandboxed"-etiket in die pakketbeskrywing, hoef die aanvaller net die ~/.bashrc-lêer te verander om sy kode uit te voer. 'n Aparte kwessie is die beheer van veranderinge aan pakkette en vertroue in pakketbouers, wat dikwels nie met die hoofprojek of verspreidings geassosieer word nie.

Bron: opennet.ru

Voeg 'n opmerking