Original-URL des Artikels: https://www.golem.de/news/console-hacking-steam-auf-der-ps4-1612-125277.html    Veröffentlicht: 28.12.2016 13:00    Kurz-URL: https://glm.io/125277

Console Hacking

Der Weg zu Steam auf der PS4

Die Playstation 4 ist alles andere als ein PC - dank eines ARM-SoC, das viele, aber nicht alle PC-Komponenten simuliert. Diese Doppelarchitektur und viele bis dato nicht gesehene Designentscheidungen erschweren die Analyse des Systems.

Die Playstation 4 ist kein PC, das betonte der Hacker Hector Martin alias Marcan noch einmal auf dem Chaos Communication Congress (33C3) in Hamburg und stellte dabei die Arbeiten an dem System des vergangenen Jahres auf der PS4 vor (Präsentation). Was er zusammen mit fail0verflow dabei entdeckte, sorgte für einiges Kopfschütteln und zeigte ein interessantes Innenleben.

Ende 2015 hatte fail0verflow erstmals auf dem 32C3 Linux auf der PS4 gezeigt. Diesmal demonstrierte Marcan zunächst den üblichen, schlicht langweiligen Part des Hackens der Playstation 4: eine Sicherheitslücke im Webkit-Browser ausführen und eine Sicherheitslücke, um das FreeBSD von Sony zu übernehmen. Das war es schon. Mehr braucht es im Prinzip nicht, um Linux zu starten - wenn die Playstation ein PC wäre. Doch sein Linux als Gentoo-Variante ist eine PC-Distribution. Und die erwartet typische PC-Komponenten, die es schlicht nicht gab.

Die ungewöhnliche Southbridge

Dabei zeigt die Playstation 4 auf den ersten Blick alles, was einen PC oberflächlich betrachtet ausmacht. Es gibt ein Chipset oder besser gesagt einen Chip namens Aeolia, der per PCIe mit vier Lanes an AMDs APU angebunden ist. Und dieser stellt typisches PC-Innenleben bereit: GMII für Ethernet, SDIO für Bluetooth und WLAN, ein optisches Laufwerk per SATA-Anschluss und USB, zur Anbindung von Peripherie und der internen Festplatte. Ja, Sony hat sich entschieden, die SATA-Festplatte über USB anzuschließen, was fail0verflow verwunderte. Es sollte nicht das einzige Mal bleiben.

Bei näherer Betrachtung meldete sich Aeolia nicht wie ein typischer Southbridge-Chip, der IO-Aufgaben übernimmt. Ihm fehlt vor allem das, was einen IBM-kompatiblen PC ausmacht: allerhand uralter Kram der vergangenen Jahrzehnte. Ein typisches Linux erwartet solche Legacy-Komponenten. Wenn diese nicht da sind, startet bestenfalls das System nicht korrekt.

Sonys Ansatz zeigt, dass Aeolia nur ein Intel-System nachbildet, das auf dem Jahr 2002 basiert. Eine von AMD verkaufte FCH für APU-Systeme ist hingegen auf dem Stand von 1981. Einen Programmable Interrupt Controller gibt es nicht, den ISA-Bus von damals ebenfalls nicht und VGA fehlt auch komplett. Doch warum ist das so? Wie sich herausstellte, war die Annahme, Aeolia sei eine Southbridge, falsch. Es ist kein dedizierter Chip für Peripherieanschlüsse, zumindest vom Design her. Stattdessen ist es ein Marvell Armada System on a Chip (SoC) mit einer angeflanschten PCIe-Bridge und 256 MByte RAM. Das SoC ist ein Nachfolger von Intels ARM-Bemühungen XScale, wie Marcan sagt, und zeigt sich der x86-Seite wie ein FCH oder PCH bei Intel. Und da wurde nicht die gesamte PC-Legacy implementiert.

Das FreeBSD der Playstation 4 braucht AMDs APU nicht

Besonders spannend ist dabei, dass Aeolia nicht nur Peripherie-Bereitsteller in Sonys FreeBSD-Ableger ist. Er arbeitet als SoC auch als APU-Ersatz. Im sogenannten Standby-Mode läuft FreeBSD nicht mehr auf dem leistungshungrigen AMD-Prozessor, sondern auf den ARM-SoC, womit Sony die niedrigere Leistungsaufnahme ermöglicht. Aus PC-Sicht ein doch sehr seltsames Design. Im Zusammenhang mit Tablets und Smartphones erinnert das ein wenig an zahlreiche Mehrkern-SoCs, bei denen bestimmte Kerne nur bei geringen Lasten verwendet werden. Viele 8-Kern-Systeme sind eigentlich zwei Quadcore-Systeme. Allerdings gibt es dort keinen Architekturwechsel auf demselben System.

Sony hingegen tut genau dies. Leider gab Marcan zu, dass er sich mit FreeBSD und Linux auf diesem Companion-Chip noch nicht tiefergehend beschäftigt hat. Es bleibt also spannend und viele Möglichkeiten der Playstation 4 sind noch unerforscht.

Entdeckt hat Marcan das Ganze, indem er die Hardware direkt angriff. Zugutekam ihm, dass Sony dieses Mal auf tiefergehende Sicherungsmaßnahmen verzichtet hat, die den Hackern bei der Playstation 3 noch Probleme bereiteten. Er konnte mit etwas Aufwand den PCIe-Verkehr zwischen der Pseudo-Southbridge und der APU mithören. Mit einem Hardware-Man-in-the-Middle-Angriff (MITM) wurde die Verbindung gekappt und auf der einen Seite ein Atom-basiertes Mainboard eingesetzt und auf der anderen Seite ein FPGA-Board. Da PCIe vorteilhafterweise auch geringe Geschwindigkeiten und enorme Latenzen verträgt, kommunizierten diese beiden Angriffskomponenten in der einen Richtung über das vergleichsweise extrem langsame Gigabit-Ethernet und in der anderen Richtung über RS232 mit 115.200 Baud, was im Bereich der Langsamkeit heutzutage nur noch schwer zu unterbieten ist. Marcan witzelte, dass das wohl die asynchronste Verbindung sei, die es gibt.

Sony nutzt das bereitgestellte HDMI nicht für Videoverbindungen

Darüber fand er immer mehr Seltsamkeiten der Playstation-4-Architektur heraus. Von seltsam angesprochenen GPUs bis hin zu Sonys Entscheidung, natives, bereitstehendes HDMI nicht zu nutzen und stattdessen mit einem Panasonic-Chip den Displayport-Ausgang zu konvertieren. Über zahlreiche Entscheidungen schüttelte er einfach nur den Kopf.

Die Belohnung ist aber ein fast vollständig funktionierendes Linux dank der mittlerweile recht reifen ps4-kexec-Komponente und zahlreicher Treiber-Hacks, die Sonys Designentscheidungen so umbiegen, dass Linux weitgehend auf der PS4 arbeiten kann. Linux störte sich beispielsweise daran, dass die Playstation 4 als UMA-Architektur nur 16 MByte VRAM als solches markierte und der typische Radeon-Treiber funktioniert auch nicht. Immerhin hilft das manuelle Zuweisen von mehr VRAM, um den Linux-Voraussetzungen zu genügen.

Kein Fast Ethernet und kein HDMI-Audio

Es gibt aber noch Einschränkungen. Der Netzwerktreiber ist noch kaputt und lässt nur Gigabit-Ethernet zu. Einen alten Fast-Ethernet-Switch anzuschließen, ist nicht möglich. HDMI funktioniert derzeit zudem nur im 1080p-Modus. Gar nicht funktioniert derzeit HDMI Audio, da S/PDIF allerdings funktioniert, sind die Einschränkungen minimal. Zudem ist es derzeit nicht möglich, die Echtzeituhr zu nutzen. Der Grund ist auch hier eine aus Marcans Sicht seltsame Entscheidung der Implementierung.

Die Playstation 4 ist jedenfalls kein IBM-kompatibler PC, sondern ein moderneres x86-Gerät mit Designentscheidungen, mit denen die Hacker nicht gerechnet haben. Fast alle notwendigen Informationen zum Betrieb von Linux auf der PS4 gibt es in einem Github-Repository von fail0verflow. Nur wie man die Sicherheitslücken ausnutzt, wird nicht angegeben, was allerdings keine Herausforderung sein soll. Das Video des Vortrags dürfte in absehbarer Zeit auf media.ccc.de zu finden sein.

Zum Abschluss präsentierte Marcan auf dem gebooteten Linux dann, wie man die Playstation 4 (mit System 4.0.5) zu einer echten Spielemaschine macht. Unter Applaus startete er Steam und zeigte anschließend ein flüssig laufendes Portal 2.  (ase)


Verwandte Artikel:
Überwachung: Staatstrojaner auf Ernährungsforscher angesetzt   
(14.02.2017, https://glm.io/126173 )
Homebrew: Bastler veröffentlichen alternativen Launcher für Switch   
(20.02.2018, https://glm.io/132867 )
Fortnite: Battle Royale auf der Playstation 4 gegen das iPhone   
(09.03.2018, https://glm.io/133246 )
Playstation: Firmware-Update bringt Supersampling und Elternkontrolle   
(08.03.2018, https://glm.io/133232 )
Playstation 4: Firmware 4.55 gehackt und Spiele verwendet   
(01.03.2018, https://glm.io/133090 )

© 1997–2019 Golem.de, https://www.golem.de/