Pašpietiekamu paku sistēmas izlaišana Flatpak 1.12.0

Ir publicēts jauns stabils Flatpak 1.12 rīku komplekta atzars, kas nodrošina sistēmu autonomu pakotņu veidošanai, kas nav piesaistītas konkrētiem Linux izplatījumiem un darbojas īpašā konteinerā, kas izolē lietojumprogrammu no pārējās sistēmas. Atbalsts Flatpak pakotņu palaišanai tiek nodrošināts Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux un Ubuntu. Flatpak pakotnes ir iekļautas Fedora repozitorijā, un tās atbalsta vietējais GNOME lietojumprogrammu pārvaldnieks.

Galvenie jauninājumi Flatpak 1.12 filiālē:

  • Uzlabota ligzdoto smilškastes vidi pārvaldība, kas tiek izmantota flatpak pakotnē ar klientu Steam spēļu piegādes pakalpojumam. Ligzdotās smilškastes ir atļauta atsevišķu direktoriju /usr un /app hierarhiju izveide, ko Steam izmanto, lai palaistu spēles atsevišķā konteinerā ar savu /usr nodalījumu, kas izolēts no vides ar Steam klientu.
  • Visām pakotnes gadījumiem ar vienu un to pašu lietojumprogrammas identifikatoru (lietotnes ID) ir koplietojami direktoriji /tmp un $XDG_RUNTIME_DIR. Pēc izvēles, izmantojot karogu “--allow=per-app-dev-shm”, varat iespējot koplietotā direktorija /dev/shm izmantošanu.
  • Uzlabots atbalsts teksta lietotāja interfeisa (TUI) lietojumprogrammām, piemēram, gdb.
  • Build-update-repo utilītai ir pievienota ātrāka komandas “ostree prune” ieviešana, kas ir optimizēta darbam ar krātuvēm arhīva režīmā.
  • Ir novērsta ievainojamība CVE-2021-41133 portāla mehānisma ieviešanā, kas saistīta ar jaunu sistēmas izsaukumu bloķēšanu, kas saistīti ar nodalījumu montāžu seccomp noteikumos. Ievainojamība ļāva lietojumprogrammai izveidot ligzdotu smilškaste, lai apietu “portāla” verifikācijas mehānismus, kas tiek izmantoti, lai organizētu piekļuvi resursiem ārpus konteinera.

    Rezultātā uzbrucējs, veicot ar montāžu saistītus sistēmas izsaukumus, var apiet smilškastes izolācijas mehānismu un iegūt pilnu piekļuvi resursdatora vides saturam. Ievainojamību var izmantot tikai pakotnēs, kas nodrošina lietojumprogrammām tiešu piekļuvi AF_UNIX ligzdām, piemēram, tām, kuras izmanto Wayland, Pipewire un pipewire-pulse. Laidienā 1.12.0 ievainojamība netika pilnībā novērsta, tāpēc atjauninājums 1.12.1 tika izlaists karsti.

Atgādināsim, ka Flatpak ļauj aplikāciju izstrādātājiem vienkāršot to programmu izplatīšanu, kuras neietilpst standarta izplatīšanas krātuvēs, sagatavojot vienu universālu konteineru, neveidojot katrai distribūcijai atsevišķus komplektus. Lietotājiem, kas apzinās drošību, Flatpak ļauj palaist apšaubāmu lietojumprogrammu konteinerā, nodrošinot piekļuvi tikai ar lietojumprogrammu saistītajām tīkla funkcijām un lietotāja failiem. Lietotājiem, kurus interesē jauni produkti, Flatpak ļauj instalēt jaunākās pārbaudes un stabilas lietojumprogrammu versijas bez nepieciešamības veikt izmaiņas sistēmā. Piemēram, Flatpak pakotnes ir veidotas LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio utt.

Lai samazinātu pakotnes lielumu, tajā ir iekļautas tikai lietojumprogrammām raksturīgās atkarības, un pamata sistēmas un grafikas bibliotēkas (GTK, Qt, GNOME un KDE bibliotēkas utt.) ir paredzētas kā spraudņa standarta izpildlaika vides. Galvenā atšķirība starp Flatpak un Snap ir tā, ka Snap izmanto galvenās sistēmas vides komponentus un izolāciju, pamatojoties uz filtrēšanas sistēmas izsaukumiem, savukārt Flatpak izveido konteineru atsevišķi no sistēmas un darbojas ar lielām izpildlaika kopām, nodrošinot nevis pakotnes kā atkarības, bet gan standarta. vienas sistēmas vides (piemēram, visas bibliotēkas, kas nepieciešamas GNOME vai KDE programmu darbībai).

Papildus standarta sistēmas videi (izpildlaikam), kas instalēta, izmantojot īpašu repozitoriju, tiek piegādātas papildu atkarības (pakete), kas nepieciešamas lietojumprogrammas darbībai. Kopumā izpildlaiks un komplekts veido konteinera pildījumu, neskatoties uz to, ka izpildlaiks tiek instalēts atsevišķi un piesaistīts vairākiem konteineriem vienlaikus, kas ļauj izvairīties no konteineriem kopīgu sistēmas failu dublēšanas. Vienai sistēmai var būt instalēti vairāki dažādi izpildlaiki (GNOME, KDE) vai vairākas viena un tā paša izpildlaika versijas (GNOME 3.40, GNOME 3.42). Konteiners ar lietojumprogrammu kā atkarību izmanto saistīšanu tikai ar noteiktu izpildlaiku, neņemot vērā atsevišķās pakotnes, kas veido izpildlaiku. Visi trūkstošie elementi tiek iesaiņoti tieši kopā ar lietojumprogrammu. Kad konteiners ir izveidots, izpildlaika saturs tiek montēts kā /usr nodalījums, un komplekts tiek uzstādīts /app direktorijā.

Izpildlaika un lietojumprogrammu konteineri ir veidoti, izmantojot OSTree tehnoloģiju, kurā attēls tiek atomiski atjaunināts no Git līdzīgas krātuves, kas ļauj izmantot versiju kontroles metodes izplatīšanas komponentiem (piemēram, varat ātri atgriezt sistēmu uz iepriekšējais stāvoklis). RPM pakotnes tiek tulkotas OSTree repozitorijā, izmantojot īpašu rpm-ostree slāni. Atsevišķa pakotņu instalēšana un atjaunināšana darba vidē netiek atbalstīta, sistēma tiek atjaunināta nevis atsevišķu komponentu līmenī, bet gan kopumā, atomiski mainot savu stāvokli. Nodrošina rīkus, lai pakāpeniski piemērotu atjauninājumus, novēršot nepieciešamību pilnībā aizstāt attēlu ar katru atjauninājumu.

Ģenerētā izolētā vide ir pilnībā neatkarīga no izmantotā izplatīšanas, un ar pareiziem pakotnes iestatījumiem tai nav piekļuves failiem un lietotāja vai galvenās sistēmas procesiem, tā nevar tieši piekļūt aprīkojumam, izņemot izvadi, izmantojot DRI, un zvani uz tīkla apakšsistēmu. Grafikas izvades un ievades organizācija tiek īstenota, izmantojot Wayland protokolu vai izmantojot X11 ligzdas pāradresāciju. Mijiedarbība ar ārējo vidi ir balstīta uz DBus ziņojumapmaiņas sistēmu un īpašu Portālu API.

Izolācijai tiek izmantots Bubblewrap slānis un tradicionālās Linux konteineru virtualizācijas tehnoloģijas, kuru pamatā ir cgroups, namespaces, Seccomp un SELinux. PulseAudio tiek izmantots skaņas izvadīšanai. Šajā gadījumā var atspējot izolāciju, ko izmanto daudzu populāru pakotņu izstrādātāji, lai iegūtu pilnīgu piekļuvi failu sistēmai un visām sistēmas ierīcēm. Piemēram, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity un VLC ir aprīkots ar ierobežotu izolācijas režīmu, kas nodrošina pilnīgu piekļuvi mājas direktorijam.

Ja pakotnes ar piekļuvi mājas direktorijam ir apdraudētas, neskatoties uz to, ka pakotnes aprakstā ir “smilškastes” etiķete, uzbrucējam ir jāmaina tikai fails ~/.bashrc, lai izpildītu savu kodu. Atsevišķs jautājums ir pakotņu izmaiņu kontrole un uzticēšanās pakotņu veidotājiem, kuri bieži vien nav saistīti ar galveno projektu vai izplatīšanu.

Avots: opennet.ru

Pievieno komentāru