Original-URL des Artikels: https://www.golem.de/news/security-linux-desktops-brauchen-bessere-verteidigung-1708-129244.html    Veröffentlicht: 01.08.2017 14:58    Kurz-URL: https://glm.io/129244

Security

Linux-Desktops brauchen bessere Verteidigung

Die Sicherheit von Desktop-Umgebungen unter Linux könnte besser sein. Der Sicherheitsforscher und Google-Angestellte Matthew Garrett stellt deshalb Verteidigungsstrategien vor. Deren vollständige Umsetzung wird aber wohl noch Jahre dauern.

Fehlende Isolierung, kaputte Parser, jahrzehntealter Code ohne Sicherheitskonzepte - die Probleme für die Sicherheit von Linux-Desktops sind so zahlreich, dass einige Forscher sogar Windows 10 für sicherer halten als Linux. Der bei Google für die Sicherheit der Unternehmensrechner zuständige Matthew Garrett beschreibt deshalb auf der Gnome-Konferenz Guadec einige Strategien, um diese Probleme zu lösen.

Wie zuvor bereits der Mitbegründer des Gnome-Projekts Federico Mena Quintero weist auch Garrett in seinen Ausführungen darauf hin, dass C eine "schreckliche" Programmiersprache und der Code von Parsern meist "furchtbar" sei. Beides vereint sei einfach nur "extrem schlecht". Als Abhilfe hierfür empfiehlt Garrett wie Mena die Verwendung der Sprache Rust.

Doch eine sichere Sprache allein löse nicht alle Probleme, sagt Garrett. So werde es immer Fehler in der Software geben, etwa in der Logik des Programms. Deshalb sei es natürlich wichtig, Updates für Programme zu erstellen und diese auch einzuspielen. Aber auch Updates seien nicht ausreichend.

Denn viele Nutzer, auch technisch versierte, meiden nach Darstellung von Garrett das unmittelbare Einspielen von Updates, etwa weil dies den Arbeitsablauf unterbricht. Updates werden auch deshalb vermieden, weil damit oft nicht nur Sicherheitslücken behoben, sondern auch neue Funktionen in die Software eingepflegt werden, die Nutzer eventuell nicht wollen. Letztlich gilt laut Garrett auch die banale Tatsache, dass "Angreifer nicht auf Updates warten", sondern versuchen, die Lücken vorher auszunutzen.

Vorwärtsverteidigung unter Linux

Das Angriffsrisiko muss Garrett zufolge also so weit wie möglich reduziert werden. Dafür muss aktiv an bestimmten Techniken und Ideen gearbeitet werden. Als Beispiel hierfür dient nicht nur der Port der Bibliothek Librsvg von C nach Rust, sondern auch die inzwischen umgesetzten Arbeiten an dem Prozess, der Thumbnails auf dem Gnome-Desktops erzeugt.

Statt wie bisher einfach alle mögliche Dateien vollautomatisiert in einem Prozess der aktuellen Desktop-Sitzung zu parsen, kann sich dieser Vorgang theoretisch für jeden einzelnen Parse-Vorgang isolieren lassen. Dank diverser Wrapper und "Hunderter Zeilen von Boilerplate-Code" passiert künftig genau das. Genutzt wird hierfür eine Kombination aus Bubblewrap und Seccomp, das zum Filtern von Systemaufrufen verwendet wird. Details zu der Technik finden sich im Blog des zuständigen Entwicklers Bastien Nocera.

Isolation für alle

Ein derartige Isolation sollte, so Garrett, möglichst weitreichend in der Desktop-Sitzung umgesetzt werden. Und zwar nicht nur für Hintergrunddienste wie den Thumbnail-Ersteller, sondern eben für alle grafischen Anwendungen. Beispielhaft illustriert Garrett hier die theoretischen Auswirkungen einer vollständigen Isolation für den Dokumententenbetrachter Evince.

Auch wenn es Angreifern gelingen würde, Evince etwa über ein manipuliertes PDF zu übernehmen, wäre das idealerweise auch schon alles, was damit erreicht werden könnte, da der Zugriff auf den Rest der Sitzung durch eine gut umgesetzte Isolation verhindert wird. Das umfasst etwa den Zugriff auf das Dateisystem oder bestimmte Ressourcen wie Passwörter, die anderweitig zur Verfügung gestellt werden, aber dank der Isolation geschützt sind.



Richtige Kombination von Buzzwords

Mit Blick auf die Entwicklungen des Gnome-Projekts erläutert Garrett, dass diese beschriebene Isolation von Flatpak dank der "richtigen Kombination von Buzzwords" erreicht wird. Dazu gehören Kernel-Techniken wie Namespaces und Cgroups, um Prozesse zu isolieren. Aus Sicht der Anwendung läuft diese damit auf einem unveränderten System, tatsächlich ist diese aber in einer Art Container eingesperrt.

Damit die so in eine Sandbox gesperrten Anwendungen dennoch auf Ressourcen zugreifen können, kommen bei Flatpak sogenannte Portals zum Einsatz. Dabei handelt es sich um eine API, mit der sich die Zugriffe nur durch explizite Nutzerinteraktion steuern lassen. Das erinnert an die Berechtigungssysteme in Browsern oder auf Mobiltelefonen.

Garrett erwähnt ebenso die Canonical-Technik Snap, die zwar an Linux-Sicherheitsmodule wie Apparmor gebunden, aber nicht auf die Verwendung in einer Desktop-Sitzung beschränkt sei. Mit Snap könnten also auch Anwendungen wie Konsolenwerkzeuge wie Tcpdump isoliert werden. Und das sei ebenfalls genau die Art Programm, die eine Isolierung benötige. Immerhin verarbeite auch Tcpdump nicht vertrauenswürdige Daten.

Isolation im Grafikstack

Da sich der Sicherheitsforscher Garrett in seinem Vortrag aber primär mit Desktop-Umgebungen befasst, führt er zuletzt noch eine extrem wichtige Komponente an, die langfristig ersetzt werden müsse: das X11-Fenstersystem. Denn X11 sei ein riesiger schrecklicher Codeberg, der C nutzte und mittlerweile fast 30 Jahre alt sei.

Die Probleme mit X11 lassen sich aber nicht nur auf die üblichen und bekannten Fehler aus C zurückführen, sondern vor allem auf das Alter des Systems, so Garrett. Der Code sei größtenteils in einem Stil verfasst, der nur schwer zugänglich sei und im Prinzip "ein einziges Rätsel schrecklicher Programmierpraktiken ist".

Ebenso leidet X11 unter kaum vorhandenen Sicherheitsvorkehrungen, was auch auf das wesentlich geringere Angriffspotenzial während der 80er Jahre zurückzuführen sei. Gelöst werde zumindest das fehlende Sicherheitskonzept von X11 durch die Einführung des Display-Protokolls Wayland. Dieses bietet unter anderem eine Isolation der grafischen Anwendungen untereinander.

Bis all diese Konzepte und Ideen aber standardmäßig in Desktop-Umgebungen für Linux-Distributionen eingebaut sind, werden vermutlich noch mehrere Jahre vergehen. Für Garrett bleibt die kleine positive Aussicht, dass die inzwischen abgeschlossenen Arbeiten den Linux-Desktop immerhin sicherer machen als noch vor einem Jahr.  (sg)


Verwandte Artikel:
Guadec: Ubuntus Wechsel zu Gnome wird holprig   
(31.07.2017, https://glm.io/129215 )
Rust: "C ist eine feindselige Sprache"   
(30.07.2017, https://glm.io/129196 )
RHEL: Red Hat beendet Unterstützung für KDE-Desktop   
(05.11.2018, https://glm.io/137506 )
Linux: Kernel-Lockdown-Patches kommen als Security-Modul   
(25.06.2019, https://glm.io/142134 )
Sicherheitslücke: Ghostscript-Lücken gefährden Imagemagick und Linux-Desktops   
(23.08.2018, https://glm.io/136157 )

© 1997–2019 Golem.de, https://www.golem.de/