Flatpak Logo

Das Flatpak-Berechtigungssystem

KDE Plasma erhielt kürzlich ein neues Modul in den Systemeinstellungen, das die Anpassung von Berechtigungen für Flatpaks erlaubt. Zu finden ist es dort unter Anwendungen → Flatpak Permission Settings. Bisher benötigte man dafür eine App wie Flatseal oder nahm die Einstellungen über Befehle im Terminal vor.

Kompliziertes Berechtigungssystem

Aber ganz egal, wo man diese Einstellungen vornimmt, sind sie in ihrer Komplexität wirklich notwendig? Die Frage ergibt sich für mich aus der Erkenntnis, dass das bestehende Berechtigungssystem viele Anwender überfordert, was besonders kritisch ist, da es ja hier um die Sicherheit geht. Flatpaks werden in Sandboxen gegeneinander und gegenüber dem Gastsystem isoliert und haben bei der Auslieferung nur bestimmte Rechte. Jede weitere erteilte Berechtigung bohrt ein weiteres Loch in diesen Container.

Standard-Berechtigungen von Plex in den Plasma-Systemeinstellungen

Die Guten und die Bösen

Flatpak kennt zwei Arten von Berechtigungen. Statische Berechtigungen kommen mit dem Flatpak bei Auslieferung und können zur Laufzeit der App nicht geändert werden. Der Entwickler oder Paketierer entscheidet, welche Berechtigungen er für sinnvoll erachtet und stattet das Flatpak damit aus. Das führt dazu, dass neben adäquat ausgestatteten Flatpaks auch solche mit zu wenigen oder auch zu vielen Löchern im Container gibt. Diese statischen Berechtigungen sind der Grund dafür, dass es Apps wie Flatseal oder das neue KCM-Modul bei KDE Plasma gibt.

Andererseits gibt es dynamische Berechtigungen, die den Anwender zur Laufzeit fragen, ob er dem Flatpak Zugang zu einem bestimmten Teil des Systems geben will, um eine bestimmte Aufgabe zu erledigen. Beispielsweise benötigt ein Editor Zugang zu Dateien, um diese bearbeiten zu können. Diese Berechtigungen schlagen kleinere Löcher in den Container und das auch nur so lange wie nötig. Erlaubt der Anwender zur Laufzeit einem Editor den Zugriff auf eine Datei, so gilt diese Berechtigung nur für diese Datei. Natürlich kann man auch ganze Verzeichnisse oder andere Ressourcen freigeben, aber auch das gilt nur für die laufende Sitzung.

XDG Desktop Portals

Dynamische Berechtigungen werden über XDG Desktop Portals implementiert. Dabei handelt es sich um ein Framework von APIs für verschiedene Desktop-Umgebungen und Toolkits. Sie bieten eine Reihe von Funktionen für Anwendungen, darunter: Ermittlung des Netzwerkstatus, Öffnen einer Datei mit einem Dateiauswahlmenü, Öffnen von URIs, Erstellen von Screenshots und Screencasts.

XDG Portals für verschiedene Desktops und Toolkits in Debian

Jedes Portal hat eine bestimmte Aufgabe, wie der Dokumentation zu entnehmen ist. Manche, wie etwa den Dateiauswahldialog gibt es in mehreren Versionen für verschiedene Toolkits, denn die einzelnen Apps versuchen immer, den Dateiauswahldialog zu starten, den das eigene Toolkit implementiert.

Portals weiter implementieren

Der einzige Grund, warum statische Berechtigungen noch existieren ist, dass sie einfacher zu implementieren sind. Dynamische Berechtigungen müssen mit dem jeweiligen Toolkit, Fenstermanager oder Desktop zusammenarbeiten und dazu in diese integriert werden. Zudem ist das Portals-System recht jung und noch nicht perfekt. Somit werden statische Berechtigungen uns trotzt ihrer Nachteile für eine Übergangszeit weiterhin begleiten.

Das Flatpak ASHPD Demo wurde eigens konzipiert, um das Flatpak-Berechtigungssystem und Portals besser zu verstehen und erkunden zu können.

Quelle: theevilskeleton

Teilt den Beitrag, falls ihr mögt

10 Kommentare

  1. Ich sehe bei Flatpak ein Problem, das es viele Versionen eines gleichen XDG Desktop Portals gibt, teilweise sogar Apps mit einer end-of-life Version. Das verbraucht unnötig Speicherplatz und ist auch ein gewisses Sicherheitsrisiko.So sieht es bei mir aus:

    matze@matze-desktop:~$ sudo flatpak update
    Looking for updates…
    Info: (pinned) org.gnome.Platform//42 is end-of-life, with reason:
      The GNOME 42 runtime is no longer supported as of March 21, 2023. Please ask your application developer to migrate to a supported platform.
    Applications using this runtime:
      com.github.alainm23.planner
    Info: (pinned) org.gnome.Platform//41 is end-of-life, with reason:
      The GNOME 41 runtime is no longer supported as of September 17, 2022. Please ask your application developer to migrate to a supported platform.
    Applications using this runtime:
      com.github.rajsolai.textsnatcher, org.gnome.GTG
    Info: org.gnome.Platform//3.36 is end-of-life, with reason:
      The GNOME 3.36 runtime is no longer supported as of February 13, 2021. Please ask your application developer to migrate to a supported platform.
    Applications using this runtime:
      com.github.bajoja.indicator-kdeconnect
    Info: org.freedesktop.Platform.VAAPI.Intel//19.08 is end-of-life, with reason:
      The Freedesktop SDK 19.08 runtime is no longer supported as of September 1, 2021. Please ask your application developer to migrate to a supported version
    Info: org.freedesktop.Platform.GL.default//19.08 is end-of-life, with reason:
      The Freedesktop SDK 19.08 runtime is no longer supported as of September 1, 2021. Please ask your application developer to migrate to a supported version
    

    Hier ein Ausschnitt der installierten XDGs:

    Freedesktop Platform                               575,0 MB           org.freedesktop.Platform                          22.08.11            22.08      
    default                                            255,8 MB           org.freedesktop.Platform.GL.default                                   19.08      
    Mesa                                               381,6 MB           org.freedesktop.Platform.GL.default               21.3.9              21.08      
    Mesa                                               414,2 MB           org.freedesktop.Platform.GL.default               23.0.2              22.08      
    Mesa (Extra)                                       414,2 MB           org.freedesktop.Platform.GL.default               23.0.2              22.08-extra
    Intel                                               37,0 MB           org.freedesktop.Platform.VAAPI.Intel                                  19.08      
    Intel                                               46,5 MB           org.freedesktop.Platform.VAAPI.Intel                                  21.08      
    Intel                                               46,4 MB           org.freedesktop.Platform.VAAPI.Intel                                  22.08      
    openh264                                           778,2 kB           org.freedesktop.Platform.openh264                 2.1.0               2.0        
    openh264                                           790,0 kB           org.freedesktop.Platform.openh264                 2.1.0               2.2.0      
    Getting Things GNOME!                                8,7 MB           org.gnome.GTG                                     0.6                 stable     
    GNOME Application Platform version 3.36            939,2 MB           org.gnome.Platform                                                    3.36       
    GNOME Application Platform version 41              775,4 MB           org.gnome.Platform                                                    41         
    GNOME Application Platform version 42              760,8 MB           org.gnome.Platform                                                    42         
    GNOME Application Platform version 43              864,0 MB           org.gnome.Platform                                                    43         
    GNOME Application Platform version 44              861,0 MB           org.gnome.Platform                                                    44         
    
    7
  2. Ich sags mal so, der einfache Linux user arbeitet nicht mit Berechtigungen etwas und der versierte user macht es lieber haendisch alles, da er ja wissen will was sein system wirklich macht und die volle Kontrolle darueber will.

    0
    1. Ironischerweise glaube ich, wissen das nichtmal die Profis auf Anhieb. Das basiert alles auf Vertrauen. Deswegen ist es gut sowas wie Flatpak und Flatseal zu haben. Und das sag ich als normaler Anwender. Probitären Stuff kann man garnicht überprüfen, nur einschränken und das beste hoffen.

      1
  3. Ich denke, dass Linux ein (oder mehrere) Paketformate benötigt, um Anwendungen zugänglich zu machen, die von der eigenen Distribution nativ nicht zur Verfügung gestellt wird. Anders wir Linux keine breitere Akzeptanz erhalten. Allerdings darf das Sicherheitskonzept von Linux nicht ausgehebelt werden und keiner möchte Zustände wie bei manch anderem populären Betriebssystem haben. Jedoch müssen alternative Paketformate auch von nicht so visierten Usern gehandelt werden können. Dazu gehört auch ein Berechtigungssytem. Auch dieses muss von nicht so visierten Usern gehandelt werden können. Dementsprechend scheint noch Luft nach oben zu sein, aber das wird noch.

    1
  4. Also gegenüber dem Ersetellen eines AppArmor-Profils sind die Flatpak-Berechtigungen ja doch deutlich angenehmer zu überblicken 😀

    Sinnvoll ist es natürlich – grade bei proprietären Anwendungen – die Berechtigungen vor dem ersten Ausführen zu checken. Der Edge z.b. nimmt sich da deutlich mehr raus als ich ihm zugestehen würde 😉

    1
    1. Bei solchen Einschätzungen zur Anwenderfreundlichkeit muss man eins bedenken: *Früher* waren Linux-User im Schnitt besser mit dem System vertraut. Seit Linux populärer wird, steigen immer mehr Leute um, die einfach nur damit arbeiten wollen, ohne die Hintergründe verstehen zu müssen. Das ist natürlich vollkommen legitim, aber da ist ein solches Berechtigungssystem dann doch schon eine hohe Schwelle.

      4
      1. Klar, gar keine Frage.
        Die Frage ist halt – was soll man machen? Von Flathub erwarten, dass diese jede App genauestens auf korrekt gesetzte Berechtigungen prüft? Weil die Optionen einfach nur zu verstecken hilft den weniger Versierten ja genauso wenig und behindert nur die, die sich damit auseinander setzen.
        Dann hätten wir aber sicher nur noch ein Bruchteil der Apps als Flatpak zur Verfügung.
        Vielleicht könnte man noch eine Art ‘Zertifiziert durch Flathub’ Marker einführen, aber wir wissen ja alle, wie wenig der Durchschnitts-DAU sich von irgendwelchen Warnungen vom Blödsinn machen abhalten lässt 😀

        4

Kommentar hinterlassen