Utgivningen av systemet för självförsörjande paket Flatpak 1.12.0.

En ny stabil version av Flatpak-verktyget 1.12 har publicerats, som tillhandahåller ett system för att bygga självständiga paket som inte är bundna till specifika Linux-distributioner och körs i en speciell container som isolerar applikationen från resten av systemet. Stöd för att köra Flatpak-paket finns för Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux och Ubuntu. Flatpak-paket inkluderas i Fedora-repositoriet och stöds av det inbyggda programmet för applikationshantering GNOME.

Nyckelfunktioner i Flatpak 1.12:

  • Styrningen av inbäddade sandbox-miljöer som används i Flatpak-paketet med klienten för spelplattformen Steam har förbättrats. I de inbäddade sandboxarna har skapandet av separata kataloghierarkier /usr och /app tillåtits, vilket används i Steam för att köra spel i en separat container med sin egen /usr, isolerad från miljön med Steam-klienten.
  • I alla instanser av paket med samma applikationsidentifierare (app-ID) säkerställs delning av katalogerna /tmp och $XDG_RUNTIME_DIR. Valfritt kan användningen av den gemensamma katalogen /dev/shm aktiveras med flaggan "--allow=per-app-dev-shm".
  • Stödet för applikationer med textanvändargränssnitt (TUI), som gdb, har förbättrats.
  • Det har lagts till en snabbare implementation av kommandot "ostree prune" i verktyget build-update-repo, optimerad för att arbeta med repositories som är i arkivläge.
  • En sårbarhet (CVE-2021-41133) i implementeringen av portalmeckanismen har åtgärdats, relaterad till avsaknaden av regler i seccomp för att blockera nya systemanrop relaterade till montering av partitioner. Sårbarheten gav möjlighet för en applikation att skapa en inbäddad sandbox för att kringgå verifieringsmekanismerna i "portalerna", som används för att organisera åtkomst till resurser utanför containern.

    Som ett resultat av detta kunde en angripare via utförande av systemanrop relaterade till montering kringgå sandbox-isoleringsmekanismen och få full tillgång till innehållet i värdmiljön. Utnyttjande av sårbarheten är endast möjligt i paket som ger applikationer direkt tillgång till AF_UNIX-sockets, som exempelvis används i Wayland, Pipewire och pipewire-pulse. I version 1.12.0 åtgärdades sårbarheten inte helt, varför en uppdatering 1.12.1 släpptes i enlighet med detta.

Det är viktigt att påminna om att Flatpak ger utvecklare av applikationer möjlighet att förenkla distributionen av sina program, som inte ingår i standardförråden för distributioner, genom att förbereda en universell container utan att behöva skapa separata versioner för varje distribution. Användare som värnar om säkerhet kan köra tveksamma applikationer i en container som ger åtkomst endast till nätverksfunktioner och användarfiler relaterade till applikationen. Användare som är intresserade av nyheter kan installera de senaste test- och stabila versionerna av applikationer utan att behöva göra ändringar i systemet. Till exempel byggs Flatpak-paket för LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio etc.

För att minska paketets storlek ingår endast applikationsspecifika beroenden, medan grundläggande system- och grafiska bibliotek (GTK, Qt, GNOME och KDE-bibliotek etc.) presenteras som anslutningsbara standardruntime-miljöer. Huvudskillnaden mellan Flatpak och Snap är att Snap använder komponenter från det underliggande systemet och isolering baserat på filtrering av systemanrop, medan Flatpak skapar en separat container från systemet och opererar med stora runtime-satser, vilket tillhandahåller standardiserade systemmiljöer (till exempel alla bibliotek som krävs för att köra GNOME- eller KDE-program).

Förutom den typiska systemmiljön (runtime) som installeras via ett särskilt lager, levereras ytterligare beroenden (bundle) som krävs för att applikationen ska fungera. Tillsammans utgör runtime och bundle innehållet i containern, där runtime installeras separat och kan kopplas till flera containrar, vilket förhindrar duplicering av gemensamma systemfiler för containrar. Flera olika runtime (GNOME, KDE) eller flera versioner av samma runtime (GNOME 3.40, GNOME 3.42) kan installeras på ett system. Containern med applikationen som beroende använder bindningen endast till en specifik runtime, utan att ta hänsyn till de enskilda paketen som utgör runtime. Alla saknade element packas tillsammans med applikationen. Vid skapandet av containern monteras innehållet i runtime som delen /usr, medan bundle monteras i katalogen /app.

Innehållet i runtime och applikationscontainrar skapas med hjälp av teknologin OSTree, där bilden atomärt uppdateras från ett Git-liknande arkiv, vilket möjliggör tillämpning av versionshanteringsmetoder på distributionskomponenter (till exempel kan systemet snabbt återställas till ett tidigare tillstånd). RPM-paket översätts till OSTree-förvaret med hjälp av ett särskilt lager rpm-ostree. Separat installation och uppdatering av paket inom arbetsmiljön stöds inte, systemet uppdateras inte på nivån av enskilda komponenter utan helt, och ändrar atomärt sitt tillstånd. Verkyg erbjuds för inkrementell tillämpning av uppdateringar, vilket eliminerar behovet av att helt byta bild vid varje uppdatering.

Det isolerade miljön som skapas är helt oberoende av den använda distributionen och, vid korrekt paketering, har ingen åtkomst till användarens eller huvudsystemets filer och processer, kan inte direkt interagera med hårdvaran, förutom utmatning via DRI, och anrop till nätverksystemet. Grafikutmatning och hantering av inmatning realiseras med protokollet Wayland eller genom vidarekoppling av X11-socket. Interaktionen med den externa miljön baseras på meddelandebytesystemet DBus och ett särskilt API för Portals.

För isolering används ett lager av Bubblewrap och traditionella Linux-teknologier för containervirtualisering, baserat på användningen av cgroups, namnrymder (namespaces), Seccomp och SELinux. För ljudåtergivning används PulseAudio. Isoleringen kan stängas av, vilket utnyttjas av utvecklare av många populära paket för att få fullständig åtkomst till filsystemet och alla enheter i systemet. Till exempel levereras paket som GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity och VLC med en begränsad isoleringsläget som lämnar full åtkomst till hemkatalogen.

Vid kompromettering av paket med åtkomst till hemkatalogen, trots att det i paketbeskrivningen står att det är "sandboxed", räcker det för en angripare att ändra filen ~/ .bashrc för att köra sin kod. En särskild fråga är kontrollen över ändringar i paketen och förtroendet för paketbyggarna, som ofta inte är kopplade till huvudprojektet eller distributionerna.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster