PS3-Kratzer

Das auf Hardware und Virtualisierung basierende Sicherheitskonzept von Sonys Playstation 3 hat sich als äußerst widerstandsfähig erwiesen. Auch nach drei Jahren ist es immer noch nicht möglich, kopierte Spiele oder Homebrew-Software auf der Spielkonsole zu starten – alle anderen Konsolen der 7. Generation wurden längst geknackt. Doch nun hat die harte Schale der PS3 einen ersten sichtbaren Kratzer erhalten.

In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Christiane Rütten

Der Hack besorgt sich per Memory-Glitching ein durch den Hypervisor unreglementiertes Schreibfenster auf den physischen Speicher der Spielkonsole.

George Hotz, der bereits beim Jailbreak des iPhone eine tragende Rolle spielte, hat eine Möglichkeit gefunden, dem Hypervisor der PS3 ein Schnippchen zu schlagen. Der Hypervisor ist Teil des Sicherheitskonzeptes. Er kontrolliert alle Speicher- und Hardware-Zugriffe von Spielen und Gastbetriebsystemen wie Linux, die in einer virtuellen Maschine laufen. Unter einem auf älteren Konsolen installierbaren Linux-System konnte Hotz vollen Zugriff auf den Hauptspeicher erlangen. Er nutzte einen Hardware-Hack namens „Memory Bus Glitching“ – zu Deutsch etwa Speicher-Bus-Störung –, um dem Hypervisor durch Manipulieren der Chip-Pins im entscheidenden Moment vorzugaukeln, er habe einen bestimmten Speicherbereich beschrieben, obwohl die Daten letztlich in einem anderen Bereich landen.

Mehr Infos

Architektur der Playstation 3

Die PS3 arbeitet mit einem Cell-Prozessor von IBM, der aus einem PowerPC-Kern und sieben synergistischen Prozessoreinheiten (SPEs) besteht. Um eine höhere Produktionsausbeute zu erreichen und Strom zu sparen, ist eine der acht vorhandenen SPEs stillgelegt. Jede SPE verfügt über 256 KByte lokalen Speicher (LS) und üppige 128 Register zu je 128 Bit. SPEs sind zwar auf die Verarbeitung großer Datenmengen optimiert, aber im Prinzip handelt es sich um vollwertige Prozessoren mit DMA-Verbindung zum Systemhauptspeicher.

Ein besonderes Sicherheits-Feature der SPEs ist, dass sie sich von Zugriffen durch PowerPC-Kern und andere SPEs isolieren lassen. Nach dem Einschalten der PS3 wird eine SPE per Hardware mit einem digital signierten Programm und Kryptoschlüsseln gefüttert und von dem restlichen System abgeschottet. Die isolierte SPE dient fortan Sonys Hypervisor und dem GameOS als Vertrauenswurzel für Verschlüsselungs- und Signaturfunktionen. Vielerorts wird spekuliert, dass die isolierte SPE auch Hypervisorfunktionen übernimmt, doch dies ist wahrscheinlich nicht der Fall.

Das Ziel von Hotz’ Exploit ist es, die Hash-basierten Speicherverwaltungsstrukturen des Cell-Prozessors, die HTABs, derart zu manipulieren, dass der Linux-Kernel den gesamten physischen Speicher lesen und schreiben kann. Normalerweise verhindert der Hypervisor Manipulationen an den HTAB-Einträgen. Der Exploit wird als Linux-Kernel-Modul geladen und fordert vom Hypervisor einen Speicherbereich an. Der Kernel erhält vom Hypervisor lediglich die Adresse innerhalb des virtuellen Kernel-Adressraumes, doch über eine Hypervisorfunktion lässt sich die echte physische Speicheradresse ermitteln – was laut Hotz der Hypervisor besser nicht erlauben sollte.

Der nächste Schritt ist, die HTAB des virtuellen Kernel-Adressraums mit über 60 000 Verweisen auf den Speicherbereich zu füllen, die Lese- und Schreibzugriff erlauben. Sobald der Exploit den zu Beginn angeforderten Speicherbereich wieder freigibt, muss der Hypervisor die komplette HTAB des Kernels abklappern und alle darauf verweisenden Einträge ungültig machen. Dies dauert mehrere Sekunden. Währenddessen unterbricht man aber mit einer geeigneten Elektronik per Knopfdruck für 40 Nanosekunden einen bestimmten Pin des Adressbusses, sodass im Cache zwar für den Hypervisor alles in Ordnung zu sein scheint, im Arbeitsspeicher jedoch mindestens ein HTAB-Eintrag gültig bleibt. So erhält der Exploit ein Zugriffsfenster auf einen physischen Speicherbereich, von dem der Hypervisor annimmt, dass er ihn soeben freigegeben hat.

In der PS3 greift der Linux-Kernel nur unter Kontrolle des Hypervisors auf den physischen Hauptspeicher zu.

Daraufhin erstellt der Exploit einen neuen virtuellen Adressraum, dessen HTAB im physischen Adressraum innerhalb des Schreibfensters liegt. So erhält der Kernel am Hypervisor vorbei vollen Schreibzugriff auf eine HTAB. Diese kann er abschließend so umschreiben, dass er Lese- und Schreibzugriff auf den gesamten Arbeitsspeicher der Spielkonsole erhält, sobald er in den neuen virtuellen Adressraum wechselt. Zwei durch das Exploit-Modul installierte Kernel-Funktionen reichen die unreglementierten Speicherzugriffe an reguläre Linux-Programme weiter.

Der Arbeitsspeicher der PS3 steht nun für Analysen durch Experten offen. Im Sicherheitskonzept der PS3 ist dieser Fall aber offenbar vorgesehen [1] und man kann davon ausgehen, dass alle wichtigen Kryptoschlüssel säuberlich in der eigens dafür abgestellten Cell-Einheit (SPE) verrammelt sind (siehe Kasten). Dass die PS3 in nächster Zeit kopierte Spiele ausführen wird, ist also eher unwahrscheinlich. Voller Hardware-Zugriff insbesondere auf die Grafik-Hardware unter Linux hingegen ist nun aber in greifbare Nähe gerückt.

[1] Cell-BE-Sicherheit (cr)