Subgraph OS will umfassende Sicherheit für nicht technikaffine Anwender realisieren. Schon die jetzt vorliegende Alpha-Version macht neugierig auf mehr.
Manche Mitmenschen müssen aus privaten oder beruflichen Gründen sicherstellen, dass die von ihnen genutzten Betriebssysteme und Anwendungen so sicher wie möglich arbeiten, denn im Extremfall könnte ihr Leben davon abhängen. Unter diesem Damoklesschwert leben und arbeiten unter anderem Aktivisten, Blogger, Journalisten und Dissidenten. Aber auch weniger gefährdete Anwender setzen gern speziell abgesicherte Betriebssysteme zum Schutz ihrer Privatsphäre ein. Zu dafür geeigneten Systemen zählen unter anderem das minimale Alpine [1], Tails [2], Qubes [3], Whonix [4] und, neu hinzugekommen, das derzeit in einer ersten Alpha-Version vorliegende Subgraph OS [5].
Konkurrenz und Ansporn
Die auf Debian basierende, vornehmlich für den Live-Betrieb konzipierte Distribution Tails will die Anonymität der Nutzer schützen. Dazu leitet das System jede ausgehende Verbindung durch das Tor-Netzwerk, direkte Verbindungen werden standardmäßig blockiert. Qubes und Whonix betreiben bei Sicherheit und Anonymisierung wesentlich mehr Aufwand.
Whonix basiert ebenfalls auf Debian und versucht, über zwei unabhängige Systemteile ein möglichst hohes Level an Sicherheit zu erreichen: Während sich das Gateway um den Datenaustausch mit der Außenwelt über das Tor-Netzwerk kümmert, dient die Workstation als Benutzerinterface. Sowohl Workstation als auch Gateway laufen als getrennte virtuelle Maschinen in Virtualbox.
Auch Qubes bedient sich der Virtualisierung, setzt dabei aber auf Xen als Hypervisor. Die Architektur des hinsichtlich der unterstützten Hardware recht wählerischen Qubes sieht vor, Anwendungen in virtuelle Xen-Maschinen zu sperren. Diese Käfige nehmen mehrere mit gleichen Rechten ausgestattete Applikationen auf und isolieren sie gegenüber anderen VMs und dem Grundsystem.
Die Qubes-Entwicklerin Joanna Rutkowska, die das Sicherheitsunternehmen Invisible Things Lab [6] betreibt, beschreibt Qubes als “halbwegs sicheres System”. Diese Beschreibung wirft ein bezeichnendes Licht auf die Einschätzung von Experten, wie sicher ein Betriebssystem mit Verbindung zum Internet überhaupt operieren kann. Deshalb meinen wir, wenn wir in diesem Artikel von “sicher” sprechen, stets die relativ erreichbare Sicherheit. Absolute Sicherheit gibt es weder bei Betriebssystemen noch den Anwendungen – erst recht nicht, wenn diese Zugang zum Internet besitzen.
Der Herausforderer
Vor wenigen Wochen wurde in Berlin während des Logan-Symposiums [7] mit Subgraph OS (SGOS) ein weiteres Betriebssystem auf der Basis von Debian “Testing” vorgestellt, das sich der Sicherheit, der Anonymisierung und dem Datenschutz verschreibt. Als Minimalanspruch formulieren die Entwickler, ein System wie Tails zu bieten – allerdings auf Festplatteninstallation ausgelegt, einfach zu handhaben und auf möglichst viel verschiedener Hardware lauffähig. Bereits die jetzt verfügbare Alpha-Version geht aber weit über das auf Portabilität ausgelegte Tails hinaus.
Vier Entwickler des im kanadischen Montreal angesiedelten Sicherheitsunternehmens Subgraph [8] realisieren unter der Leitung von David Mirza Ahmad ein System, das bei der Absicherung über Tails hinausgeht. Dabei versuchen sie jedoch, die Komplexität von Qubes oder Whonix zu vermeiden. Wenden sich diese eher an technisch versierte Anwender, soll SGOS auch dem technisch eher unbedarften Zeitgenossen ein entscheidendes Plus an Sicherheit und Privatsphäre bieten. Dabei sollen sowohl Kriminelle als auch diverse Staatsdienste außen vor bleiben. Der Open Technology Fund [9] (OTF) unterstützt dabei das ausschließlich auf Open Source setzende Unternehmen mit 200?000 US-Dollar. Der OTF erhält seinerseits Gelder vom US-Außenministerium zur Unterstützung von Open-Source-Projekten. Auch Tails und Qubes bezogen bereits Unterstützung aus diesem Topf.
Um ihre Ziele zu erreichen, setzen die Entwickler zum einen auf das Umleiten des Datenverkehrs über das Anonymisierungsnetzwerk Tor sowie künftig auf einen eigenen Mailclient und zum anderen auf das Härten des Kernels mit Grsecurity- und PAX-Patches [10]. Um mögliche Angriffsvektoren weiter zu minimieren, speckten die Programmierer den Kernel um nicht benötigte Protokolle und Dienste ab.
Ein Sandbox-System namens Oz sperrt Desktop-Anwendungen in isolierte Boxen, sodass – sollte eine Anwendung doch einmal kompromittiert werden – der Rest des Systems davon verschont bleibt und weiter sicher läuft (Abbildung 1). Eine Application-Firewall alarmiert den Benutzer grafisch, sobald ein unbekanntes Programm Zugriff auf das Internet verlangt.
Rechte beschnitten
Viele Anwendungen besitzen in normalen Distributionen Rechte, die sie eher selten benötigen. Wozu braucht etwa ein PDF-Reader Schreibrechte für das gesamte Home-Verzeichnis? Aus diesem Grund verhindert bei SGOS eine durch den Anwender editierbare Blacklist einige der rund 320 Systemaufrufe [11], die der Linux-Kernel bietet.
Kein Mitspracherecht hat der Nutzer dagegen bei der Verschlüsselung: Installieren Sie die Distribution fest auf dem Rechner, verschlüsselt die Installationsroutine das System automatisch mit Dmcrypt/LUKS (Abbildung 2). Beim Herunterfahren des Systems leert das System zusätzlich den Arbeitsspeicher, um Kaltstartattacken [12] zu verhindern. Das kleine Tool MAT entfernt des Weiteren alle Metadaten aus Dateien und schützt so Journalisten und Blogger.
Zur Installation müssen Sie das 1,4 GByte große ISO-Image von der Projektseite [13] herunterladen. Auf einen USB-Stick übertragen, lässt sich SGOS als Live-System mit Installer starten. Das System basiert auf Debian und setzt einen 64-Bit-Rechner voraus, der mindestens einen Zweikern-Prozessor und 2 oder besser 4 GByte Hauptspeicher sowie 20 GByte oder mehr freien Platz auf der Festplatte mitbringt. Als Desktop-Umgebung kommt Gnome 3 zum Einsatz. Mit diesen relativ niedrigen Grundvoraussetzungen lassen sich auch gängige Notebooks sicher betreiben. Das Passwort für das Live-Medium lautet live.
Die Entwickler weisen darauf hin, dass die nach zwei Jahren Entwicklung veröffentlichte erste Alpha-Version noch Fehler enthält – vermutlich auch im Sicherheitsbereich – und somit für den Produktiveinsatz noch nicht infrage kommt. Die Entwickler arbeiten auch noch an den Modalitäten der Veröffentlichung: So haben sie das Alpha-Release zwar bereits mit einem Entwicklerschlüssel signiert, aber noch nicht alle Anwendungen.
Seit Kurzem installiert eine Aktualisierung nach der Installation einen distributionseigenen Schlüssel. Das Team arbeitet für die erste stabile Veröffentlichung im nächsten Jahr zudem an der Integration von Debians Reproducible Builds. Das soll Vorfälle mit untergeschobenen, böswillig verfälschten Images verhindern, wie sie letztens bei Linux Mint vorkamen.
Debian “Testing” als Unterlage ermöglicht bereits jetzt einen realistischen Blick auf die implementierten Sicherheitsfunktionen. Einige der frühen Version geschuldete Unzulänglichkeiten listet die Projektseite auf [15]. Bei eigenen Tests müssen Sie beachten, dass SGOS noch nicht den Umgang mit UEFI beherrscht, weshalb Sie im BIOS des Rechners gegebenenfalls vor dem Booten des Live-Mediums auf den Legacy-Modus umstellen müssen. Möchten Sie die Distribution fest auf Ihrem System installieren, müssen Sie während des Bootvorgangs den Installer aus dem Startmenü auswählen. Hier kommt eine leicht modifizierte textbasierte oder grafische Version des Debian-Installers zum Einsatz. Im Test führte die grafische Variante zielsicher durch die Installation.
Sehr frühes Stadium
Nach dem ersten Hochfahren nach der Installation begrüßt Sie die Gnome Shell. Beim Stöbern in der Oberfläche und den vorinstallierten Paketen fallen einige Besonderheiten auf: Zunächst einmal gibt es keinen personalisierten User, der Standardanwender heißt einfach user. Damit möchten die Entwickler verhindern, dass Anwender über Klarnamen mehr Privates preisgeben als nötig. Bei Bedarf erstellen Sie über die Konfiguration ein personalisiertes Benutzerkonto.
Weiterhin fällt auf, dass sich das System nicht automatisch mit dem Internet verbindet – auch dann nicht, wenn eine Kabelverbindung besteht. Um das zu ändern, werfen Sie einen Blick auf die Unterpunkte hinter dem Tor-Symbol rechts oben am Bildschirmrand (Abbildung 3): Dort aktivieren Sie unter anderem die Netzwerkverbindung.
Der Tor-Browser dient bei SGOS zum anonymen Surfen im Internet (Abbildung 4). Generell leitet das System sämtliche ausgehenden Verbindungen des Browsers sowie anderer Anwendungen über das von Subgraph entwickelte Tool Metaproxy transparent ins anonymisierende Tor-Netzwerk. Klicken Sie auf das Icon des Tor-Browsers, lädt das System ihn herunter und installiert das Programm auf der Festplatte. Öffnen Sie stattdessen den Tor-Browser-Launcher, bietet SGOS hingegen unter anderem den Download-Server zur Auswahl an. Falls der Browser beim ersten Start nicht lädt, fehlen vermutlich die Flags für PAX. Diese lassen sich mit dem Kommando sudo paxrat -c /etc/paxrat/paxrat_tbl.conf nachziehen.
Tor: Pro und kontra
Den gesamten Verkehr über das Tor-Netzwerk zu leiten, bringt in manchen Situationen jedoch auch Nachteile mit sich. Auf jeden Fall verlangsamt es die Arbeit, da ja eine Umleitung über mehrere Server stattfindet. Die Entwickler sind mit dieser rigiden Vorgehensweise selbst nicht ganz zufrieden, da Subgraph OS in erster Linie ein sicheres System anstrebt und Anonymisierung somit erst an zweiter Stelle steht. Eine der Zielgruppen von SGOS bilden Journalisten, deren Arbeit und Recherche die relativ geringen Datenraten über Tor massiv beeinträchtigen. So planen die Entwickler für die erste offizielle Fassung eine Lösung, die es dem Anwender von Fall zu Fall überlässt, ob er Tor nutzen möchte oder nicht.
SGOS bringt den Instant Messenger CoyIM [16] mit, der nur die nötigsten Funktionen enthält (Abbildung 5). Als oberste Maxime galt den Entwicklern, das Programm bestmöglich abzusichern – somit passt es perfekt ins Konzept von Subgraph OS. CoyIM setzt auf das auch als Jabber bekannte XMPP-Protokoll und unterstützt Off-The-Record-Messaging (OTR [17]) sowie TLS. Allerdings steckt das Programm noch in den Kinderschuhen, weswegen man es derzeit nur zum Testen verwenden sollte.
CoyIM findet automatisch ein installiertes Tor und initiiert die Verbindung über das Netzwerk. Um Rückschlüsse auf den User zu unterbinden, baut das Programm Verbindungen zu mehreren angelegte Konten zeitverzögert auf und leitet die Daten über verschiedene Wege durchs Tor-Netz. CoyIM kann Konten und OTR-Einstellungen sowie private Schlüssel aus Pidgin, Adium, Gajim und anderen IMs importieren und die gesamte Konfiguration verschlüsselt im Home-Verzeichnis ablegen.
Als Mail-Client dient derzeit noch Thunderbird (bei Debian heißt er Icedove) mit vorinstalliertem Enigma-Verschlüsselungsmodul (Abbildung 6). Die Entwickler arbeiten allerdings an einem eigenen Mailclient, den PGP/MIME in einer für Endanwender leicht handhabbaren Version bereits mitbringen soll.
Im Gefängnis
Als Dreh- und Angelpunkt einer künftigen stabilen Version von Subgraph OS soll der Sandbox-Mechanismus Obsidian Zebra (kurz Oz) fungieren, der hochriskante Desktop-Anwendungen wie Browser, Mailclient, IMs, PDF-Viewer oder Videoplayer in Sandkästen sperrt und gegeneinander sowie gegen das System selbst isoliert. Das klappt derzeit jedoch erst für wenige der Anwendungen.
Starten Sie etwa den Tor-Browser, den Dokumentenbetrachter Evince, CoyIM, LibreOffice oder Icedove, sehen Sie bei einem Klick auf das Symbol oben links neben der Lokalisierungsanzeige die einzelnen Sandboxen. Dort lassen sich dann beispielsweise Dateien in eine Sandbox laden, ein Terminal innerhalb der Sandbox aufrufen oder die Sandbox beenden. Damit schließen Sie auch die darin laufenden Anwendungen. Nicht gespeicherte Daten gehen derzeit noch verloren.
Oz befindet sich, wie andere Teile von SGOS, noch in einer sehr frühen Phase, soll aber später unter anderem ermöglichen, Anwendungen selbst zu isolieren, die SGOS nicht standardmäßig erfasst. Das interessante Konzept von Oz, das Kernel-Namespaces, Seccomp-Filter und Xpra verwendet, erläutert das Wiki des Projekts ausführlich [18].
Die Sandboxen lassen sich auch über die Konsole verwalten (Abbildung 7): Der Befehl oz profiles etwa zeigt alle Anwendungen, die Oz in einer Sandbox isolieren kann. Das Kommando oz list gibt dagegen die derzeit laufenden Sandboxen aus. Eine laufende Sandbox betreten Sie, indem Sie oz shell n verwenden, wobei n für die Nummer der Anwendung steht, die oz list anzeigt.
Weitere Befehle, die bisher noch keine Umsetzung in der grafischen Oberfläche fanden, erklärt die GitHub-Seite des Projekts [19]. Dort arbeiten die Entwickler auch an einem Anwenderhandbuch für die Funktion [20].
Fazit und Ausblick
Das Erstellen eines sicheren Betriebssystems bedeutet ein Balance-Akt zwischen technischem Anspruch und Anwenderfreundlichkeit. Qubes und Whonix bürden dem Anwender eine steile Lernkurve auf, die Subgraph OS vermeiden will. Das könnte gelingen, sofern die SGOS-Entwickler Oz als Schaltzentrale weiter verbessern und die grafische Oberfläche mehr Funktionen abdeckt.
Die Verschlüsselung des gesamten Systems geschieht automatisch, man darf lediglich das dafür vergebene Passwort nicht verlieren. Leitet SGOS künftig nicht mehr jede Internetverbindung zwangsweise über Tor, und hält ein sicherer Mailclient mit einer nutzerfreundlichen Verschlüsselung per PGP/MIME Einzug, sollte SGOS eine runde Sache werden.
Die öffentliche Vorstellung auf dem renommierten Logan-Symposium in Berlin nahmen Anwender und Presse mit großem Interesse auf. Im IRC-Kanal tummeln sich seitdem ständig rund 100 Entwickler und enthusiastische Anwender, die Entwicklung verläuft in einem guten Tempo. Kritik gibt es an der – wenn auch indirekten – Finanzierung des Projekts durch das US-Außenministerium. Allerdings finanzieren sich auch Tails, Qubes und Tor aus diesem oder ähnlichen Töpfen.
Es macht bereits jetzt Spaß, Subgraph OS zu erkunden, trotz der dem Alpha-Status geschuldeten Fehler. In einer Virtualbox geladen, ließ sich der Tor-Browser installieren und auch nutzen, in einer realen Installation verweigerte er nach der Installation jedoch den Dienst. Einmal gelang uns die Installation des Systems auch ohne Verschlüsselung, was nicht im Sinne der Entwickler liegt.
Insgesamt wirkt SGOS noch etwas inkonsistent und eignet sich nicht für das produktive Arbeiten. Die Alpha macht aber bereits klar, wohin die Reise geht, und zeigt interessante Ausblicke. Im Sommer 2016 soll eine erste Beta erscheinen, das erste stabile Release soll 2017 folgen. Dann stellen wir Subgraph OS noch einmal auf den Prüfstand und klopfen die Sicherheitsfunktionen genau ab.
Glossar
-
Reproducible Builds
-
Seit 2013 gibt es bei Debian “Reproducible Builds” [14]. Damit möchten die Entwickler generell erreichen, den Build-Prozess von Software reproduzierbar zu machen, sodass andere Personen jederzeit ein Bit für Bit identisches Binärpaket erzeugen können. Das erlaubt jedem, zu verifizieren, ob das Paket aus dem unmodifizierten Quellcode ohne Manipulationen erstellt wurde.
Infos
[1] Alpine: https://en.wikipedia.org/wiki/Alpine_Linux
[2] Tails: https://de.wikipedia.org/wiki/Tails_(Linux-Distribution)
[3] Qubes: http://www.linux-magazin.de/Ausgaben/2014/01/Qubes-OS
[4] Whonix: https://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2014/09/Unsichtbar
[5] Subgraph OS: https://subgraph.com/sgos/graph/index.en.html
[6] Invisible Things Lab: http://invisiblethingslab.com
[7] Logan Symposium: https://logancij.com/
[8] Subgraph: https://subgraph.com/about-us/index.en.html
[9] OTF: https://en.wikipedia.org/wiki/Open_Technology_Fund
[10] Grsecurity: https://en.wikipedia.org/wiki/Grsecurity
[11] Systemaufrufe: https://de.wikipedia.org/wiki/Liste_der_Linux-Systemaufrufe
[12] Kaltstartattacke: https://de.wikipedia.org/wiki/Kaltstartattacke
[13] SGOS herunterladen: https://subgraph.com/sgos/download/index.en.html
[14] Reproducible Builds: https://wiki.debian.org/ReproducibleBuilds
[15] Bekannte Fehler: https://subgraph.com/sgos/download/notes/index.en.html
[16] CoyIM: https://coy.im/about/
[17] OTR: https://de.wikipedia.org/wiki/Off-the-Record_Messaging
[18] Oz: https://github.com/subgraph/oz/wiki/Oz-Technical-Details
[19] Oz-Befehle: https://github.com/subgraph/oz#oz-client-commands
[20] Subgraph-Handbuch: https://github.com/subgraph/sgos_handbook












