Zum Hauptinhalt springen

Mit Fehlern (über)leben

Die klassische Methode zur Entwicklung sicherer Systeme basiert auf dem Ansatz, möglichst alle Fehler in der realisierten Software zu vermeiden, bis hin zu mathematisch verifizierten Systemen. Die Erfahrung mit den heute eingesetzten komplexen Software-Umgebungen zeigt, dass wir weit davon entfernt sind, auf diese Weise tatsächlich durchgängig sichere Systeme zu erhalten. Im Gegenteil werden praktisch täglich neue Sicherheitslücken publiziert, und häufig genügt ein einziger Fehler in irgendeiner Software-Komponente, um die Gesamtsicherheit zu untergraben. Man versucht sich zu retten, indem man durch Patches, also lokale Korrekturen, das aktuelle Loch stopft, ehe es von Hackern genutzt wird, um ein System zu unterwandern. An der Unsicherheit der gesamten Software-Architektur ändert dies jedoch nichts, da grundlegende, architekturbedingte Fehler nicht behoben werden (können) – und dies gilt für fast alle heutigen monolithischen Systeme.

Ein radikaler Ansatz zur Entschärfung dieses Problems besteht darin, die Existenz von Hard- und Softwarefehlern anzuerkennen und ein System so zu bauen, dass diese Fehler von potentiellen Angreifern nur schwer gefunden und ausgenützt werden können und dass die Auswirkungen eines solchen Angriffs möglichst eingeschränkt oder sogar behoben werden. Man akzeptiert also das Risiko solcher Angriffe, versucht aber die Angriffsfläche möglichst zu verringern. Damit lässt sich zwar keine uneingeschränkte Sicherheit erreichen, doch stellt man bei diesem Ansatz eine deutliche Verbesserung der Situation fest.

Die Verwendung gegeneinander abgeschotteter Sicherheitsdomänen kann dabei helfen, die Auswirkungen von Angriffen auf Teilbereiche einzugrenzen, die sich gegenseitig nicht oder nur minimal beeinflussen. Technische Grundlage einer solchen „Kompartmentalisierung“ sind dabei unterschiedliche Containertechniken, wobei die Verwendung virtueller Maschinen (VMs) die stärkste Isolierung bei allerdings relativ hohem Ressourcenverbrauch gewährleistet. Auf dieser Basis befinden sich derzeit mehrere sogenannte „Meta-Betriebssysteme“ wie beispielsweise Spectrum OS [1] und Makatea [2] in der Planung und Entwicklung.

Die wohl älteste Entwicklung eines solchen Systems stellt wohl Qubes OS [3] dar, ein Open Source System, das vor etwa 10 Jahren veröffentlicht wurde und seit mehreren Jahren Produktreife erreicht hat. Dieses Einzelbenutzer-System wird inzwischen an verschiedenen Stellen, die hohe Sicherheitsanforderungen haben, eingesetzt, beispielsweise als technische Grundlage der SecureDrop Workstation [4], die eine sichere Kommunikation zwischen Investigativ-Journalisten und ihren Informanten ermöglicht.

Qubes OS wird derzeit von mehreren Institutionen in Sicherheitsbereich routinemäßig eingesetzt, vor allem wohl vom VPN-Provider Mullvad [5], der Zertifizierungs-Instanz Letsencrypt [6] sowie der Freedom of the Press Foundation [7], die eine Reihe von Zeitungen, z.B. die Süddeutsche, bei kritischen Reportagen unterstützt. Im Beratungsbereich für Hochsicherheit ist dabei die Berliner Firma Invisible Things Lab [8] zu nennen, die auch die Entwicklung von Qubes OS maßgeblich unterstützt.

Aktuell gibt es schätzungsweise ca. 40.000 – 50.000 Installationen [9], wobei diese Zahl mit einiger Unsicherheit behaftet ist, weil gerade in Ländern wie China, Russland und Iran aus gutem Grund weitgehend versucht wird, die Nutzung dieses Systems zu verschleiern. Die Anzahl der Installationen ist damit vergleichbar mit anderen Hochsicherheitsprodukten, die allesamt weit davon entfernt sind, zum Massenmarkt zu gehören, aber in diesem Bereich dennoch über das Stadium reiner Nischenprodukte hinausgediehen sind. So dürfte beispielsweise die Anzahl der SINA Virtual Workstation Systeme, die im staatlichen Geheimschutz genutzt werden, auch etwa nur beim doppelten Wert liegen. Viele dieser Hochsicherheitssysteme sind – im Gegensatz zu Qubes OS als Open Source System – jedoch nicht frei verfügbar, so dass ihr Markt ziemlich abgeschottet ist.

Das System basiert auf dem Xen-Hypervisor [10], der auch die technische Grundlage der Citrix-Terminalserver darstellt. Unter Kontrolle dieses Hypervisors laufen voneinander isolierte virtuelle Maschinen die einerseits die Schnittstellen zur Hardware und damit zur Außenwelt bedienen und andererseits den Benutzern ihre gewohnte Windows- und/oder Linux-Umgebung zur Verfügung stellen.

Mit diesem Ansatz lassen sich die Angriffsmöglichkeiten und die Auswirkungen von Angriffen deutlich reduzieren: So hat ein Angreifer, der über eine Netzschnittstelle zugreift, nicht mehr die Fülle potentiell fehlerhafter Software eines vollen Windows- oder Linux-Systems einschließlich Anwendungs-Software wie etwa einem der notorisch unsicheren Browser zur Verfügung, sondern ist auf ein minimales Linux-System beschränkt, das außer der Treiber-Software für das Interface und dem TCP/IP-Stack nichts enthält. Damit sind die Chancen dieses Angreifers, eine Sicherheitslücke zu finden und auszunutzen deutlich reduziert. Ebenso können die Benutzer durch Verwendung separater virtueller Maschinen für Aktionen unterschiedlichen Sicherheitsbedarfs, z.B. allgemeines Surfen einerseits und Home-Banking anderseits, das Risiko der Kompromittierung sensibler Vorgänge erheblich verringern. Dies wird noch dadurch unterstützt, dass alle externen Verbindungen nicht von den Anwendungs-VMs, sondern durch diese minimalen Netz-VMs gesteuert werden und noch zusätzlich durch Firewall-VMs eingeschränkt werden können.

Eine spezielle Speicherverwaltung, bei der die virtuellen Maschinen für Anwendungsnutzung bei ihrem Start jeweils aus einer im Normalbetrieb unveränderlichen und nicht mit dem Netz verbundenen Vorlage, einem sogenannten Template, neu erzeugt werden, stellt mit hoher Zuverlässigkeit sicher, dass keine verfälschte Software eingesetzt wird. Eventuelle System-Manipulationen, beispielsweise durch eingefangene Schadsoftware, werden beim Herunterfahren der virtuellen Maschine zwangsweise vernichtet; nur die Benutzerdaten werden für den nächsten Start der virtuellen Maschinen aufbewahrt – und auch dies nur, wenn man keine sogenannte „Wegwerf-Maschinen“ verwendet. Durch dieses Verfahren wird es einem Angreifer extrem erschwert, Qubes OS dauerhaft zu kompromittieren.

Eine ausführliche Beschreibung der Konzepte dieses Systems steht in Deutsch zur Verfügung [11], und darüber hinaus sind Installation und Nutzung sehr gut dokumentiert.

  1. https://spectrum-os.org/
  2. https://trustworthy.systems/projects/TS/makatea
  3. https://www.qubes-os.org/
  4. https://workstation.securedrop.org/en/stable/
  5. https://www.mullvad.net/
  6. https://letsencrypt.org/de/
  7. https://freedom.press/
  8. https://invisiblethingslab.com/
  9. https://www.qubes-os.org/statistics/
  10. https://xenproject.org/
  11. Beschreibung der Konzepte dieses Systems