S'ha publicat una nova branca estable de Flatpak 1.12, que proporciona un sistema per crear paquets autònoms que no estan vinculats a distribucions específiques. Linux i s'executa en un contenidor especial que aïlla l'aplicació de la resta del sistema. Es proporciona suport per executar paquets Flatpak per a Arch. Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Menta, Alt Linux и UbuntuEls paquets Flatpak s'inclouen al repositori de Fedora i són compatibles amb el gestor d'aplicacions estàndard del GNOME.
Innovacions clau a la branca Flatpak 1.12:
- Gestió millorada dels entorns sandbox imbricats utilitzats al paquet flatpak amb el client per al servei de lliurament de jocs Steam. En els sandbox imbricats, es permet la creació de jerarquies separades dels directoris /usr i /app, que s'utilitza a Steam per llançar jocs en un contenidor independent amb la seva pròpia partició /usr, aïllada de l'entorn amb el client de Steam.
- Totes les instàncies de paquet amb el mateix identificador d'aplicació (ID d'aplicació) comparteixen els directoris /tmp i $XDG_RUNTIME_DIR. Opcionalment, utilitzant la marca "--allow=per-app-dev-shm", podeu habilitar l'ús del directori compartit /dev/shm.
- Suport millorat per a aplicacions de la interfície d'usuari de text (TUI) com ara gdb.
- S'ha afegit una implementació més ràpida de l'ordre "ostree prune" a la utilitat build-update-repo, optimitzada per treballar amb dipòsits en mode d'arxiu.
- S'ha solucionat la vulnerabilitat CVE-2021-41133 en la implementació del mecanisme del portal, associada a la manca de bloqueig de noves trucades al sistema relacionades amb el muntatge de particions a les regles seccomp. La vulnerabilitat va permetre a l'aplicació crear una caixa de proves imbricada per evitar els mecanismes de verificació del "portal" que s'utilitzen per organitzar l'accés als recursos fora del contenidor.
Com a resultat, un atacant, mitjançant la realització de trucades al sistema relacionades amb el muntatge, podria evitar el mecanisme d'aïllament de la caixa de proves i obtenir accés complet al contingut de l'entorn amfitrió. La vulnerabilitat només es pot explotar en paquets que proporcionen aplicacions amb accés directe als sòcols AF_UNIX, com els utilitzats per Wayland, Pipewire i pipewire-pulse. A la versió 1.12.0, la vulnerabilitat no s'eliminava completament, de manera que l'actualització 1.12.1 es va llançar immediatament.
Com a recordatori, Flatpak permet als desenvolupadors d'aplicacions simplificar la distribució dels seus programes que no estan inclosos als repositoris de distribució estàndard creant un contenidor únic i universal sense crear compilacions separades per a cada distribució. Per als usuaris preocupats per la seguretat, Flatpak els permet executar una aplicació qüestionable en un contenidor, donant accés només a les funcions de xarxa i als fitxers d'usuari associats amb l'aplicació. Per als usuaris interessats en noves versions, Flatpak els permet instal·lar les últimes versions de prova i estables de les aplicacions sense fer cap canvi al sistema. Per exemple, els paquets Flatpak es creen per a LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype i Telegram Desktop. Android Estudi, etc.
Per reduir la mida del paquet, només inclou dependències específiques de l'aplicació, i les biblioteques bàsiques del sistema i de gràfics (bibliotecaries GTK, Qt, GNOME i KDE, etc.) estan dissenyades com a entorns d'execució estàndard de connectors. La diferència clau entre Flatpak i Snap és que Snap utilitza els components de l'entorn del sistema principal i l'aïllament basat en el filtratge de les trucades del sistema, mentre que Flatpak crea un contenidor separat del sistema i funciona amb grans conjunts de temps d'execució, proporcionant no paquets com a dependències, sinó estàndard. els entorns del sistema (per exemple, totes les biblioteques necessàries per al funcionament dels programes GNOME o KDE).
A més de l'entorn del sistema estàndard (temps d'execució), instal·lat a través d'un dipòsit especial, es proporcionen dependències addicionals (paquet) necessàries per al funcionament de l'aplicació. En total, el temps d'execució i el paquet formen l'ompliment del contenidor, malgrat que el temps d'execució s'instal·la per separat i lliga a diversos contenidors alhora, la qual cosa permet evitar la duplicació dels fitxers del sistema comuns als contenidors. Un sistema pot tenir instal·lats diversos temps d'execució diferents (GNOME, KDE) o diverses versions del mateix temps d'execució (GNOME 3.40, GNOME 3.42). Un contenidor amb una aplicació com a dependència utilitza una vinculació només a un temps d'execució específic, sense tenir en compte els paquets individuals que componen el temps d'execució. Tots els elements que falten s'empaqueten directament amb l'aplicació. Quan es forma un contenidor, el contingut del temps d'execució es munta com a partició /usr i el paquet es munta al directori /app.
El temps d'execució i els contenidors d'aplicacions es creen utilitzant la tecnologia OSTree, en la qual la imatge s'actualitza atòmicament des d'un dipòsit semblant a Git, que permet aplicar mètodes de control de versions als components de distribució (per exemple, podeu tornar ràpidament al sistema a un estat anterior). Els paquets RPM es tradueixen al repositori OSTree mitjançant una capa especial rpm-ostree. No s'admet la instal·lació i actualització de paquets per separat dins de l'entorn de treball; el sistema s'actualitza no a nivell de components individuals, sinó en conjunt, canviant el seu estat atòmicament. Proporciona eines per aplicar actualitzacions de manera incremental, eliminant la necessitat de substituir completament la imatge amb cada actualització.
L'entorn aïllat generat és completament independent de la distribució utilitzada i, amb la configuració adequada del paquet, no té accés als fitxers i processos de l'usuari o del sistema principal, no pot accedir directament a l'equip, a excepció de la sortida via DRI, i trucades al subsistema de xarxa. La sortida gràfica i l'organització d'entrada s'implementen mitjançant el protocol Wayland o mitjançant el reenviament del sòcol X11. La interacció amb l'entorn extern es basa en el sistema de missatgeria DBus i una API especial de Portals.
Per a l'aïllament, una capa de plàstic de bombolles i tradicional Linux tecnologies de virtualització de contenidors basades en l'ús de cgroups, espais de noms, Seccomp i SELinuxPulseAudio s'utilitza per a la sortida d'àudio. L'aïllament es pot desactivar, cosa que utilitzen els desenvolupadors de molts paquets populars per obtenir accés complet al sistema de fitxers i a tots els dispositius del sistema. Per exemple, paquets com ara GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity i VLC inclouen un mode d'aïllament limitat que permet l'accés complet al directori d'inici.
Si els paquets amb accés al directori d'inici estan compromesos, malgrat la presència de l'etiqueta "sandbox" a la descripció del paquet, l'atacant només necessita canviar el fitxer ~/.bashrc per executar el seu codi. Una qüestió a part és el control dels canvis als paquets i la confiança en els creadors de paquets, que sovint no estan associats amb el projecte o distribucions principals.
Font: opennet.ru
