ADMIN
2021
04
2021-04-01T12:00:00
Backup und Recovery
PRAXIS
058
Security-Tipp
Sicherheit
Sicherheitslücken
Security-Boundaries in Windows
Abgegrenzt
von Matthias Wübbeling
Veröffentlicht in Ausgabe 04/2021 - PRAXIS
Windows bietet verschiedene Schutzmechanismen gegen entfernte und lokale Angreifer. Dabei unterscheidet Microsoft zunächst unterschiedliche Grenzbereiche, sogenannte Security-Boundaries, und definiert für jeden dieser Bereiche eigene Schutzziele. Diese Schutzziele bestimmen dabei nicht nur die Sicherheit der ausgerollten Windows-Instanzen, sondern auch die Einschätzung der Kritikalität von Sicherheitslücken.
Sicherheitsarchitekten kennen die Einteilung der Infrastruktur in unterschiedlich abgestufte Bereiche. Dabei gilt der unautorisierte Übergang eines Benutzers von einem in den anderen Bereich als Sicherheitsvorfall. Als Beispiel aus der realen Welt kann etwa ein einfaches Rechenzentrum dienen. Hier gibt es einen Bereich außerhalb des Rechenzentrums, einen Bereich für Besucher, einen für Kunden und zwei unterschiedliche Bereiche für Mitarbeiter – je nachdem, welche Aufgaben diese haben.
Betritt nun eine Person beispielsweise den Besucherbereich, findet ein Übergang in die erste Sicherheitszone statt. Solange dieser Zugang zu den üblichen Besuchszeiten stattfindet, ist dies unproblematisch. Außerhalb der Besuchszeiten, also bei verschlossenen Türen, handelt es sich offensichtlich um einen Sicherheitsvorfall.
Ist die Person ein Kunde oder Mitarbeiter, kann dieser nach erfolgreicher Authentifikation etwa durch den Pförtner, in den Kundenbereich übertreten. Einmal im Kundenbereich, findet der Zutritt zu anderen Bereichen meist über technische Sicherungssysteme statt.
Sicherheitsarchitekten kennen die Einteilung der Infrastruktur in unterschiedlich abgestufte Bereiche. Dabei gilt der unautorisierte Übergang eines Benutzers von einem in den anderen Bereich als Sicherheitsvorfall. Als Beispiel aus der realen Welt kann etwa ein einfaches Rechenzentrum dienen. Hier gibt es einen Bereich außerhalb des Rechenzentrums, einen Bereich für Besucher, einen für Kunden und zwei unterschiedliche Bereiche für Mitarbeiter – je nachdem, welche Aufgaben diese haben.
Betritt nun eine Person beispielsweise den Besucherbereich, findet ein Übergang in die erste Sicherheitszone statt. Solange dieser Zugang zu den üblichen Besuchszeiten stattfindet, ist dies unproblematisch. Außerhalb der Besuchszeiten, also bei verschlossenen Türen, handelt es sich offensichtlich um einen Sicherheitsvorfall.
Ist die Person ein Kunde oder Mitarbeiter, kann dieser nach erfolgreicher Authentifikation etwa durch den Pförtner, in den Kundenbereich übertreten. Einmal im Kundenbereich, findet der Zutritt zu anderen Bereichen meist über technische Sicherungssysteme statt.
Kunden und Mitarbeiter verwenden eine Chipkarte mit PIN zur Authentifikation, mit der sie in einzelne Räume eintreten können. Support-Mitarbeiter können zusätzlich zu den Kundenbereichen auch in den allgemeinen Mitarbeiterbereich eintreten. Netzwerkadministratoren dürfen darüber hinaus noch die Räume mit den Switches und Routern des Rechenzentrums betreten.
Was in der "realen Welt" funktioniert, lässt sich auch auf die Absicherung von Betriebssystemen übertragen. Microsoft definiert für die eigenen Betriebssysteme, laufenden Dienste und verwendeten Geräte neun unterschiedliche Security-Boundaries, die allerdings nicht durchgängig so hierarchisch aufgebaut sind, wie die Sicherheitsbereiche aus dem genannten Beispiel. Das zugehörige Dokument im Microsoft Security Response Center (MSRC) [1] wird dabei fortlaufend aktualisiert.
Netzwerk
Der Übergang vom Netzwerk zu einem Computer ist die äußerste Grenze dieses Rechners. Nicht-autorisierte Netzwerkteilnehmer können nicht auf Code und Daten der Benutzer auf dem Computer zugreifen oder diese manipulieren. Gibt es eine Fehlfunktion in den entsprechenden Schutzmechanismen, sodass ein unautorisierter Zugang dennoch möglich ist, gilt dies als Sicherheitslücke. Das Abrufen von Webseiten des IIS oder freigegebenen Dateien der Datei- und Druckerfreigabe ist natürlich keine Sicherheitslücke, solange der unautorisierte Zugriff beabsichtigt ist. Die Komponente, die für eine Trennung zwischen Netzwerk und Rechner sorgt, ist die Firewall.
Kernel und Prozesse
Auch innerhalb eines Rechners gibt es Security-Zonen. Programme und Dienste, die nicht unter einem Administratorkonto laufen, können nicht auf Daten oder Code im Bereich des Betriebssystem-Kernels zugreifen. Auch in diesem Fall sind natürlich explizit vorgesehene Wege, etwa die Verwendung der Betriebssystemfunktionen zum Anfordern von Arbeitsspeicher, zum Lesen und Schreiben von Dateien oder zum Öffnen von Netzwerkverbindungen, keine Sicherheitslücke. Microsoft betrachtet hierbei den Zugriff von Programmen, die mit Administratorrechten gestartet wurden, als grundsätzlich unproblematisch – selbst dann, wenn diese Schadsoftware ausführen. Es gibt also keine eigene Administrator-Kernel-Grenze.
Prozesse können im Benutzer- oder im Kernel-Modus (also mit Administratorrechten) laufen. Die im Benutzermodus gestarteten Prozesse erhalten grundsätzlich keinen Zugriff auf den Code oder die Daten anderer laufender Prozesse. Das gilt selbst dann, wenn sie derselbe Benutzer gestartet hat. Auch in diesem Fall gibt es, beispielsweise mit vom Betriebssystem zugewiesenen geteilten Speicher (sogenanntem Shared Memory), intendierte Ausnahmen, die nicht als sicherheitsproblematisch betrachtet werden. Prozesse im Kernelmodus sind von dieser Beschränkung nicht betroffen.
AppContainer-Sandbox
Mit Windows 8 hat Microsoft den Sandbox-Mechanismus namens AppContainer für Anwendungen aus dem Microsoft Store eingeführt. Für jede Sandbox lassen sich dabei unterschiedliche Isolationsarten, beispielsweise Geräte-, Dateisystem- oder Netzwerkisolation, definieren. Gibt es einen Fehler in der Sandbox-Implementierung, der etwa trotz Netzwerkisolation den Zugriff auf das lokale Netzwerk erlaubt, handelt es sich um eine Sicherheitslücke. Ist für eine Sandbox dieser Netzwerkzugriff aber nicht eingeschränkt – wir unterscheiden dabei zwischen In-tranet, Internet und Serverfunktionalität –, kann die Anwendung beliebig im Netzwerk agieren.
Benutzertrennung
Ein Benutzer kann nicht auf Code oder Daten anderer Benutzer zugreifen oder diese manipulieren. Dabei werden sowohl Files im Dateisystem als auch Prozesse zur Laufzeit in dieser Sicherheitsgrenze berücksichtigt. Für den Zugriff durch Administratoren lässt sich diese Grenze formell auch im Dateisystem umsetzen. Effektiv ist diese Einschränkung aber nicht. Administratoren können, mangels Administrator-Kernel-Grenze, natürlich jederzeit die Zugriffrechte der Dateien anderer Benutzer ändern.
Läuft für einen autorisierten Benutzer eine Windows-Benutzersitzung, können dieser User und in dieser Sitzung gestartete Prozesse nicht auf andere Benutzersitzungen zugreifen oder diese manipulieren. Das betrifft insbesondere auch Remote-Desktopsitzungen, sodass beispielsweise kein Zugriff auf eingebundene Netzlaufwerke oder weitergeleitete Drucker dieser Sitzungen besteht.
Auch im Browser-Umfeld gibt es Beschränkungen. Eine nicht durch den Benutzer autorisierte Webseite ist an die Same-Origin-Richtlinie gebunden und darf nicht auf den Code oder die Daten der Browser-Sandbox zugreifen oder diese manipulieren. Diese Sicherheitsgrenze ist dabei aus Sicht von Microsoft jedoch nur für Microsoft Edge definiert und umfasst nicht den veralteten Internet Explorer oder Webbrowser anderer Hersteller.
Virtuelle Maschinen
Ein Gastsystem des Hyper-V-Servers kann ohne Autorisierung nicht auf den Code, die Daten oder Einstellungen eines anderen virtuellen Hyper-V-Gasts zugreifen. Das gilt auch für die in Windows Server 2016 eingeführten leichtgewichtigen Hyper-V-Container, die sich etwa mit Docker verwalten lassen.
Der in Windows 10 eingeführte Virtual Secure Mode (VSM) basiert dabei ebenfalls auf der Hyper-V-Technologie. Dabei wird ein Micro-Kernel gestartet, der insbesondere den Local Security Authority Subsystem Service (LSASS), aber auch Hardware wie das TPM für die im VSM gestarteten Apps isoliert. Diese Sicherheitsgrenze definiert, dass von außerhalb der Isolation (einer sogenannten Enklave) nicht auf Code oder Daten innerhalb der Enklave zugegriffen werden kann.
Komponenten ohne Grenzen
Für einige Windows-Bestandteile stellt Microsoft explizit klar, dass diese nicht als Sicherheitsgrenze zu betrachten sind – auch wenn die Funktion andere Eigenschaften suggeriert. Diese Aufstellung umfasst dabei nur solche Komponenten, die häufig als Grenze fehlinterpretiert werden, ist also nicht vollständig. Zu dieser Aufstellung gehört etwa die Administrator-Kernel-Grenze.
Wie bereits erwähnt, gibt es für den Administrator oder einen mit Administratorrechten gestarteten Prozess keine Einschränkung beim Zugriff auf Datenstrukturen oder Code des Kernels. Microsoft zählt auch die Windows-Server-Container auf, die im Gegensatz zu den "sicheren" Hyper-V-Containern nicht hin- reichend zuverlässig isolieren.
Fazit
In diesem Security-Tipp haben Sie einen Überblick über Microsofts Interpretation unterschiedlicher Sicherheitsbereiche der Windows-Betriebssysteme und Komponenten erhalten. Das Verständnis dieser Bereiche hilft Ihnen bei der Planung von Sicherheitsmechanismen und bei der Identifikation von Sicherheitsproblemen. Insbesondere hebt Microsoft auch die Kritikalität von Sicherheitslücken oder die Bezahlung von Bug Bounties für die Meldung von Sicherheitslücken hervor, die diese Grenzen betreffen.
(dr)