Itsenäisen Flatpak 1.12.0 -pakettijärjestelmän julkaisu

Flatpak 1.12 -työkalupakin uusi vakaa haara on julkaistu, joka tarjoaa järjestelmän itsenäisten pakettien rakentamiseen, joita ei ole sidottu tiettyihin Linux-jakeluihin ja jotka suoritetaan erityisessä säiliössä, joka eristää sovelluksen muusta järjestelmästä. Tuki Flatpak-pakettien suorittamiselle on saatavilla Arch Linuxille, CentOS:lle, Debianille, Fedoralle, Gentoolle, Mageialle, Linux Mintille, Alt Linuxille ja Ubuntulle. Flatpak-paketit sisältyvät Fedora-tietovarastoon ja niitä tukee alkuperäinen GNOME-sovellushallinta.

Tärkeimmät innovaatiot Flatpak 1.12 -haarassa:

  • Flatpak-paketissa käytettyjen sisäkkäisten hiekkalaatikkoympäristöjen hallinta on parannettu asiakkaan kanssa Steam-pelien toimituspalvelua varten. Sisäkkäisissä hiekkalaatikoissa erillisten /usr- ja /app-hakemistojen hierarkioiden luominen on sallittua, jota käytetään Steamissä pelien käynnistämiseen erillisessä säilössä, jossa on oma /usr-osio, joka on eristetty ympäristöstä Steam-asiakkaalla.
  • Kaikki pakettiesiintymät, joilla on sama sovellustunnus (app-ID), jakavat /tmp- ja $XDG_RUNTIME_DIR-hakemistot. Vaihtoehtoisesti voit ottaa käyttöön jaetun /dev/shm-hakemiston käytön käyttämällä lippua "--allow=per-app-dev-shm".
  • Parannettu tuki Text User Interface (TUI) -sovelluksille, kuten gdb.
  • Build-update-repo -apuohjelmaan on lisätty nopeampi "ostree prune" -komennon toteutus, joka on optimoitu arkistointia varten arkistointitilassa.
  • Portaalimekanismin toteutuksessa oleva haavoittuvuus CVE-2021-41133, joka liittyy seccomp-säännöissä osioiden asentamiseen liittyvien uusien järjestelmäkutsujen eston puuttumiseen, on korjattu. Haavoittuvuuden ansiosta sovellus pystyi luomaan sisäkkäisen hiekkalaatikon ohittamaan "portaalin" vahvistusmekanismit, joita käytetään resurssien pääsyn järjestämiseen säilön ulkopuolella.

    Tämän seurauksena hyökkääjä voi asennukseen liittyviä järjestelmäkutsuja suorittamalla ohittaa hiekkalaatikon eristysmekanismin ja saada täyden pääsyn isäntäympäristön sisältöön. Haavoittuvuutta voidaan hyödyntää vain paketeissa, jotka tarjoavat sovelluksille suoran pääsyn AF_UNIX-liitäntöihin, kuten Waylandin, Pipewiren ja pipewire-pulssin käyttämät paketit. Julkaisussa 1.12.0 haavoittuvuutta ei poistettu kokonaan, joten päivitys 1.12.1 julkaistiin kuumana.

Muistutetaan, että Flatpakin avulla sovelluskehittäjät voivat yksinkertaistaa ohjelmiensa jakelua, jotka eivät sisälly vakiojakeluvarastoihin, valmistamalla yhden yleisen kontin luomatta erillisiä kokoonpanoja jokaiselle jakelulle. Turvatietoisille käyttäjille Flatpak mahdollistaa kyseenalaisen sovelluksen ajamisen säiliössä, jolloin pääset vain sovellukseen liittyviin verkkotoimintoihin ja käyttäjätiedostoihin. Uusista tuotteista kiinnostuneille käyttäjille Flatpak antaa sinun asentaa uusimmat testi- ja vakaat versiot sovelluksista ilman, että järjestelmään tarvitsee tehdä muutoksia. Esimerkiksi Flatpak-paketit on rakennettu LibreOffice-, Midori-, GIMP-, Inkscape-, Kdenlive-, Steam-, 0 AD-, Visual Studio Code-, VLC-, Slack-, Skype-, Telegram Desktop-, Android Studio- jne.

Paketin koon pienentämiseksi se sisältää vain sovelluskohtaisia ​​riippuvuuksia, ja perusjärjestelmä- ja grafiikkakirjastot (GTK, Qt, GNOME- ja KDE-kirjastot jne.) on suunniteltu plug-in-standardin ajonaikaisiksi ympäristöiksi. Keskeinen ero Flatpakin ja Snapin välillä on se, että Snap käyttää pääjärjestelmäympäristön komponentteja ja suodatusjärjestelmäkutsuihin perustuvaa eristystä, kun taas Flatpak luo järjestelmästä erillisen säilön ja toimii suurilla ajonaikaisilla sarjoilla tarjoamalla paketteja ei riippuvuuksina, vaan vakiona. yksi järjestelmäympäristö (esimerkiksi kaikki GNOME- tai KDE-ohjelmien toimintaan tarvittavat kirjastot).

Erityisen tietovaraston kautta asennetun vakiojärjestelmäympäristön (runtime) lisäksi toimitetaan sovelluksen toimintaan tarvittavat lisäriippuvuudet (paketti). Kaiken kaikkiaan ajonaika ja nippu muodostavat säiliön täytön huolimatta siitä, että ajonaika asennetaan erikseen ja sidotaan useampaan säiliöön kerralla, jolloin vältytään konteille yhteisten järjestelmätiedostojen päällekkäisyydestä. Yhdessä järjestelmässä voi olla asennettuna useita eri ajonaikoja (GNOME, KDE) tai useita versioita samasta ajonajasta (GNOME 3.40, GNOME 3.42). Säilö, jonka riippuvuutena on sovellus, käyttää sidontaa vain tiettyyn suoritusaikaan ottamatta huomioon yksittäisiä paketteja, jotka muodostavat suoritusajan. Kaikki puuttuvat elementit pakataan suoraan sovelluksen mukana. Kun säilö muodostetaan, ajonaikainen sisältö liitetään /usr-osiona ja paketti liitetään /app-hakemistoon.

Ajonaikaiset ja sovellussäiliöt on rakennettu OSTree-tekniikalla, jossa kuva päivitetään atomisesti Git-tyyppisestä arkistosta, mikä mahdollistaa versionhallintamenetelmien soveltamisen jakelukomponentteihin (esim. voit palauttaa järjestelmän nopeasti takaisin edellinen tila). RPM-paketit käännetään OSTree-tietovarastoon käyttämällä erityistä rpm-ostree-kerrosta. Erillistä asennusta ja pakettien päivitystä työympäristön sisällä ei tueta, järjestelmää ei päivitetä yksittäisten komponenttien tasolla, vaan kokonaisuutena, joka muuttaa tilaansa atomaalisesti. Tarjoaa työkaluja päivitysten asentamiseen asteittain, mikä eliminoi tarpeen korvata kuva kokonaan jokaisella päivityksellä.

Luotu eristetty ympäristö on täysin riippumaton käytetystä jakelusta, eikä sillä ole oikeilla pakettiasetuksilla pääsyä käyttäjän tai pääjärjestelmän tiedostoihin ja prosesseihin, eikä se voi päästä suoraan laitteistoon, lukuun ottamatta DRI:n kautta tapahtuvaa tulostusta ja puheluita. verkkoalijärjestelmään. Grafiikkalähtö ja tulon organisointi toteutetaan käyttämällä Wayland-protokollaa tai X11 socket forwarding -protokollaa. Vuorovaikutus ulkoisen ympäristön kanssa perustuu DBus-viestijärjestelmään ja erityiseen Portals API:hen.

Eristämiseen käytetään Bubblewrap-kerrosta ja perinteisiä Linux-konttivirtualisointitekniikoita, jotka perustuvat cgroups-, nimiavaruuksien, Seccompin ja SELinuxin käyttöön. PulseAudioa käytetään äänen lähettämiseen. Tässä tapauksessa eristys voidaan poistaa käytöstä, jota monien suosittujen pakettien kehittäjät käyttävät saadakseen täyden pääsyn tiedostojärjestelmään ja kaikkiin järjestelmän laitteisiin. Esimerkiksi GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC sisältävät rajoitetun eristystilan, joka jättää täyden pääsyn kotihakemistoon.

Jos paketit, joilla on pääsy kotihakemistoon, vaarantuvat, vaikka paketin kuvauksessa on "hiekkalaatikko"-tunniste, hyökkääjän tarvitsee vain muuttaa ~/.bashrc-tiedosto suorittaakseen koodinsa. Erillinen asia on pakettien muutosten hallinta ja luottamus pakettien rakentajiin, jotka eivät usein liity pääprojektiin tai jakeluihin.

Lähde: opennet.ru

Lisää kommentti