Frigivelse af Flatpak 1.12.0 selvstændigt pakkesystem

En ny stabil gren af ​​Flatpak 1.12-værktøjssættet er blevet offentliggjort, som giver et system til at bygge selvstændige pakker, der ikke er bundet til specifikke Linux-distributioner og køres i en speciel container, der isolerer applikationen fra resten af ​​systemet. Support til at køre Flatpak-pakker er givet til Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux og Ubuntu. Flatpak-pakker er inkluderet i Fedora-lageret og understøttes af den oprindelige GNOME-applikationsadministrator.

Vigtigste innovationer i Flatpak 1.12-grenen:

  • Forbedret styring af indlejrede sandkassemiljøer brugt i flatpak-pakken med klienten til Steam-spilleveringstjenesten. I indlejrede sandkasser er oprettelsen af ​​separate hierarkier af mapperne /usr og /app tilladt, som bruges i Steam til at starte spil i en separat container med sin egen /usr-partition, isoleret fra miljøet med Steam-klienten.
  • Alle pakkeforekomster med samme applikations-id (app-ID) deler mapperne /tmp og $XDG_RUNTIME_DIR. Ved at bruge flaget "--allow=per-app-dev-shm" kan du eventuelt aktivere brugen af ​​den delte mappe /dev/shm.
  • Forbedret understøttelse af Text User Interface (TUI) applikationer såsom gdb.
  • En hurtigere implementering af kommandoen "ostree prune" er blevet tilføjet til build-update-repo-værktøjet, optimeret til at arbejde med lagre i arkivtilstand.
  • Sårbarheden CVE-2021-41133 i implementeringen af ​​portalmekanismen, forbundet med manglen på blokering af nye systemkald relateret til montering af partitioner i seccomp-reglerne, er blevet rettet. Sårbarheden gjorde det muligt for applikationen at oprette en indlejret sandkasse for at omgå "portal"-verifikationsmekanismerne, der bruges til at organisere adgang til ressourcer uden for containeren.

    Som følge heraf kunne en angriber ved at udføre monteringsrelaterede systemkald omgå sandkasseisoleringsmekanismen og få fuld adgang til indholdet af værtsmiljøet. Sårbarheden kan kun udnyttes i pakker, der giver applikationer direkte adgang til AF_UNIX-sockets, såsom dem, der bruges af Wayland, Pipewire og pipewire-pulse. I udgivelse 1.12.0 var sårbarheden ikke fuldstændig elimineret, så opdatering 1.12.1 blev frigivet på højkant.

Lad os minde dig om, at Flatpak tillader applikationsudviklere at forenkle distributionen af ​​deres programmer, der ikke er inkluderet i standard distributionslagre, ved at forberede en universel container uden at oprette separate samlinger for hver distribution. For sikkerhedsbevidste brugere giver Flatpak dig mulighed for at køre en tvivlsom applikation i en container, der kun giver adgang til netværksfunktioner og brugerfiler, der er knyttet til applikationen. For brugere, der er interesseret i nye produkter, giver Flatpak dig mulighed for at installere de seneste test- og stabile udgivelser af applikationer uden at skulle foretage ændringer i systemet. For eksempel er Flatpak-pakker bygget til LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio osv.

For at reducere pakkestørrelsen inkluderer den kun applikationsspecifikke afhængigheder, og de grundlæggende system- og grafikbiblioteker (GTK, Qt, GNOME og KDE biblioteker osv.) er designet som plug-in standard runtime miljøer. Den vigtigste forskel mellem Flatpak og Snap er, at Snap bruger komponenterne i hovedsystemmiljøet og isolation baseret på filtrering af systemkald, mens Flatpak opretter en container adskilt fra systemet og opererer med store runtime-sæt, der ikke leverer pakker som afhængigheder, men standard sine systemmiljøer (for eksempel alle biblioteker, der er nødvendige for driften af ​​GNOME- eller KDE-programmer).

Ud over standard systemmiljøet (runtime), installeret gennem et særligt lager, leveres yderligere afhængigheder (bundle), der kræves til driften af ​​applikationen. I alt udgør runtime og bundle fyldningen af ​​containeren, på trods af at runtime er installeret separat og bundet til flere containere på én gang, hvilket giver dig mulighed for at undgå duplikering af systemfiler, der er fælles for containere. Et system kan have flere forskellige kørselstider installeret (GNOME, KDE) eller flere versioner af samme kørselstid (GNOME 3.40, GNOME 3.42). En container med en applikation som afhængighed bruger kun en binding til en bestemt runtime, uden at tage højde for de individuelle pakker, der udgør runtime. Alle manglende elementer pakkes direkte sammen med applikationen. Når en container dannes, monteres runtime-indholdet som /usr-partitionen, og bundtet monteres i /app-mappen.

Runtime- og applikationsbeholderne er bygget ved hjælp af OSTree-teknologi, hvor billedet er atomisk opdateret fra et Git-lignende repository, som gør det muligt at anvende versionskontrolmetoder til distributionskomponenterne (f.eks. kan du hurtigt rulle systemet tilbage til en tidligere tilstand). RPM-pakker oversættes til OSTree-lageret ved hjælp af et specielt rpm-ostree-lag. Separat installation og opdatering af pakker i arbejdsmiljøet er ikke understøttet; systemet opdateres ikke på niveau med individuelle komponenter, men som helhed, ændrer dets tilstand atomisk. Giver værktøjer til at anvende opdateringer trinvist, hvilket eliminerer behovet for helt at erstatte billedet med hver opdatering.

Det genererede isolerede miljø er fuldstændig uafhængigt af den anvendte distribution og har med korrekte indstillinger af pakken ikke adgang til filer og processer for brugeren eller hovedsystemet, kan ikke direkte få adgang til udstyret, med undtagelse af output via DRI, og opkald til netværksundersystemet. Grafikoutput og inputorganisation implementeres ved hjælp af Wayland-protokollen eller via X11-socket-videresendelse. Interaktion med det eksterne miljø er baseret på DBus-meddelelsessystemet og en særlig Portals API.

Til isolering bruges Bubblewrap-laget og traditionelle Linux-containervirtualiseringsteknologier baseret på brugen af ​​cgroups, namespaces, Seccomp og SELinux. PulseAudio bruges til at udsende lyd. I dette tilfælde kan isolation deaktiveres, som bruges af udviklerne af mange populære pakker til at få fuld adgang til filsystemet og alle enheder i systemet. For eksempel kommer GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity og VLC med en begrænset isolationstilstand, der giver fuld adgang til hjemmebiblioteket.

Hvis pakker med adgang til hjemmemappen kompromitteres, på trods af tilstedeværelsen af ​​"sandboxed"-etiketten i pakkebeskrivelsen, behøver angriberen kun at ændre ~/.bashrc-filen for at udføre sin kode. Et særskilt problem er kontrollen med ændringer af pakker og tillid til pakkebyggere, som ofte ikke er forbundet med hovedprojektet eller distributionerne.

Kilde: opennet.ru

Tilføj en kommentar