Udgivelse af systemet for selvforsyndende pakker Flatpak 1.12.0

Den nye stabile version af værktøjet Flatpak 1.12 er offentliggjort, hvilket giver et system til at bygge selvforsynende pakker, der ikke er knyttet til specifikke Linux-distributioner og kører i en speciel container, der isolerer applikationen fra resten af systemet. Understøttelse af at køre Flatpak-pakker er sikret for Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux og Ubuntu. Flatpak-pakker er inkluderet i Fedora-repositoriet og understøttes i det indbyggede program til applikationshåndtering GNOME.

Nøglefunktioner i Flatpak 1.12:

  • Forbedret håndtering af indlejrede sandbox-miljøer, der anvendes i flatpak-pakken med klienten til spiltjenesten Steam. I de indlejrede sandkasser er det tilladt at oprette separate kataloghierarkier /usr og /app, hvilket bruges i Steam til at køre spil i en separat container med sin egen /usr-partition, isoleret fra miljøet med Steam-klienten.
  • I alle forekomster af pakker med samme applikationsidentifikator (app-ID) er der sikret deling af katalogerne /tmp og $XDG_RUNTIME_DIR. Valgfrit kan ved at bruge flaget «—allow=per-app-dev-shm» aktiveres brugen af den fælles mappe /dev/shm.
  • Forbedret understøttelse af applikationer med tekstbaseret brugergrænseflade (TUI), såsom gdb.
  • Der er tilføjet en hurtigere implementering af kommandoen «ostree prune» til værktøjet build-update-repo, optimeret til at arbejde med repositories i arkivtilstand.
  • Sårbarheden CVE-2021-41133 er blevet afhjulpet i implementeringen af portal-mekanismen, relateret til manglen på blokering af nye systemopkald relateret til montering af partitioner i seccomp-reglerne. Sårbarheden gjorde det muligt for applikationen at oprette en indlejret sandbox for at omgå verifikationsmekanismerne for «portaler», der anvendes til at organisere adgangen til ressourcer uden for containeren.

    Som et resultat kunne en angriber, gennem udførelse af systemopkald relateret til montering, omgå sandbox-isoleringsmekanismen og få fuld adgang til indholdet i værtens miljø. Udnyttelsen af sårbarheden er kun mulig i pakker, der giver applikationer direkte adgang til AF_UNIX-sockets, som f.eks. bruges i Wayland, Pipewire og pipewire-pulse. I version 1.12.0 blev sårbarheden ikke fuldstændigt afhjulpet, så der blev hurtigt udgivet en opdatering 1.12.1.

Husk, at Flatpak giver app-udviklere mulighed for at forenkle distributionen af deres programmer, der ikke findes i de officielle pakke-repositorier, ved at forberede en universel container uden at skulle lave separate builds til hver distribution. For brugere, der bekymrer sig om sikkerhed, giver Flatpak mulighed for at køre tvivlsomme applikationer i en container, der kun giver adgang til netværksfunktioner og brugerfiler relateret til applikationen. For brugere, der er interesseret i nyheder, gør Flatpak det muligt at installere de nyeste test- og stabile versioner af apps uden at skulle ændre systemet. For eksempel oprettes Flatpak-pakker til LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio osv.

For at reducere pakkestørrelsen inkluderer den kun specifikke anvendelsesafhængigheder, mens de grundlæggende system- og grafiske biblioteker (GTK, Qt, biblioteker fra GNOME og KDE osv.) er arrangeret som plug-in typiske runtime-miljøer. Den væsentligste forskel mellem Flatpak og Snap er, at Snap bruger komponenter fra det primære systems miljø og isolering baseret på filtrering af systemopkald, mens Flatpak opretter en separat container fra systemet og opererer med store runtime-sæt og leverer som afhængigheder ikke pakker, men typiske systemmiljøer (f.eks. alle biblioteker, der er nødvendige for at køre GNOME- eller KDE-programmer).

Udover det typiske systemmiljø (runtime), der installeres via et specielt repository, leveres der yderligere afhængigheder (bundle), som er nødvendige for applikationens funktion. Sammen udgør runtime og bundle indholdet af containeren, idet runtime installeres separat og knyttes til flere containere, hvilket gør det muligt at undgå duplikering af fælles systemfiler for containerne. I et system kan der være installeret flere forskellige runtime (GNOME, KDE) eller flere versioner af en enkelt runtime (GNOME 3.40, GNOME 3.42). Containere med applikationer som afhængighed bruger bindingen kun til et bestemt runtime uden at tage højde for de enkelte pakker, som runtime består af. Alle manglende elementer pakkes direkte sammen med applikationen. Ved oprettelse af containeren monteres indholdet af runtime som partition \/usr, mens bundle monteres i mappen \/app.

Indholdet af runtime og applikationscontainere dannes ved hjælp af OSTree-teknologi, hvor billedet atomart opdateres fra et Git-lignende lager, der muliggør anvendelse af versionskontrolmetoder på komponenterne i distributionen (for eksempel kan systemet hurtigt rulles tilbage til en tidligere tilstand). RPM-pakker oversættes til OSTree-repositoryet ved hjælp af et specielt lag rpm-ostree. Separat installation og opdatering af pakker inden for det arbejdsmiljø understøttes ikke, systemet opdateres ikke på niveauet af individuelle komponenter, men som helhed, atomart ændrende sin tilstand. Der stilles midler til rådighed for inkrementelle anvendelser af opdateringer, der fjerner behovet for en fuld erstatning af billedet ved hver opdatering.

Det isolerede miljø, der dannes, er fuldstændig uafhængigt af det anvendte distribution og har ved passende pakkeindstillinger ikke adgang til brugerens eller hovedsystemets filer og processer, kan ikke direkte tilgå hardware, undtagen ved uddata gennem DRI, og ved anmodninger til netværkssystemet. Grafikudgang og inputorganisationen gennemføres ved hjælp af Wayland-protokollen eller via X11 socket-passthrough. Interaktion med den eksterne verden er baseret på DBus-messagesystemet og et særligt API Portals.

For isolation, a Bubblewrap layer and traditional Linux container virtualization technologies are used, based on the use of cgroups, namespaces, Seccomp, and SELinux. PulseAudio is used for audio output. Isolation can be disabled, which many popular package developers take advantage of to gain full access to the file system and all devices in the system. For example, packages like GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity, and VLC come with a limited isolation mode that allows full access to the home directory.

In case of package compromise with access to the home directory, despite the package description label 'sandboxed', an attacker only needs to change the file ~/ .bashrc to execute their code. A separate issue is the control of modifications to packages and trust in package maintainers, who are often not affiliated with the main project or distributions.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster