A Flatpak 1.12.0 önálló csomagok rendszerének kiadása

Megjelent a Flatpak 1.12 új stabil ága, amely rendszert biztosít az önálló csomagok összeállítására, függetlenül a Linux terjesztésektől, és egy speciális konténerben futtatja az alkalmazásokat, elkülönítve őket a többi rendszertől. A Flatpak-csomagok futtatásának támogatása biztosítva van Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux és Ubuntu számára. A Flatpak csomagok bekerültek a Fedora adattárába, és támogatják a GNOME alkalmazáskezelő programot.

A Flatpak 1.12 ágon megvalósított kulcsfontosságú újdonságok:

  • Javították a beágyazott sandbox-környezetek kezelését, amelyeket a Flatpak-csomag használ a Steam játékmegosztó szolgáltatás kliense számára. A beágyazott sandbox-okban mostantól lehetőség van külön fájlrendszer-hierarchiák létrehozására a /usr és /app könyvtárakban, amelyeket a Steam használ a játékok külön konténerben történő elindításához, saját /usr partíciójával, elszigetelve a Steam kliens környezetétől.
  • Azonos app-ID-vel rendelkező csomagok esetén a /tmp és $XDG_RUNTIME_DIR könyvtárak megosztása biztosított. Opcionálisan, a „—allow=per-app-dev-shm” kapcsoló használatával engedélyezni lehet a közös /dev/shm könyvtár használatát.
  • Javították a szöveges felhasználói felülettel (TUI) rendelkező alkalmazások, például a gdb támogatását.
  • A build-update-repo segédprogramhoz gyorsabb implementációt adtak a 'ostree prune' parancsnak, amely a archív módban lévő adattárakkal való munkához lett optimalizálva.
  • Elhárították a CVE-2021-41133 sebezhetőséget a portálmechanizmus implementációjában, amely a mount-olt részekkel kapcsolatos új rendszerhívások SECcomp-szabályaiban való hiányosság miatt merült fel. A sebezhetőség lehetővé tette az alkalmazás számára, hogy beágyazott sandbox-ot hozzon létre, megkerülve a 'portálok' érvényesítési mechanizmusait, amelyeket a konténeren kívüli erőforrásokhoz való hozzáférés megszervezésére használnak.

    Végül, a támadó, a mount-hívások végrehajtásával, megkerülhette a sandbox-izolációs mechanizmust, és teljes hozzáférést nyerhetett a gazda környezet tartalmához. A sebezhetőség kihasználására csak azok a csomagok esetében volt lehetőség, amelyek közvetlen hozzáférést biztosítottak az AF_UNIX socketekhez, amelyeket például a Wayland, Pipewire és pipewire-pulse használnak. Az 1.12.0 kiadásban a sebezhetőséget nem teljesen hárították el, ezért sürgősen kiadták az 1.12.1 frissítést.

Emlékeztetünk, hogy a Flatpak alkalmazásfejlesztők számára lehetőséget biztosít arra, hogy egyszerűsítsék programjaik terjesztését, amely nem szerepel a disztribúciók alapértelmezett repóiban, egy univerzális konténer elkészítésével, anélkül, hogy különböző buildokat kellene létrehozniuk minden egyes disztribúcióhoz. A biztonságra ügyelő felhasználóknak a Flatpak lehetőséget ad arra, hogy gyanús programokat konténerben futtassanak, biztosítva hozzáférést csupán a hálózati funkciókhoz és a programhoz kapcsolódó felhasználói fájlokhoz. Az újdonságokra kíváncsi felhasználóknak a Flatpak lehetőséget kínál arra, hogy a legfrissebb teszt- és stabil alkalmazásverziókat telepítsék anélkül, hogy változtatniuk kellene a rendszeren. Például a Flatpak csomagok elkészültek a LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio és még sok más számára.

A csomag méretének csökkentése érdekében csak az alkalmazás specifikus függőségeit tartalmazza, míg az alapvető rendszer- és grafikus könyvtárakat (GTK, Qt, GNOME és KDE könyvtárak stb.) csatlakoztatható, szabványos runtime-környezetekként alakítja meg. A Flatpak kulcsfontosságú különbsége a Snap-től az, hogy a Snap az alap rendszer környezeti komponenseit használja és a rendszerhívások szűrésén alapuló izolációt alkalmaz, míg a Flatpak egy a rendszertől független konténert hoz létre, és nagyméretű runtime-csoportokat kezel, amelyek függőségekként nem csomagokat, hanem szabványos rendszerkörnyezeteket biztosítanak (például az összes szükséges könyvtárat a GNOME vagy KDE programok futtatásához).

A tipikus rendszerkörnyezet (runtime), amelyet egy speciális tárolón keresztül telepítenek, további függőségekkel (bundle) egészül ki, amelyekre az alkalmazás működéséhez szükség van. A runtime és a bundle együtt alkotják a konténer tartalmát, ahol a runtime külön települ, és egyszerre több konténerhez is kapcsolódik, így elkerülhető a közös rendszerfájlok duplikációja a konténerek között. Egyetlen rendszerben több különböző runtime (GNOME, KDE) vagy egy és ugyanazon runtime több verziója (GNOME 3.40, GNOME 3.42) is telepíthető. Az alkalmazás konténere, mint függőség, csak egy adott runtime-hoz kötődik, anélkül hogy figyelembe venne külön csomagokat, amelyek a runtime-ot alkotják. Minden hiányzó elem közvetlenül az alkalmazással együtt van becsomagolva. A konténer létrehozásakor a runtime tartalma a /usr partícióként van felszerelve, míg a bundle a /app könyvtárhoz van csatolva.

A runtime és az alkalmazások konténereinek tartalma az OSTree technológia segítségével készül, amelynél a kép atomikusan frissül egy Git-szerű tárolóból, lehetővé téve a verziókontroll módszereinek alkalmazását a disztribúció komponenseinél (például gyorsan visszaállítható a rendszer egy korábbi állapotra). Az RPM csomagok egy speciális rétegen, az rpm-ostree-en keresztül kerülnek a OSTree tárolóba. A csomagok külön telepítése és frissítése a munkakörnyezeten belül nem támogatott, a rendszer nem az egyes komponensek szintjén frissül, hanem teljesen, atomikusan változtatva meg az állapotát. Eszközök állnak rendelkezésre a frissítések inkrementális alkalmazásához, amely megszünteti a teljes kép cseréjének szükségességét minden frissítéskor.

Az kialakított izolált környezet teljesen független a használt disztribúciótól, és megfelelő csomagbeállítások mellett nem fér hozzá a felhasználó vagy az alap rendszer fájljaihoz és folyamataihoz, nem tud közvetlenül hozzáférni a hardverhez, kivéve a DRI-n keresztüli kimenetet, illetve a hálózati alrendszer hívásait. A grafikus kimenet és a bemeneti események kezelése a Wayland protokoll vagy az X11 socket átirányítása révén valósul meg. A külső környezettel való interakció a DBus üzenetküldő rendszere és a speciális API Portals alapján valósul meg.

Az izoláláshoz a Bubblewrap réteg és a Linux hagyományos konténeres virtualizációs technológiái, mint a cgroups, névterek (namespaces), Seccomp és SELinux kerülnek felhasználásra. A hang kivezetésére a PulseAudio alkalmazás használatos. Az izoláció kikapcsolható, ami számos népszerű csomag fejlesztőjének segít a fájlrendszerhez és a rendszer összes eszközéhez való teljes hozzáférés biztosításában. Például a GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity és VLC csomagok korlátozott izolálási móddal érkeznek, amely teljes hozzáférést biztosít a felhasználói könyvtárhoz.

Csomagok kompromittálódása esetén, amely hozzáférést ad a felhasználói könyvtárhoz, a "sandboxed" címke ellenére a támadónak elegendő csak módosítania a ~/.bashrc fájlt ahhoz, hogy futtassa a kódját. Külön kérdés a csomagokkal kapcsolatos változtatások ellenőrzése és a csomagépítők iránti bizalom, akik gyakran nem állnak kapcsolatban a fő projekttel vagy disztribúciókkal.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster