Liberigo de la sistemo de memsufiĉaj pakoj Flatpak 1.12.0

Nova stabila branĉo de la ilaro Flatpak 1.12 estis publikigita, kiu provizas sistemon por konstrui memstarajn pakaĵojn, kiuj ne estas ligitaj al specifaj Linuksaj distribuoj kaj funkcias en speciala ujo, kiu izolas la aplikaĵon de la resto de la sistemo. Subteno por ruli Flatpak-pakaĵojn estas provizita por Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux kaj Ubuntu. Flatpak-pakaĵoj estas inkluzivitaj en la deponejo Fedora kaj estas subtenataj de la denaska GNOME-aplikadministranto.

Ŝlosilaj novigoj en la branĉo Flatpak 1.12:

  • Plibonigita administrado de nestitaj sablokesto-medioj uzataj en la flatpak-pakaĵo kun la kliento por la liverservo de la ludo Steam. En nestitaj sablokestoj, la kreado de apartaj hierarkioj de la dosierujoj /usr kaj /app estas permesita, kiu estas uzata en Steam por lanĉi ludojn en aparta ujo kun sia propra /usr sekcio, izolita de la medio kun la Steam-kliento.
  • Ĉiuj pakaĵoj kun la sama aplikaĵidentigilo (app-ID) dividas la dosierujojn /tmp kaj $XDG_RUNTIME_DIR. Laŭvole, uzante la flagon "--allow=per-app-dev-shm", vi povas ebligi la uzon de la komuna dosierujo /dev/shm.
  • Plibonigita subteno por Teksta Uzantinterfaco (TUI) aplikoj kiel gdb.
  • Pli rapida efektivigo de la komando "ostree prune" estis aldonita al la ilo build-update-repo, optimumigita por labori kun deponejoj en arkivreĝimo.
  • La vundebleco CVE-2021-41133 en la efektivigo de la portala mekanismo, asociita kun la manko de blokado de novaj sistemaj alvokoj rilataj al muntado de sekcioj en la sekcomp-reguloj, estis riparita. La vundebleco permesis al la aplikaĵo krei nestitan sablokeston por preteriri la "portalaj" konfirmmekanismojn kiuj estas uzataj por organizi aliron al resursoj ekster la ujo.

    Kiel rezulto, atakanto, farante muntado-rilatajn sistemvokojn, povus preteriri la sablokestan izoligan mekanismon kaj akiri plenan aliron al la enhavo de la gastiga medio. La vundebleco nur povas esti ekspluatata en pakaĵoj, kiuj provizas aplikaĵojn per rekta aliro al AF_UNIX-ingoj, kiel tiuj uzataj de Wayland, Pipewire kaj pipewire-pulse. En eldono 1.12.0, la vundebleco ne estis tute forigita, do ĝisdatigo 1.12.1 estis publikigita varme sur siaj kalkanoj.

Ni memorigu vin, ke Flatpak permesas al programistoj de aplikaĵoj simpligi la distribuadon de siaj programoj, kiuj ne estas inkluzivitaj en la normaj distribuaj deponejoj, preparante unu universalan ujon sen krei apartajn asembleojn por ĉiu distribuo. Por sekureckonsciaj uzantoj, Flatpak permesas ruli dubindan aplikaĵon en ujo, havigante aliron nur al la retaj funkcioj kaj uzantdosieroj asociitaj kun la aplikaĵo. Por uzantoj interesitaj pri novaj produktoj, Flatpak permesas instali la plej novajn testajn kaj stabilajn eldonojn de aplikaĵoj sen la bezono fari ŝanĝojn al la sistemo. Ekzemple, Flatpak-pakaĵoj estas konstruitaj por LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, ktp.

Por redukti la pakaĵgrandecon, ĝi inkluzivas nur aplikajn specifajn dependecojn, kaj la bazaj sistemoj kaj grafikaj bibliotekoj (bibliotekoj GTK, Qt, GNOME kaj KDE ktp.) estas desegnitaj kiel aldonaĵaj normaj rultempaj medioj. La ŝlosila diferenco inter Flatpak kaj Snap estas, ke Snap uzas la komponantojn de la ĉefa sistema medio kaj izoladon bazitan sur filtraj sistemvokoj, dum Flatpak kreas ujon apartan de la sistemo kaj funkcias kun grandaj rultempaj aroj, provizante ne pakaĵojn kiel dependecojn, sed normajn. tiaj sistemaj medioj (ekzemple, ĉiuj bibliotekoj necesaj por la funkciado de GNOME aŭ KDE-programoj).

Aldone al la norma sistema medio (rultempo), instalita per speciala deponejo, aldonaj dependecoj (fasko) necesaj por la funkciado de la aplikaĵo estas liveritaj. Entute, rultempo kaj pakaĵo formas la plenigon de la ujo, malgraŭ tio, ke rultempo estas instalita aparte kaj ligita al pluraj ujoj samtempe, kio ebligas al vi eviti duobligi sistemajn dosierojn komunajn al ujoj. Unu sistemo povas havi plurajn malsamajn rultempojn instalitajn (GNOME, KDE) aŭ plurajn versiojn de la sama rultempo (GNOME 3.40, GNOME 3.42). Ujo kun aplikaĵo kiel dependeco uzas ligon nur al specifa rultempo, sen konsideri la individuajn pakaĵojn kiuj konsistigas la rultempon. Ĉiuj mankantaj elementoj estas enpakitaj rekte kun la aplikaĵo. Kiam ujo estas formita, la rultempa enhavo estas muntita kiel la /usr-disko, kaj la pakaĵo estas muntita en la /app-dosierujo.

La rultempaj kaj aplikaj ujoj estas konstruitaj per OSTree-teknologio, en kiu la bildo estas atome ĝisdatigita de Git-simila deponejo, kio ebligas aplikitajn metodojn de versio-kontrolo al la distribuaj komponantoj (ekzemple, vi povas rapide refari la sistemon al antaŭa stato). RPM-pakaĵoj estas tradukitaj en la OSTree-deponejon uzante specialan rpm-ostree-tavolon. Aparta instalado kaj ĝisdatigo de pakaĵoj ene de la labormedio ne estas subtenataj; la sistemo estas ĝisdatigita ne je la nivelo de individuaj komponantoj, sed kiel tuto, atome ŝanĝante sian staton. Provizas ilojn por apliki ĝisdatigojn pliige, forigante la bezonon tute anstataŭigi la bildon kun ĉiu ĝisdatigo.

La generita izolita medio estas tute sendependa de la distribuo uzata kaj, kun taŭgaj pakaĵaj agordoj, ne havas aliron al dosieroj kaj procezoj de la uzanto aŭ la ĉefa sistemo, kaj ne povas rekte aliri la ekipaĵon, escepte de eligo per DRI kaj vokoj. al la reto-subsistemo. Grafika eligo kaj eniga organizo estas efektivigitaj per la Wayland-protokolo aŭ per X11-ingo plusendado. Interagado kun la ekstera medio baziĝas sur la mesaĝsistemo DBus kaj speciala Portals API.

Por izolado oni uzas la Bubblewrap-tavolon kaj tradiciajn Linuksajn ujajn virtualigteknologiojn, surbaze de la uzo de cgroups, nomspacoj, Seccomp kaj SELinux. PulseAudio estas uzata por eligi sonon. En ĉi tiu kazo, izolado povas esti malŝaltita, kiu estas uzata de la programistoj de multaj popularaj pakaĵoj por akiri plenan aliron al la dosiersistemo kaj ĉiuj aparatoj en la sistemo. Ekzemple, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity kaj VLC venas kun limigita izoleca reĝimo, kiu lasas plenan aliron al la hejma dosierujo.

Se pakoj kun aliro al la hejma dosierujo estas endanĝerigitaj, malgraŭ la ĉeesto de la "sandboxed" etikedo en la paka priskribo, la atakanto nur bezonas ŝanĝi la ~/.bashrc-dosieron por ekzekuti sian kodon. Aparta afero estas la kontrolo de ŝanĝoj al pakaĵoj kaj fido je pakaĵkonstruantoj, kiuj ofte ne estas asociitaj kun la ĉefprojekto aŭ distribuoj.

fonto: opennet.ru

Aldoni komenton