 Wer von euch besitzt eine Xbox? Bitte mal Hand hochheben drei. Wer besitzt eine Playstation? Ungefähr gleich viele. Computer zählen nicht, da läuft Open Source Software drauf, das kennt ihr ja schon alles. In der nächsten Vortragende Boris Lavin wird euch mehr darüber erzählen, wie die Sony Playstation Blu-ray Drive gehackt wurde. Hallo, alle zusammen. Lass uns anfangen. Mein Name ist Boris, ich arbeite als Sicherheitsrechercher bei Kaspersky und ich bin End-reverse Ingenieure. Ich suche neue Exploits in der Welt und werde sie und veröffentliche sie. Ich habe auch ein paar der größeren Bugs gefunden, zum Beispiel die Operation Shadow Hammer. Ich habe bei der Playstation 3 seit 2011 gehackt und damals habe ich hauptsächlich dafür bekannt, dass ich die DRM gehackt habe und PS3 debugging Tools erstellt habe. Heute rede ich mit meinen beiden Lieblingsthemen, Wandern und Playstation 3. Heute geht es um die Blu-ray Drive. Spiele werden auf einen normalen CD-Rom oder DVD übertragen. Das führt zu einer sehr interessanten Frage für Sicherheitsforschung. Das ist ein Beispiel, wie wir an die Firmware gekommen sind und wie wir die Exploits erird haben und die unterschiedlichen Modelle von Blu-ray Drives für die Playstation anschauen. Aber bevor ich meinen Vortrag anfange, muss ich euch ganz klar sagen, zuallererst hat nichts zu tun mit meinem Arbeitgeber. Ich habe das ausschließlich aus Interesse gemacht und nur für Forschung und Bitte benutze es nicht, um Resetze zu brechen. Und soweit ich weiß, gibt es nicht zu einer kompletten Sicherheitsexploit. Und es kann auch nicht benutzt werden, um Kopierschutz zum gehen. Darum rede ich darüber. So, was ihr kennt, ist, was eine Blu-ray-Disk ist. Blu-ray hat die Playstation 2 zuerst benutzt und DVD. Und Sony wollte auch bei der nächsten Playstation 3 diese neue Technologie einfügen. Die ersten Blu-ray Drives waren nur ein Monat vor der Playstation 3 veröffentlicht worden. Und jetzt benutzt auch die Xbox. Der Format ist gut dokumentiert in Patenten. Und wir sehen auch was für unterschiedliche Disks oder Datenträger existieren und wie sie sich voneinander unterscheiden, wie die Daten darauf gespeichert sind. Wenn euch das wirklich interessiert, dann lesen diese Dokumentation. Aber diese Dokumentation machen nicht alles. Zum Beispiel die Playstation Disks werden anders noch verifiziert. Und jetzt habe ich mich immer gefragt, wie das funktioniert. Die ursprüngliche Idee war, vielleicht finden wir es in der Firma bei Informationen darüber. Zuallererst, wie funktionieren die Blu-ray, was sind da für Blu-ray Player in der Playstation 3? Wir haben zwölf unterschiedliche Versionen für unterschiedliche Blu-ray-Spieler. Das ist der allererste Platine, die allererste Blu-ray für die Playstation 3. Das ist ziemlich komplex, das Design ist relativ komplex, aber der Microcontroller ist von Sony. Aber nach ein paar Jahren, nach einer guten Zeit, haben sie beschlossen, sie Platine zu reduzieren und eine andere Firma benutzt, um die CPUs herzustellen. Das ist das Erste mit einem Renazas Microcontroller. Danach haben sie angefangen zwischen Sony und Renazas hin und her zu wechseln. Vielleicht wollten sie die Plattform einfach diverser machen, um das Angreifen zu erschweren. Mit der Playstation 4 gab es vier unterschiedliche Playstation, Blu-ray Drive Modell. Die haben alle den selben Microcontroller gehabt. Vor kurzem gab es eine neue Version und hat auch einen ähnlichen Microcontroller. Renazas ist der am meisten verfügbare Chip für die Blu-ray-Spieler in der Playstation 3 und der Playstation 4. Zuerst, wie kriegen wir die Firmware überhaupt? Das ganze kam aus der Xbox 360 Szene und das ist ein Heik, eine Kamikazehek von einem Xbox 360 Hecker. Häufig ist die Firmware auf einem eigenen Flash-Chip in einem Paket gespeichert. Das macht es einfacher, die Chips herzustellen, aber es macht es auch einfacher, die Daten zu überschreiben, wenn man das Paket auseinander baut, also den Chip auseinander baut. Hier ist das Paket vom Renazas Controller und hier können wir sehen, dass der Flash-Chip auch auf einem eigenen Chip-Lit ist, der auf dem Haupt-Chip aufgeklebt ist. Wie kriegen wir die Firmware runter mit dieser Methode? Zuerst muss das Paket aufgemacht werden, das kann mit Säure gemacht werden. Dann müssen zum Beispiel mit einem Laser die Drähte kaputt gemacht werden und dann müssen sie wieder erstellt werden, zum Beispiel mit einer speziellen Maschine. Und dann kann der Flash ausgelesen werden. Die ganzen Schritte habe ich nicht selber gemacht, sondern die haben andere Leute, die damit viel mehr Erfahrung haben gemacht und die auch sehr ähnliche Sachen mit dem 360 Drive gemacht haben. Sie haben mir aber eine Kopie von dem Firmware-Dump weitergeleitet. Und eines, was ich gebraucht habe, ist, dass ich herausfinden musste, was für eine Architektur genutzt wurde. Sie haben viele unterschiedliche Microcontroller und es waren ein paar Dokumente, die gezeigt haben, dass die Microcontroller für die Blue-Ray-Drives in der Regel auf den H8S-Architektur basiert. Und diese Architektur wird von IDA-Pro unterstützt. Und das ist sehr einfach, damit das Reverse-Engineering anzufangen. Hier noch ein paar Informationen zu dieser Architektur. Es ist eine Risiko-Architektur, aber sie ist ein bisschen ähnlich zu X86. Es ist relativ einfach, damit zu arbeiten. Wir haben drei unterschiedliche Compiler. Eine witzige Sache ist, jeder benutzt andere Konventionen. Es gibt Konventionen zwischen unterschiedlichen Versionen von der Original-Compiler. Dann habe ich angefangen zu reverse-engineeren und jetzt ist es ziemlich komplex, weil es ist ziemlich groß, 2 Megawatt und es gibt nur 40 Strings da drin. Sie können die Entwickler, die Firmenwertebarkung, Scar-Trace-Funktionalität, aber die können nur eine IDE benutzen. Und diese IDAs werden mit Strings am kleinen Computer umgewandelt oder aufgeschaut. Da müssen keine weiteren Strings auf dem Flash gespeichert werden. Das ist einfach kleiner, aber vielleicht haben Sie auch über Sicherheit nachgedacht. Es ist kompliziert, dass Reverse-Engineering jedoch erheblich ist. Das erste, was wir machen wollen, wenn wir einen neuen Firmware-Reverse-Engineering ist, ist, dass wir so viele Sachen wie möglich herunterladen vom Hersteller. Wir wollen Sausgröt herunterladen, wir wollen Libraries herunterladen, wir wollen Compiler herunterladen. Das brauchen wir alles, um zu reverse-engineeren einfacher zu machen. Man kann z.B. Signaturen für EDA Pro erstellen, wo die Namen der Funktionen schon eingetragen sind und die Benutzungsarten beweisen von den Registern benutzen. Viel davon wird von Renas zur Verfügung gestellt. Aber leider ist nichts DVD oder Blu-ray relevantes öffentlich. Ich musste alles reverse-engineeren. Renas produziert auch unterschiedliche Erdtors-Betriebssysteme. Manche sind verfügbar, manche nicht. Auch der offizielle Compiler ist verfügbar. Wir haben einen Compiler, der wahrscheinlich benutzt wurde, um unsere Umgebung zu kompilieren. Als ich die Erteilen vom Compiler angeschaut habe, habe ich keine Libraries gefunden, weil anscheinend werden alle Libraries in speziellen Paketen gespeichert und werden erst für das Compiler entpackt. Aber was ich gemacht habe, ist, ich habe herausgefunden, wo dieser Library ist und habe diese Pakete dann selber entpackt. Und ich konnte auch keine Informationen über die Hard-Ferbe konnten, aber ich konnte EDA Pro-Flirt-Signaturen erstellen. Das war sehr hilfreich. Der nächste Schritt, den ich normalerweise machen würde, wäre, ich versuche herauszufinden, die Funktionen von dem Echtzeitbetriebssystem herauszufinden. Wie der Daten- und der Control-Flow benutzt wird und wie die das zwischen unterschiedlichen Prozessen hin- und herschieben. Ich habe viele unterschiedliche Real-Time-Betriebssysteme von Rendsas heruntergeladen. Alle waren ähnlich, hatten einen Unterschied, und in den meisten Fällen wurden sie in assembly für unterschiedliche Architekturen geschrieben. Endeffekt hat nichts dem Echtzeitbetriebssystem auf der Firma geähnelt. Es war nicht sonderlich erfolgreich oder so interessant. Aber alles wurde von einer japanischen Firma installiert. Das heißt, es hat eine spezielle Spezifikation, Mikrotron, und die definiert die Funktionen, die Argumente. Das sind mehr als 300 Seiten-Dokumentationen und es vereinfacht das Reverse-Engineering signifikant. Als Nächste, was ich gemacht habe, ist, ich habe versucht, herauszufinden, wie ich mit meinem Ziel kommunizieren kann und welcher Logik ich benutzen kann. Blu-ray-Drives, Daten über ARTA, und es ist ARTA-Protokoll. Wir haben unten das SATA. Also, okay, es gibt PARTA, also parallel ARTA, das ist veraltet, und dann haben wir noch SATA, serielles ARTA. Darüber haben wir zwei unterschiedliche Kommand-Sets oder Befehlsätze. Zum einen ARTA für Festplatten und ARTA-Pi-Befehlsatz. Das wird in den anderen Fällen gedutzt, zum Beispiel in den optischen CD, DVD und Blu-ray und so weiter gerätten. Wir haben ein primäres Befehlsetz, der überall verfügbar ist. Wir haben ein device speziell spezifisches Befehlsatz. Und da haben wir teilweise sogar zwei unterschiedliche Spezifikationen, was da benutzt wird. Das primäre Befehlsatz hat grundlegende Hardware-Informationen drin. Wie heißt der Hersteller, wie heißt das Produkt? Das ist das, was man sieht, wenn man das Gerät mit dem Computer verbindet. Wir suchen die Strings in der Firma und wir finden die entsprechenden Befehle. Damit können wir anfangen. Kreative Spezifikationen und mit dem Reverse Engineering schauen wir uns einfach die Befehle an, die interessant sind. Das ist so, wie wir es normalerweise versuchen zu machen. Wenn ich Firma reverse engineer und auf diese Art und Weise können wir analysieren. Wir können was Besseres analysieren und wir kriegen, wir suchen dann auch Code Execution zu bekommen. Das macht es viel einfacher. So, GDB, also GNU Debugger, hat einen Simulator für diese Architektur. Wir können das dafür kompellieren. Wir können eine Elfdateil modifizieren und wir können Code ausführen. Ich mag Ida Pro als Squi und es hat auch ein paar Probleme. Also zuallererst GDB, die Buggerplagin von Ida Pro ist nicht offen und Hexray hat es für kurz und deutlich verbessert. Aber damals war es sehr buggy und es hatte nur wenige Ziele und diese Architektur war natürlich nicht unterstützt. Also habe ich beschlossen, mein eigenes GDB, die Buggerplagin mit Ida Pro geschrieben. Das war eine gute Entscheidung, weil es hat nicht allzu lange gedauert, aber es hat viel Zeit gespart, als ich diese Firma angeschaut habe und andere. Zum Beispiel GDB für X64 wurde nur erst in Ida Pro 6.9 Hünze gefügt. Hier ist ein Screenshot, wie es aussieht. Ich zeige es einfach nur mal. So, als ich dabei war, diese Firma zu reverse-engineeren, habe ich mehrere Firmen was angeschaut. Es ist so, dass es Rurail Drives für Computer existieren, auch ein Controller von Rinsauce benutzen. Sie wurden auch von Hitashi hergestellt und da kann man Firmenware bekommen, die nicht verschlüsselt sind. Ich habe die Verglichen und die PC Firmenware und die PlayStation Firmenware ziemlich unterschiedlich sind, aber sie benutzen dieselbe Entwicklungsgit. Ich verstehe das, weil viele Brurail- und Hardwarefunktionen ähnlich sind. Präferere Geräte sind auf denselben Adressen. Die PC Firmenware benutzt dieselbe kryptografische Prozessor und die PC Firmenware benutzt auch mehr Debugstrings. Es zeigt uns, welcher Name da ist, wie das intern heißt. Es wird intern als Indigo 3 bezeichnet. Auf dem vorherigen Folie habe ich den kryptografischen Co-Prozessor erwähnt. Ein großer Teil von kryptografischen Funktionen wird benutzt und die werden halt vorm kryptografischen Co-Prozessor verschlüsselt. Du kannst nicht die Firmenware runterladen und alles reverseingenieren oder bekommen, weil der Prozessor sie schützt. Und dieser Kommunikationsprozess ist sehr komplex und obscure. Hier habe ich ein paar Grafen von diesen Funktionen. Für mich ist es viel einfacher, die obskrifizierte Biner-Datei zu älten Schüsseln zu analysieren, als sie zu benutzen. Eine kryptografische Prozessor benutzt eine Art von Firmenware und man kann zusätzliche Module hinzuladen und Schlüssel hinzuladen. Was ich machen wollte, ist, ich wollte damit spielen zum kryptografischen Co-Prozessor und versuche sehr Werte verändern und schauen, was passiert, aber muss dafür Code ausführen können. Also reden wir jetzt über Code Execution und wie ich das erreicht habe. Also unter dem folgenden Link kann man auch mehr Informationen finden und dieses Protokoll ist eigentlich ziemlich großartig, um es zu exploiten, aber es ist sehr viel seltener. Also wie funktioniert das? Ein Kleint endet einen kleinen Block zum Gerät, eigentlich nur ein Kommando und das Gerät unterstützt eigentlich sehr viele davon und das kann verwendet werden, um Daten in das Gerät und daraus zu schicken und das Gerät unterstützt außer dem Rückmeldung über den Zustand eines Befehlens und ziemlich oft sind solche Befehle und die Größe und der Zustand in einem Zusammenblock und das ist ein super Ziel für Fasingen-Angriffe. Aber ich habe es tatsächlich über Statische Analyse geschafft. Es scheint, dass die Firma ja von einer dritten Firma entwickelt wurde und dann, als es fertig war, wurde es Sony übergeben und die haben dann konzernspezifische Dinge hinzugefügt. Also alle SCSI Befehle sehen gut aus, aber einige Befehle von Sony haben scheinbar keine Grenztests. Ein Beispiel für einen empfindlichen Angriff hat den Code E1. Und das ist verwendet, um die Authentifizierung durchzuführen, hat also ein Security-Bezug. Aber die Länge ist nicht überprüft. Wir können also in diesen Buffer schreiben, der irgendwo hier ist, aber wie viel Speicher hat der? Also um die Antwort dafür zu finden, schauen wir uns einfach mal den Speicher an. Erst haben wir den nicht volatilen Speicher. Wir haben Flasch, wir haben den Rum. Dann haben wir den volatilen Speicher, den S-Ram und den D-Ram. Und halbiert, die wir schreiben können, gehören zum D-Ram. Und dann haben wir noch einige Register für Periphergegeräte. Also schauen wir jetzt mal den S-Ram an. Das ist ein Static Random Access Memory. Es ist klein, aber ausführbar. Beinhaltet Interruptor-Tabellen. Einige wichtige Variablen, Pointer, Echtzeit-Betriebssysteme und ein Taskstack. Und dann haben wir noch den D-Ram, also Dynamic Random Access Memory. Er ist relativ groß. Und erst einmal hat er, er ist unbekannt, wie genau die Location oder die Verordnung der Information ist. Und hier sind Daten von der Disk. Und aber auch Daten, die einfach nicht in den S-Ram gepasst haben, weil der S-Ram sehr, sehr klein ist. Und viele Variablen brauchen viel Platz und passen damit nur in den D-Ram, nicht in den S-Ram. Und große Teile sind einfach nur dafür verwendet, um Variablen zu speichern, die nicht in den S-Ram passen. In einigen Firmenwärts wird dieser Bereich gar nicht benutzt, aber in Hitachi schon. Wir sind also in der Lage, in diesen Buffer zu schreiben. Wie können wir das nutzen? Also das auszunutzen ist sehr schwierig, weil alle Variablen in staatlichen Adressen stehen und wir können keine Heap-Exploitation-Techniken verwenden. Erst muss man einen sehr guten Exploit-Primitive finden und man muss Daten an verschiedenen Orten überschreiben können und ohne dass das Gerät crashed, also zusammenbricht. Und das zu debacken ist sehr, sehr kompliziert. Wir müssen sehr viel verstehen und simulieren können. Daher musste ich sehr viel rückentwickeln, um alle Funktionen rückentwickeln, die diesen auf diesem Datenbereich zugreifen können. Es gibt keine virtuelle Funktionen-Pointers in diesem Ort. Es sind sehr viele Buffers und andere Variablen, aber final habe ich dann doch einen guten Exploit gefunden. Tatsächlich habe ich diesen Exploit niemals fertig gekriegt, weil ich einen besseren Wirk gefunden habe, während ich daran gearbeitet hatte. Die DSP-Registe sind sehr interessant. Sie sind verantwortlich für die meisten Funktionen des Drives, also das ATAPI-Interface, Laser, Servo, die Data-Demodulation, die Firma zu laden usw. Es wäre wirklich toll, wenn ihr darauf zugreifen. Und das haben wir tatsächlich. Der gesamte Areal um diesen Speicherbereich ist für Lesen und Schreiben zugänglich durch besondere STSI-Befäle. Und hier sind diese Befehle. Das ist tatsächlich ein Lesebuffer und Schreibbuffer-Bfehle mit besonderen Parametern. Und die gleichen Funktionen sind tatsächlich auch beim Hitachi-Data-Storage-Firmware erhältlich. Also erinnert ihr euch, als ich gesagt habe, dass DRAM meistens durch DMA zugerufen wird? Einige Register, die in diesem Areal verfügbar sind, sind genau für DMA verantwortlich. Und die Firma benutzt das, um Daten zu kopieren von DRAM. Also es scheint, dass dieser Bereich, der im DRAM ist, wird tatsächlich benutzt, um diese Kopiervorgänge durchzuführen. Hier erkläre ich, wie das dann genau funktioniert. Wir haben vier Gruppen an Memory-Registern. Und das ist jetzt hier ein bisschen verkürzt. Ich zeige eigentlich nur die ersten zwei, weil die anderen zwei häufig durch andere Funktionen gesetzt werden. Aber diese zwei sind während dem Starten initialisiert und danach eigentlich nicht wieder angefasst. Und jede Gruppe von diesen Registern haben einen bestimmten Anzahl an Daten aus dem DRAM auf einen festen Speicherbereich. Und die Formel ist genau so, dass der Wert der Region mit 4000 in Hex multipliziert ist. Und das wird dann entweder zur ersten oder zur zweiten Hälfte DRAM addiert. Je nachdem, wie ein Bit gesetzt ist. Also haben wir speziell dedizierte Register, die verwendet werden, um vom DRAM zu lesen und zu schreiben. Und hier ist der Code um genau das zu tun. Also wir haben DMA-Register durch SCSI-Befäle zugegriffen. Können wir damit den Inhalt von DRAM manipulieren? Es gibt mehrere Wege, um das zu erreichen. Also wir können zum Beispiel MAM 1, also diese besondere Region auf einen anderen DRAM Offset mapen. Und das können wir dann exploiten, um dahin Daten zu schreiben, wo wir eigentlich keinen Zugriff hätten. Aber das könnte zu sehr seltsam und unverhältsebaren Verhalten führen. Und es zu debaggen ist kompliziert. Aber wir könnten auch DMA-Register direkt verwenden, um unsere Daten zu schreiben. Aber tatsächlich können wir das nicht, weil die Firmware diese Bereiche benutzt. Und wenn ich das jetzt hier benutze, dann kann das auch zu unverhältsebaren Verhalten führen. Aber ich war trotzdem überzeugt, dass ich das verwenden konnte. Und da waren zwei Wege, um das doch zu tun. Erstens, man kann die Konsole jailbreaken, Linux installieren und mit dem Blu-ray-Device trotzdem kommunizieren. Außerdem kann man natürlich das Blu-ray-Drive von der Konsole trennen und mit dem PC verbinden. Ich habe diesen zweiten Weg gewählt, weil das viel bequemer ist. Und zum Glück konnte ich eine fertige Lösung kaufen, um genau das zu tun. Ich wollte meine Lösung mit einem PS4-Drive testen, weil das praktisch gleiche wie die PS3-Drive ist. Die haben nur einen unterschiedlichen Connector. Aber der Unterschied ist nicht so groß, weil ich mit einer Schere das Kabel von einem PS4, also das Kabel einer PS4 verändern konnte, mit einer Schere und dann war es kompatibel. Und so sah das dann aus. Das war jetzt ein Drive von einem PS4. Und der erste Schritt war, die gesamte DSP-Region zu dampen. Und das war jetzt hier etwas eine Überraschung, weil die Adresse und der Wert beide auf Null waren. Und das kann nur eine von zwei Sachen bedeuten. Entweder irgendetwas hier hieß das DMA-Register nicht da waren, oder sie wurden einfach nicht benutzt. Und sie wurden einfach nur nicht benutzt. Also neue Modelle. In neuen Modellen hat Sony aufgehört, die DMA-Register zu benutzen, um Dram auf Dram zu zu greifen. Das sind jetzt absolute Memory-Adressen. Und das heißt, wir haben jetzt Lese- und Schreibzugriff auf den gesamten Dram. Und jetzt, was können wir cooles machen mit vollem Schreibzugriff auf Dram? Normalerweise ist Dram voll mit Daten aus dem Disk. Aber wenn da keine Disk ist, dann ist da sehr viel leerer Speicherplatz. Und dieser Speicherplatz ist benutzt um die Firma während einem Update zu beichern. Wie genau das funktioniert, das kann dir auf unserem Wiki nachlesen. Und diese Prozedur ist identisch bei Plastischen 3 und Plastischen 4. Aber hier versuche ich nochmal zu erklären, wie das für das Drive aussieht, aus Sicht des Laufwerks. Also der Block ist mit Write Buffer empfangen. Wenn das der erste Block ist, dann kann man die Special Structure initialisieren. Und man packt das Ganze in den Dram. Dann überprüft es, ob alle Blöcke empfangen wurden. Wenn sie alle empfangen wurden, dann wird der Hash validiert. Wenn der Hash korrekt ist, wird die Firmware decrypted, also entschlüsselt. Dieser Prozess kann etwas dauern. Und wie diese Logik funktionieren sollte, ist, dass die Konsole ein Test Unit Ready Kommando senden soll, um zu sagen, ob die Firmware schon decrypted wurde. Und wenn sie fertig entschlüsselt ist, dann kann die Firmware, das Firmware Update in SRAM, kopiert werden und ausgeführt werden. So. Und hier können wir jetzt die, dann können wir jetzt hier die Zeit überprüfen, die diese Teil dauert. Hier können wir einfach Daten reinschicken, warten, bis es entschlüsselt wurde. Und wenn es entschlüsselt wurde, dann können wir unseren Trick benutzen, um einen kompletten Darm dieser Firmware durchzuführen. Und nach der Validierung können wir tatsächlich auch einige Sachen in der Struktur ändern. Also anfangs hatte ich nur eine Firmware für genau diese Version des Laufwerks. Aber dann habe ich diese bekommen und dann diese bekommen. Und diese. Und das ist jetzt schon die PlayStation 4. Und ich habe noch mehr bekommen. So, in diesem Stadion ist es trivial, dann eigenen Code auszuführen und alle Strukturen sind in DRAM gespeichert. Also wenn jetzt jemand eine Schritte wiederholen will, das ist schon ein Hint. Wenn man solche Explosions macht, muss man normalerweise sehr vorsichtig sein. Weil dieses Gerät einen eigenen Speicher hat. Also wenn man jetzt hier irgendwas falsch macht, dann kann es passieren, dass man das Gerät brickt. Und das funktioniert dann nicht mehr. Und dann darf man wieder mit einem neuen Gerät neu anfangen. Aber in diesem Fall kann ich sagen, dass es ein Emergency Boot Firmware gibt. Und wenn der Hash der Hauptfirmware beim Booten nicht übereinstimmt, dann wird diese Notfallboot Firmware geladen. Und man kann das Gerät aus dem Brick wiederherstellen. Und warum ist es jetzt so passiert? Wahrscheinlich ist der Fehler passiert, als die Firmware an Sony übergeben wurde. Dann ist das Problem aufgetreten, dass die Ingenieure nicht wirklich verstanden haben, wie genau die Funktionalität der DSP-Register aufgebaut ist. Und einige SCSI-Fähle wurden einfach übrig gelassen für Diagnosezwecke. Und einige Fälle wurden einfach nicht betrachtet. Und jetzt haben wir hier mysteriöse Daten. Und wir haben uns immer gefragt, was ist das jetzt? Was sind das für Daten? Weil wir nirgends finden konnten, wie diese Daten endenschlüsselt aussehen. Und ich konnte sie tatsächlich entschlüsseln und es stand nichts Interessantes drin. Und ich habe ein paar Tricks benutzt, ein bisschen gerechnet, ein paar Flex gesetzt, aber es kam nichts Interessantes raus. Für mich war es trotzdem sehr interessant zu sehen, wie die Schlüssel von der DSP gelesen wurden, weil diese Information irgendwie damit zusammenhängen sollte, wie Disks verifiziert werden. Und bei der PS3 werden zwei verschiedene Schlüssel verwendet für die Disks. Die erste ist für die Verschlüsselung der Diskdaten und der zweite ist für die Entschlüsselung von gespeicherten Daten. Das ist alles bei der PS4 identisch. Und diese Schlüssel werden vom Kryptoprozess dazu gegeben, aber erst wenn das Gerät identifiziert wurde. Und hier sehe ich, sage ich mal, was über die Authentifizierung bekannt ist. Die Authentifizierung des Laufwerks sind die Hauptpunkte, die die ODD Sicherheit sicherstellen. Da gibt es zwei Wege, um diese Schlüssel zu erhalten. Entweder man kann den Kryptoprozessor hacken in der Videokonsole oder im Laufwerk. Und solche Hacks hinzukriegen, ist sehr, sehr schwierig. Und das Security-Modell ist einfach effektiv gegen Piraterie. Und es gibt viel einfache Wege, um illegale Kopien von Spielen anzufertigen. Wenn man jetzt die Firmware der PlayStation kopiert oder simuliert, dann kann man Spiele auch kopieren. Hier gibt es jetzt noch mal das Security-Modell vereinfacht. Und es gibt jetzt hier zwei kryptografische Prozessoren, dargestellt als weiße Schlösser. Und es ist nicht erlaubt, da von der Firmware reinzukommen in diese Prozessoren. Aber es passiert auch geheimen Kommunikation zwischen diesen zwei Schlössern. Also das war jetzt die beste Analogie, mit der ich aufkommen konnte. Wenn man die Firmware der Spielekonsole hackt, dann kann man diese Kommunikation komplett umgehen. Man nimmt einfach die Daten und man lässt sie auf der Konsole laufen. Also kann man ropkopierte Spiele spielen. Aber wenn man im Drive ist, dann kann man diese Kommunikation nicht starten. Also alleine vom Laufwerk aus kann man keine kopierten Spiele spielen. Jetzt Experimente mit dem kryptografischen Prozessor. Das war der eigentliche Grund für Code Execution mit dem Kryptoprozessor. Und ich konnte Kryptofirmware von PS3 und PS4-Laufwerken lesen. Und der Prozessor von der PS4 fing an, genauso zu verhalten wie er es in der PS3 sollte. Sogar einige Offsets für Register haben sich verändert. Und ich habe schon erwähnt, dass diese Kommunikationsprozesse sehr kompliziert sind und ich wollte ein paar Werte ändern. Also habe ich einen eigenen Faser geschrieben, um diese Bits zu flippen, um zu Registieren geschrieben werden. Und das war komplett nutzlos. Wenn man nämlich einige solche Werte ändert, dann wirft der Prozessor einfach Fehlerwerte aus und nach einer Weile hängt er sich auf und man muss ihn neu starten. Also schließlich habe ich dann rausgefunden, dass diese Funktionen wie folgt funktionieren. Erst muss man den Sieg für den Hash zur Verfügung stellen, dann die Kommandos zur Verfügung stellen, Daten und Schlüsse dann den Hash, um die Kommandos zu verifizieren und schließlich werden sie verifiziert und ausgeführt. Jetzt gibt es hier noch ein anderes Schloss. Und mit diesem anderen Krypto-Prozessor habe ich rumgespielt, aber dann irgendwann das Interesse verloren, weil es niemals mein Ziel war, den Kopierschutz zu brechen. Also sehr viel von dem passiert wahrscheinlich auch in der Hardware. Und das war jetzt der allererste kommerzielle Version. Und die Hauptkompetenten sind diese zwei. Das ist ein 1MB Nordflash von Spenchen und dann die HauptMCU von Sony, die auf AM Basis funktioniert. Und in dem Nordflash ist die Firmware. Die Firmware wird also von externem Flash ausgeführt, die Daten werden in Echtzeit entschlüsselt und natürlich ist der Entschlüsselungsargorithmus auf XOR Basis. Also haben wir jetzt ein XOR Stream, eine bestimmten Größe. Und was machen wir meistens, wenn wir solch einen Fall haben? Wir suchen einen Bereich, der mit Nullen gefüllt ist und dann können wir den Teile der Firmware wiederherstellen. Nicht alles, aber einige Stücke, eine Geteile der Firmware. Und ich habe erwähnt, dass der Code von externem Flash ausgeführt wird. Aber die Integrität der Firmware ist beim Start überprüft. Das ist jetzt ein Problem für uns, oder? Nein, nicht wirklich. Wir können nämlich alle Speicherzugriffe von der HauptCPU zum externen Flash analysieren. Wir können den Lesezugriff mit FPGAs regulieren. Wir können kleine Payloads schreiben und das mit dem XOR Stream verschlüsseln. Und wir können den Speicherzugriff von der CPU, nachdem die Firmware verifiziert wurde, noch manipulieren. Also dann können wir diese Payload verwenden, um Klartext zu lesen und auszuführen. Das heißt, wir bekommen Code Execution und unseren Firmware-Dampen. Diese Firmware war relativ interessant, denn im Gegensatz zu der Resaus-Firmware hat sie viele Debuginformationen. Es hat einen speziellen Serial-Monitor mit sehr vielen Befehlen. Einige dieser Befehle sind echt interessant. Peak, Poke, Dampen und viele weitere. Wir brauchen ein spezielles Passwort, um es zu greifen. Auch der Krypto-Prozessor ist viel einfacher, als wir machen jetzt das. Viel einfacher, und wir schreiben einfach Schüssel, Daten und die Größe von dort unter einem spezifischen Offset in den MMIO-Region und dann initialisieren wir den Befehl. Und wenn ihr die Daten vom Flash lesen wollt, dann könnt ihr das nicht machen. Ihr kriegt immer nur Müll zurück. Es sollte so funktionieren, dass wir spezielle Funktionen nutzen, die im Bootloader sind, um diese spezifischen Offsets zu setzen. Aber das kann natürlich mit einer returnorientierten Programme umgangen werden. Und alle Funktionen haben Integer Overflows. Das sind frei. Wir können die ganzen Daten eh auslesen. Wenn wir das machen, dann gibt es einen interessanten String am Anfang, ein sehr Krypto-Bereich, und es sollte nicht möglich sein, das zu lesen. Und Sony MCU und Resets MCU sind komplett unterschiedliche Systeme und das bedeutet, dass alle präferierenden Geräte unterschiedlich sind und die unterschiedlich auf sie zugriffen werden sollen. Ich habe einen Präferiergerät gefunden, das gleich in beiden Firmengeräten ausgeführt wird. Das heißt, eins ist in beiden identisch. In Sony und Rensas MCU. Der einzige Unterschied ist in den Adressen. In Sony ist die Adressen in einem speziellen Bereich, aber es speichert im Rensas, wenn sie in diese Indigo, das ist der Präferiergerät. Dieses Gerät ist, ich vermute, dieser Disk-Verifikationsgerät. Es scheint die CRC, zumindest, es hat einen XORG und schützt in spezifischer Register. Wenn wir es modifizieren, dann wird der kryptografische Prozessor diesen Schüssel nicht zurückgeben können. Wir haben einen Teil von diesem CD-Verifikationsbereich und das ist relativ komplex, wenn es nur in Hardware initialisiert ist. Noch ein anderer interessanter Fakt, Nokia ist kurz für Nokia, ist ein sehr interessanter Pilz. Also, Ergebnisse, ich glaube, dass Sony und Partner gut gearbeitet haben, das Sicherheitsmodell ist sehr gut und hat sich sehr örtlich bewiesen. Die präsentischen Blu-ray-Geräte existieren seit 2006, aber wurden seitdem nicht öffentlich gehackt. Aber viele haben es versucht, wenn man den Gerüchten glauben kann. Hier ist etwas, was wir alles lernen können. Die Fünfe kann gehackt werden. Leute wie ich haben ein paar Probleme, es zu reverse-engineeren, aber kryptografische Prozesse, es ist ein interessantes, echt-welt-Ziel, wenn ihr Glitching und SCR benutzen wollt. Aber ja, außerdem respektet für alle, die schon daran gearbeitet haben, die versucht haben, die Blu-ray-Player von PlayStation zu lesen, insbesondere dank an denen, der die Firmware gegeben hat. Hier noch ein paar Informationen über Responsible Disclosure. Im November 2008 hat das Sicherheits-Team in Sony Interactive Entertainment mir kommentiert. Wir haben die Personation gesehen, kannst du auf das X36 C3 darüber reden? Ja, klar. Ich habe Ihnen die Informationen über die Sicherheitslücken gegeben und es war relativ überraschend, was jetzt nächstes passierte. Es war komplett unerwartet. Aber das Sicherheits-Team hat mich eingeladen, einen Bug-Bounty, das Sie vor Kurzem veröffentlicht haben gegeben. Sie haben alle Vulnerabilities, Sie haben gesagt, eine hohe und zwei Medium-Sicherheits-Bugs. Nichts Kritisches. In keiner Art und Weise sind diese Bugs kritisch und alle Sicherheitslücken wurden in der letzten Firma gefixt. Vor 9 oder 10 Tagen ist die Firma rausgekommen. Das heißt, ich bin der erste Researcher, der ein Bug-Bounty von der PlayStation bekommen hat. Also, weiter, Sony möchte ein paar richtig tolle Sachen veröffentlichen. Ich hoffe, dass ihr das alle würden wollen. Ich hatte eine sehr nette Erfahrung und wenn ihr was findert, redet mit denen. Meine ganzen Folien sind hier veröffentlicht und vielen Dank. Vielen Dank auch von uns aus der Übersetzer-Kabine. Wir sind Franz T. Wenn ihr Fragen stellen wollt, könnt ihr das über Twitter mit dem Hashtag Borg machen. Wenn ihr Feedback an uns als Übersetzer habt, dann könnt ihr das an hello at c3lingo.org senden oder mit dem Hashtag C3Translate Twitter und Mastodon. Was ist der Kontakteur? Ja, das ist ein üblicher Kontakteur, den man findet und kann man selber zusammenlöten. Ich fand es sehr einfach zu kaufen, weil er sehr verfügbar war. Ich glaube, es gibt ein paar Hardware-Emulatoren im Markt. Kennt ihr sich darüber? Hecken die irgendetwas? Oder ist das gar nicht abgesichert? Also, dass man die Hardware einfach mit seiner eigenen ersetzen kann mit einem eigenen Emulationsgerät? Also, wie ich es erwähnt habe, muss man um das tun zu können, einen Weg um die sichere Kommunikation zu umgehen, um das machen zu können. Ja, also diese Kommunikation ist sicher. Man braucht die Schlüssel, um diese Kommunikation zu nutzen. Und diese Schlüssel zu bekommen ist eine große Herausforderung. Vielleicht erinnert sich noch an eine andere Präsentation, wo es darum ging, Spook zu brechen. Wir haben sowas für diesen Prozessor der PS4 noch nicht gesehen. Aber Sony war jetzt hier auch in der Lage, diesen Bug zu finden. Also, im neuen Modell werden diese Bugs nicht mehr drin sein. Also, deswegen ist es eine große Herausforderung, solche Geräte herzustellen. Das ist, weil einfach sehr sichere Schlüssel verwendet werden. Ist diese MCU der Sony ein Toshiba MCU? Ist da eine Ähnlichkeit von den Toshiba Amt-CPUs von der PS Vita, oder ist das das komplett anderes? Das weiß ich tatsächlich nicht. Ich habe die meiste Zeit meiner Forschung hier in diesem Playstation verbracht. Und ich habe keine Zeit mit der Toshiba verbracht. Und daher weiß ich das einfach nicht. Habt ihr euch, ihr seht, die schaut, wie die Festplatte eine echte PS3 oder PS4-Gerät ist, und wie sie das verifiziert? Also, ich denke, dass es da eine dedizierte Komponente existiert, um das zu verifizieren. Und ich weiß, dass einige Teile existieren, um Daten von diesen Disks zu lesen und zu verifizieren. Aber der Rest der Magie ist einfach unbekannt, weil man sehr viel reverse-engineern möchte. Was einfach unbekannt ist. Ist das Interessante, die PS3 oder PS4 zu wecken als die Xbox? Ist das, weil Pirate Piracy nicht notwendig ist, weil jedes Spiel ein Winterspiel ist? Ja, nicht direkt. Also, die Leute mögen einfach Playstations, weil es exklusive Titel gibt. Außerdem ist die Xbox-Sicherheit einfach auch ziemlich gut. Ich denke tatsächlich, dass sie sogar besser ist als in der Playstation. Einige meiner Freunde haben Erfahrungen damit, und es ist sehr schmerzhaft, damit zu arbeiten. Also, Microsoft schützen auch die Computer, und die haben Technologien, die sie verwenden können, um auch ihr IP zu schützen. Sie haben außerdem einige spezielle Techniken und neue Ideen, um es viel schwerer zu machen, die Konsolen zu hacken als Computer zu hacken. Vielen Dank dafür. Und das war's. Keiner meldet sich. Wir haben keine weiteren Fragen. Bitte, einen großen Applaus für Boris Link.