
Denial-of-Service-Exploit für Microsoft HoloLens Device Portal durch wiederholte API-Pairing-Anfragen, die CPU-Überlastung und Systemunresponsivität verursachen.
Tânia Silva, António Pinto, Pedro Pinto und Sara Paiva
Ein Denial-of-Service-Angriff (DoS-Angriff) zielt darauf ab, ein Zielsystem so zu überlasten, dass es allmählich nicht mehr auf alle an es gesendeten Anfragen reagieren kann. Auf diese Weise verliert ein legitimer Benutzer den Zugriff auf einen Dienst, was je nach Anwendungsdomäne für seinen Prozess entscheidend sein kann. Für dieses Problem haben wir die HoloLens-Headsets analysiert, die eine Mixed Reality (MR) Erfahrung bieten. Die HoloLens 1 und 2 bieten ein Framework, um die Inhalte und Funktionen auf der HoloLens aus der Ferne zu verwalten und zu bearbeiten. Das Tool wird als ”Device Portal” bezeichnet, wie in Abbildung 1.1 gezeigt, und ermöglicht dem Benutzer die Verwaltung von Anwendungen, Dokumenten und Multimedia-Inhalten, die auf dem am Kopf getragenen Gerät gespeichert sind. Dieses Tool ermöglicht außerdem die Echtzeitvisualisierung der Aktivitäten des Benutzers auf dem Gerät sowie die sofortige Aufzeichnung oder Bildschirmaufnahme. Darüber hinaus ermöglicht dieses Tool die Überwachung von Systemkomponenten sowie die Verwaltung von Prozessen, die gerade auf dem System laufen.
Abbildung 1.1: HoloLens Device Portal
In Abbildung 1.2 ist die Architektur des durchgeführten Angriffs dargestellt. Um den Angriff auszuführen, muss der Angreifer mit demselben Netzwerk verbunden sein wie das Ziel. Diese Verbindung ermöglicht es dem Angreifer, einen Sicherheitsscanner zu verwenden, um das gesamte Netzwerk mit der Absicht zu analysieren, die im Netzwerk verfügbaren Geräte zu identifizieren.
Jedes mit dem Netzwerk verbundene Gerät kann auf das ”Device Portal” zugreifen, indem einfach die entsprechende HoloLens-IP in einem Browser eingegeben wird. Anhand der vom Scanner gesammelten Informationen kann der Angreifer die IP identifizieren und sie verwenden, um zu versuchen, auf den Fernverwaltungsdienst zuzugreifen. Durch die Analyse des Netzwerkverkehrs, wenn eine Aktion auf dem ”Device Portal” durchgeführt wird, erhält der Angreifer Zugriff auf die Anfragen, die an die API des Geräts gestellt werden. Mit diesen Informationen kann er ein Skript entwickeln, um diese Anfragen nacheinander an die API zu senden. Beim Empfang all dieser Anfragen wird die CPU überlastet, und folglich reagiert das System nicht mehr auf Befehle legitimer Benutzer, wodurch die Nutzung der HoloLens blockiert wird. Selbst wenn der Benutzer beschließt, die Headsets neu zu starten, läuft der Angriff weiter, solange die IP unverändert bleibt oder der Angreifer beschließt, ihn zu stoppen.
Abbildung 1.2: HoloLens-DoS-Angriffsarchitektur
Die Anforderungen für die korrekte Reproduktion dieses Angriffs sind:
Es ist nicht erforderlich, ein bestimmtes Betriebssystem zu verwenden, um den Angriff auszuführen. Das für den DoS verwendete Skript muss an die Anforderungen des für die Ausführung des Skripts gewählten Tools angepasst werden.
Der Angreifer leitet den Angriff ein, indem er ein Netzwerkscan-Tool auswählt, um die aktuelle IP der mit dem Netzwerk verbundenen Headsets zu identifizieren. Um auf die Startseite des ”Device Portals” zuzugreifen, muss lediglich die IP der Headsets in den Browser eingegeben werden. Auf dieser Seite wird der Benutzer aufgefordert, Anmeldedaten einzugeben. Sobald jedoch eine Anzahl von 3 fehlerhaften Versuchen erreicht ist, wird der Benutzer auf die Seite weitergeleitet, auf der eine neue Kopplung mit den Headsets angefordert und anschließend ein neuer Benutzer erstellt werden kann. Durch die Untersuchung der Elemente dieser Webseite ist es möglich, die an die HoloLens-API gestellten Netzwerkanfragen zu analysieren. Diese Anfragen enthalten Informationen über den Body und die Header der Anfrage, die in einem anderen Tool leicht repliziert werden können, wie in Abbildung 1.3 dargestellt. Die Fähigkeit, diese Anfragen zu senden, war der identifizierte Angriffsvektor.
Abbildung 1.3: HoloLens-API-Anfrage
Immer wenn eine neue Kopplungsanfrage gesendet wird, werden die Prozesse der HoloLens angehalten und eine PIN wird über die Sicht des Benutzers eingeblendet, die auf der Webseite eingegeben werden muss, um mit der Kopplung des Geräts fortzufahren, wie in Abbildung 1.4 dargestellt. Die HoloLens nimmt den normalen Betrieb erst wieder auf, wenn diese PIN verschwindet. Um sie verschwinden zu lassen, kann der Benutzer den Kopplungsvorgang auf der Webseite abschließen oder ein Einstellungsmenü öffnen, in dem er zur typischen Ansicht der HoloLens zurückkehren kann.
Abbildung 1.4: HoloLens-Kopplungs-PIN
Um dieses Problem zu testen, wurde ein Skript entwickelt, das wiederholt Kopplungsanfragen an die API sendet und dabei alle möglichen Fehler ignoriert, bis dieser Prozess manuell vom Angreifer gestoppt wird (siehe Abbildung 1.5 und Anhang A). Dieses Skript wurde für Windows PowerShell entwickelt, da es möglich ist, das Skript so zu planen, dass es bei jedem Einschalten des Computers ausgeführt wird. Auf diese Weise kann der Angreifer das Skript auf den Zielrechnern installieren, die in der Regel mit demselben Netzwerk wie die HoloLens verbunden sind. Der Angriff läuft im Hintergrund, ohne dass die Benutzer es bemerken, und macht das Gerät unbrauchbar. PowerShell stellt den Befehl ”New-ScheduledTask” bereit, mit dem ein Trigger erstellt werden kann, der das bösartige Skript bei jedem Einschalten des Computers ausführt.
Abbildung 1.5: PowerShell-Skript
Immer wenn eine Kopplungsanfrage gesendet wird, wird die Kopplungs-PIN über die Sicht des Benutzers eingeblendet. Im Rahmen von Tests mit dem vorherigen Skript wurde beobachtet, dass das kontinuierliche Senden von Anfragen dazu führt, dass die HoloLens ständig neue Pins über die Sicht des Benutzers einblendet, sodass dieser keine anderen Aufgaben ausführen kann. Der Benutzer hat die Möglichkeit, ein Menü über dieser PIN zu öffnen, da die Headsets jedoch ständig neue Anfragen erhalten, hat der Benutzer keine Zeit, Operationen in diesem Menü durchzuführen. Mit der Zeit beginnen die Gläser zu stören, und die HoloLens hat Mühe, die Gesten oder Befehle zu verstehen, die von dem Benutzer gesprochen werden. Auf diese Weise kann der Benutzer das Gerät nicht mehr verwenden, bis der Angriff gestoppt wird.
Der Angriff wurde in verschiedenen Szenarien getestet und erwies sich in seiner Gesamtheit als wirksam. Wenn der Benutzer versucht, die HoloLens neu zu starten, reagiert die API wie erwartet nicht mehr. Wie im Skript festgelegt, sollten jedoch vom Server zurückgegebene Fehler ignoriert werden, sodass das Skript im Hintergrund weiterlaufen kann. Sobald erkannt wird, dass die HoloLens die Verbindung zum Netzwerk wiederhergestellt hat, bleibt der Angriff bestehen und verhindert, dass der Benutzer andere Aufgaben ausführt. Der Test wurde auch durchgeführt, wenn ein vertrauenswürdiges Gerät bereits mit den Headsets gekoppelt war. Das Ergebnis war dasselbe: Es ist möglich, den Angriff durchzuführen, solange die IP des Absenders sich von der bereits gekoppelten unterscheidet.
Während der durchgeführten Tests wurde beobachtet, dass die Headsets aufgrund von CPU-Überlastung überhitzten. In Abbildung 1.6 wird die Verarbeitung von CPU und Speicher der Headsets während des Angriffs dargestellt. Wie man sehen kann, ist die CPU zu bestimmten Zeitpunkten auf sehr hohe Werte angestiegen, was zu einer Überhitzung des Geräts führt und seine Reaktion auf andere Dienste verzögert.
Abbildung 1.6: CPU- und Speicherverarbeitung
Im Wesentlichen besteht dieser DoS-Angriff darin, die HoloLens-API mit Kopplungsanfragen zu überlasten. Auf diese Weise werden innerhalb weniger Sekunden ständig neue Pins über die Sicht des Benutzers eingeblendet. Dieses Verhalten verhindert, dass der legitime Benutzer bis zum Stopp des Angriffs andere Aufgaben auf der HoloLens ausführen kann. Die geeigneten Gegenmaßnahmen für diese Art von Angriff wären auf API-Ebene, indem eine Einschränkung für Kopplungsanfragen von einer bestimmten IP angewendet wird. Wenn der Angreifer jedoch beabsichtigt, die IP in seinen Anfragen zu spoofen, könnte diese Methodik leicht überwunden werden. Daher wird vorgeschlagen, auch die Gesamtzahl der Anfragen innerhalb eines kurzen Zeitraums zu begrenzen.