Llançament del sistema de paquets autònoms Flatpak 1.12.0

S'ha publicat una nova branca estable del conjunt d'eines Flatpak 1.12, que proporciona un sistema per construir paquets autònoms que no estan vinculats a distribucions de Linux específiques i que s'executen 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 Mint, Alt Linux i Ubuntu. Els paquets Flatpak s'inclouen al dipòsit de Fedora i són compatibles amb el gestor d'aplicacions nadiu 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.

Recordem que Flatpak permet als desenvolupadors d'aplicacions simplificar la distribució dels seus programes que no estan inclosos als repositoris de distribució estàndard preparant un contenidor universal sense crear conjunts separats per a cada distribució. Per als usuaris conscients de la seguretat, Flatpak us permet executar una aplicació qüestionable en un contenidor, proporcionant accés només a les funcions de xarxa i als fitxers d'usuari associats a l'aplicació. Per als usuaris interessats en nous productes, Flatpak us permet instal·lar les darreres versions de proves i versions estables d'aplicacions sense necessitat de fer canvis 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, Telegram Desktop, Android Studio, 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ïllar-se, s'utilitzen la capa Bubblewrap i les tecnologies tradicionals de virtualització de contenidors Linux, basades en l'ús de cgroups, espais de noms, Seccomp i SELinux. PulseAudio s'utilitza per emetre so. En aquest cas, l'aïllament es pot desactivar, 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, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity i VLC inclouen un mode d'aïllament limitat que deixa 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

Afegeix comentari