34C3: Schutzfunktionen der Nintendo Switch geknackt

Das "SwitchBrew"-Team hat auf der Leipziger Hackerkonferenz gezeigt, wie es eigenen Code auf Nintendos aktueller portabler Spielekonsole ausführen, vom Kernel- in den User-Modus wechseln kann und die verschlüsselte Zone ausgehebelt hat.

In Pocket speichern vorlesen Druckansicht 61 Kommentare lesen
34C3: Schutzpanzer der Nintendo Switch geknackt

Eine Nintendo Switch zeigt das 34C3-Logo auf der Saal-Leinwand.

(Bild: CC-BY-4.0 (https://media.ccc.de/v/34c3-8941-console_security_-_switch/oembed))

Lesezeit: 4 Min.

Schon Ende Oktober hatte der Hacker Plutoo gemeldet, dass er eigenen Code auf Kernel-Ebene auf Nintendos Switch laufen lassen kann. Auf dem 34. Chaos Communication Congress (34C3) in Leipzig berichtete der Tüftler nun zusammen mit seinen Kollegen Derrek und "Naehrwert" in einem teils vom Vorführeffekt geplagten Vortrag am Donnerstag, wie sie die Spielekonsole knackten und wie weit sie mit praktikablen "Homebrew"-Anwendungen gekommen sind.

Leichtes Spiel hatten die Sicherheitsexperten demnach nicht mit den Switch-Schutzsystemen, die unter anderem die Nutzung von Raubkopien verhindern sollen. Apps und Dienste laufen in speziellen Sicherheitszonen in Sandboxen ab und setzen auf Filter und Freigabelisten. Der Kernel erweitert die Ein- und Ausgabeschnittstellen über eine IOMMU um die Funktionen Adressübersetzung und Zugriffsschutz bei direktem Speicherzugang und isoliert einzelne Prozesse. Dazu kommt eine "Trust Zone", die unter anderem für das Speichern von Schlüsseln verwendet wird. Gängige Angriffspunkte – beispielsweise über gespeicherte Spielestände ("Save Games") – bietet die Konsole nicht.

Das SwitchBrew-Team arbeitete sich nach eigenen Angaben von der niedrigsten Schutzebene für Games und Apps über die für benötigte Dienste bis zum Kernel-Bereich und der "Vertrauenszone" hoch und hebelte die eingebauten Sicherungen dabei jeweils aus oder umging sie geschickt. Dabei halfen ihnen an verschiedenen Stellen etwa unvorhergesehene Kopien oder Auszüge von Speicherinhalten ("Dumps"), Codeabgleiche, Erfahrungen aus den Hacks der 3DS oder der Wii U sowie gar eine von Nvidia in die SMMU (System Memory Management Unit) eingebaute, in der Dokumentation offen erwähnte Hintertür.

Den Kernel brachten die Hacker nach einem Monat Ausprobieren per "Power Glitching" weitgehend unter ihre Kontrolle, nutzten also den ein oder anderen im System angelegten Fehler aus. Sie fanden heraus, dass es deutlich länger dauerte, ein Kommando auf dieser Ebene auszuführen, wenn ein gültiger Schlüssel verwendet wurde.

Letztlich konnten sie mit einem "Timing-Angriff" auf die Uhr des integrierten Massenspeichers (eMMC) überlisten, sodass sie alle Schlüssel und Binärcode in die Finger bekamen. Die "Trust Zone" hätten sie dann eigentlich ignorieren können, da sie diese für das Ausführen eigenen Codes nicht mehr benötigten. Der Vollständigkeit halber knackten sie diese über das Ausnutzen von Fehlern beim Beenden des Ruhezustands aber auch noch und konnten darin so Code aus dem User-Modus laufen lassen.

Auf Github haben die Tüftler unter anderem einen Debugger für den User-Bereich und eine Bibliothek für eigene Anwendungen für die Switch veröffentlicht. In einer Video-Demo führten sie vor, wie die Konsole das Kongress-Logo auf den Bildschirm zauberte. Laut Plutoo ist es derzeit möglich, eigene Threads zu generieren, Prozesse miteinander zu verbinden und bei einem voll funktionsfähigen Netzwerksystem die Ports für USB und die Joy-Cons zu beherrschen. Es gebe aber noch das ein oder andere zu tun, um eigene Spiele erstellen und laufen lassen zu können. So fehle etwa eine Grafikprozessor-Beschleunigung oder die Audio-Unterstützung. Eine Startfunktion für Homebrew-Apps sei in Kollaboration mit dem Reswitched-Team gerade in Arbeit.

Wie das "Exploit Toolkit PegaSwitch", mit dem der Hacker Cody Brocious nach eigenem Bekunden in den User-Modus der Konsole vorgedrungen ist, benötigen die SwitchBrew-Werkzeuge die Firmware 3.0. Aktuelle Spiele wie "Super Mario Odyssey" funktionieren auf dieser Basis nicht. Der derzeitige Firmware-Stand ist 4.0.1. Linux oder Android laufen laut Derrek noch nicht auf der Switch, da dafür ein spezieller "Code Boot Exploit" erforderlich sei. Auch daran arbeite das Team momentan. (hob)