Vydanie systému samostatných balíkov Flatpak 1.12.0

Bola zverejnená nová stabilná vetva nástroja Flatpak 1.12, ktorá poskytuje systém na vytváranie samostatných balíkov, ktoré nie sú viazané na konkrétne distribúcie Linuxu a ktoré sa vykonávajú v špeciálnom kontajneri, ktorý izoluje aplikáciu od zvyšku systému. Podpora spúšťania Flatpak balíkov je zabezpečená pre Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux a Ubuntu. Balíky s Flatpak sú zahrnuté v úložisku Fedora a sú podporované v štandardnej aplikácii na správu aplikácií GNOME.

Kľúčové novinky vo verzii Flatpak 1.12:

  • Zlepšené riadenie vnorených sandboxových prostredí používaných vo flatpak balíku s klientom na službu doručovania hier Steam. Vo vnorených sandboxoch je povolené vytváranie samostatných hierarchií adresárov /usr a /app, čo je používané v Steame na spúšťanie hier v samostatnom kontajneri so svojou časťou /usr, izolovanou od prostredia s klientom Steam.
  • Vo všetkých inštanciách balíkov so rovnakým identifikátorom aplikácie (app-ID) je zabezpečené zdieľanie adresárov /tmp a $XDG_RUNTIME_DIR. Voliteľne možno pomocou príznaku "--allow=per-app-dev-shm" povoliť používanie zdieľaného adresára /dev/shm.
  • Zlepšená podpora aplikácií s textovým používateľským rozhraním (TUI), ako napríklad gdb.
  • Do nástroja build-update-repo bola pridaná rýchlejšia implementácia príkazu "ostree prune", optimalizovaná pre prácu s repozitármi, ktoré sú v režime archívu.
  • Bola odstránená zraniteľnosť CVE-2021-41133 v implementácii mechanizmu portálov, súvisiaca s nedostatkom pravidiel seccomp na blokovanie nových systémových volaní súvisiacich s montovaním oddielov. Zraniteľnosť umožnila aplikácii vytvoriť vnorený sandbox na obídenie mechanizmov overovania "portálov", ktoré sa používajú na zabezpečenie prístupu k zdrojom mimo kontajnera.

    Ako výsledok, útočník prostredníctvom vykonávania volaní systémového montovania mohol obísť mechanizmus izolácie sandboxu a získať plný prístup k obsahu hostiteľského prostredia. Využitie zraniteľnosti je možné len v balíkoch, ktoré poskytujú aplikáciám priamy prístup k zásuvkám AF_UNIX, ktoré sa napríklad používajú v Wayland, Pipewire a pipewire-pulse. Vo vydaní 1.12.0 bola zraniteľnosť odstránená neúplne, preto bolo na „horúce stopy“ vydané aktualizované 1.12.1.

Pripomeňme, že Flatpak poskytuje vývojárom aplikácií možnosť zjednodušiť distribúciu svojich programov, ktoré nie sú súčasťou štandardných repozitárov distribúcií, zhotovením jedného univerzálneho kontajnera bez potreby vytvárania osobitných zostáv pre každú distribúciu. Používateľom, ktorí sa zaujímajú o bezpečnosť, Flatpak umožňuje spustiť problematickú aplikáciu v kontajneri, ktorý poskytuje prístup len k sieťovým funkciám a súborom súvisiacim s aplikáciou. Používateľom, ktorí sa zaujímajú o novinky, Flatpak umožňuje inštaláciu najnovších testovacích a stabilných vydaní aplikácií bez nutnosti zasahovania do systému. Napríklad, Flatpak balíky sú vytvorené pre LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio a iné.

Aby sa zmenšila veľkosť balíka, obsahuje iba závislosti špecifické pre aplikáciu, zatiaľ čo základné systémové a grafické knižnice (GTK, Qt, knižnice GNOME a KDE a pod.) sú spracované ako pripojiteľné typové runtime prostredia. Kľúčový rozdiel medzi Flatpak a Snap spočíva v tom, že Snap využíva komponenty prostredia hlavného systému a izoláciu na základe filtrovania systémových volaní, zatiaľ čo Flatpak vytvára samostatný kontajner od systému a manipuluje s veľkými runtime súpravami, poskytujúc ako závislosti nie balíky, ale typové systémové prostredia (napríklad všetky knižnice potrebné na fungovanie programov GNOME alebo KDE).

Okrem typického systémového prostredia (runtime), ktoré sa inštaluje prostredníctvom špeciálneho repozitára, sa dodávajú ďalšie závislosti (bundle), ktoré sú potrebné na fungovanie aplikácie. Spoločne runtime a bundle tvoria obsah kontajnera, pričom runtime sa inštaluje samostatne a viaže sa priamo na niekoľko kontajnerov, čo umožňuje vyhnúť sa duplicite spoločných systémových súborov pre kontajnery. V jednom systéme môže byť nainštalovaných niekoľko rôznych runtime (GNOME, KDE) alebo niekoľko verzií jedného runtime (GNOME 3.40, GNOME 3.42). Kontajner s aplikáciou ako závislosť využíva viazanie len k určitému runtime, bez ohľadu na jednotlivé balíky, z ktorých sa runtime skladá. Všetky chýbajúce prvky sa zbalí priamo spolu s aplikáciou. Pri tvorbe kontajnera sa obsah runtime montuje ako oddiel /usr, a bundle sa montuje do adresára /app.

Obsah runtime a kontajnerov aplikácií sa formuje pomocou technológie OSTree, pri ktorej sa obraz atomárne aktualizuje z Git-podobného úložiska, umožňujúceho aplikovať metódy verzionovania na komponenty distribúcie (napríklad, systém možno rýchlo vrátiť do predchádzajúceho stavu). RPM balíky sa transcibujú do repozitára OSTree pomocou špeciálnej medzičlánku rpm-ostree. Samostatná inštalácia a aktualizácia balíkov v pracovnom prostredí nie je podporovaná, systém sa aktualizuje nie na úrovni jednotlivých komponentov, ale celkovo, atomárne mení svoj stav. Poskytujú sa prostriedky na inkrementálne uplatňovanie aktualizácií, ktoré zbavujú potreby úplnej výmeny obrazu pri každej aktualizácii.

Tvorené izolované prostredie je úplne nezávislé od používaného distribučného systému a pri správnom nastavení balíka nemá prístup k súborom a procesom používateľa alebo hlavného systému, nemôže priamo komunikovať s hardvérom, okrem výstupu cez DRI, a komunikácie so sieťovým subsystémom. Výstup grafiky a organizácia vstupu sú realizované pomocou protokolu Wayland alebo cez prenos socketu X11. Interakcia s vonkajším prostredím je postavená na systéme výmeny správ DBus a špeciálnom API Portals.

Na izoláciu sa používa vrstva Bubblewrap a tradičné technológie kontajnerizácie Linuxu, založené na použití cgroups, priestorov mien (namespaces), Seccomp a SELinux. Na výstup zvuku sa používa PulseAudio. Pri tom môže byť izolácia vypnutá, čo využívajú vývojári mnohých obľúbených balíkov na získanie plného prístupu k FS a všetkým zariadeniam v systéme. Napríklad s obmedzeným režimom izolácie, ktorý poskytuje plný prístup k domovskému adresáru, sa dodávajú balíky GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity a VLC.

V prípade kompromitácie balíkov s prístupom k domovskému adresáru, napriek tomu, že v popise balíka je označenie „sandboxed“, útočníkovi na vykonanie svojho kódu stačí zmeniť súbor ~/ .bashrc. Samostatnou otázkou je kontrola zmien v balíkoch a dôvera k zberačom balíkov, ktorí často nie sú spätí s hlavným projektom alebo distribúciami.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster