Der miese CPU-Bug Meltdown betrifft nicht nur Intel. Nicht nur AMD und ARM sind von Spectre betroffen.
Hier berichtet jemand, wie er die beiden Hardcore-Hardware-Bugs auch auf der IBM-CPU der Xbox360 fand: https://randomascii.wordpress.com/2018/01/07/finding-a-cpu-design-bug-in-the-xbox-360/.
Mich machte das hellhörig. Auch die PS3 hat eine CPU von IBM drin, wenngleich in Zusammenarbeit mit Sony und Toshiba damals:
Ich hatte noch eine alte PS3 mit Linux irgendwo rumstehen. Und mit diesem Tool hier, https://github.com/speed47/spectre-meltdown-checker, kann man seinen Prozessor unter Linux testen.
Das habe ich gemacht, hier das Ergebnis:
Spectre and Meltdown mitigation detection tool v0.16
Checking vulnerabilities against Linux 3.12.6-red-ribbon-powerpc64-ps3 #7 SMP Tue Jan 7 17:09:59 CET 2014 ppc64
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Kernel compiled with LFENCE opcode inserted at the proper places: UNKNOWN (couldn't find your kernel image in /boot, if you used netboot, this is normal)
> STATUS: UNKNOWN
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: UNKNOWN (couldn't read /dev/cpu/0/msr, is msr support enabled in your kernel?)
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: NO
* Kernel compiled with a retpoline-aware compiler: UNKNOWN (couldn't find your kernel image)
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): NO
* PTI enabled and active: NO
> STATUS: VULNERABLE (PTI is needed to mitigate the vulnerability)
Wie man sieht:
* Meltdown: anfällig
* Spectre Variante 1: unbekannt
* Spectre Variante 2: anfällig
Ich hätte erwartet, dass zumindest beim Cell, dieser ungewöhnlichen „Supercomputer-CPU“, hier überall „unbekannt“ steht. -.-
Als Linux läuft hier die wohl letzte erhältliche Distribution für die PS3, „Red Ribbon GNU/Linux“ basierend auf Debian, die man sich hier als Live ISO herunterladen kann.
Liebe Grüße an IBM & danke! Wo kann ich jetzt meine Daten einklagen, die beim Zocken abgegriffen wurden!?
[Update I, 17.01.18]
Mir gefiel das Ergebnis überhaupt nicht, also trat ich mit Stéphane Lesimple in Kontakt, den Autor des oben benutzten Tools.
Leider prüft sein Tool die Hardware gar nicht.
Er checkt lediglich, ob ein Linux-Kernel die Patches gegen Meltdown und Spectre enthält. Das ist natürlich für meine Zwecke suboptimal, möchte ich doch eher herausfinden, welche Hardware betroffen ist in meinem Haushalt. Dass ich jeden Kernel vergessen kann, der eine Version unter 4.14 trägt, war mir von vornherein klar.
Bei der PS3 wird es daher noch komplizierter als ohnehin schon: es läuft wohl auf einen Exploit-Test hinaus, die CPU zu checken und derzeit existiert wohl nicht mal ein PoC (Proof of Concept) dazu. Für den Cell hier was zu finden dürfte also realistisch betrachtet unmöglich sein.
Hinzu kommt, dass man durch einen Kernel-ABI-Breakage-Bug und ein völlig veraltetes petitboot keinen Kernel auf einer PS3 installieren kann, der eine höhere Version trägt als 3.15.x. Sollte dieser Zweig von Geoff Levand also nicht gepatcht werden, gibt es nicht mal den Hauch einer Chance den Cell betriebssystemtechnisch gegen Meltdown und Spectre abzudichten. Nur, warum sollte er das bei solch einer exotischen Hardware tun?
Was bleibt: die Meldungen oben beziehen sich auf den Betriebssystemkern 3.12.6, den „Red Ribbon GNU/Linux“ nutzt. Ein Test der Hardware findet bei diesem Tool nicht statt, auf keiner Architektur. Exploits gibt es scheinbar noch keine im WildWestWeb und sofern es welche gibt, irgendwann, wahrscheinlich sehr sehr bald, dürfte das auf dem Cell schwierig werden das abzugreifen, was man hier an sensiblen Daten hinterlässt. Solange allerdings Linux auf einer PS3 oder einer anderen Hardware mit der Cell-CPU läuft (z.B. Supercomputer mit PowerXCell, PS3-Cluster), und meines Wissens läuft ohnehin außer Linux kein Betriebssystem auf dem Cell, bleibt der Kernel tatsächlich verwundbar. Über den Chip selbst lässt sich von meiner Seite allerdings keine sichere Aussage machen. Vielleicht mal bei IBM direkt nachhaken. Doch mein Gefühl sagt, was randomascii über die Xbox360 berichtet, gilt wohl auch bei der PS3.
[Update II, 31.01.18]
Mittlerweile konnte man auch so rauskriegen, ohne Tools oder Hacks, ob der Cell verwundbar ist oder nicht. Ich muss meine Headline (leider) nicht ändern:
Die PowerPC-Einheit, die auf dem Cell zum Einsatz kommt, ist eine Power970. Apple vermarktete solche IBM-Bezeichnungen für seine Hardware gerne mit G3, G4 oder G5. Alle _vor_ G5 sind gegen Meltdown und Spectre nicht verwundbar, alle ab G5 aufwärts aber schon. Jetzt ratet mal, wie Apple-Marketing die Power970-Einheit, die im Cell zum Einsatz kommt, nennt? Richtig: G5.
Welche PowerPC-Einheit in einer PS3 arbeitet kann man in der exzellenten Präsentation von John Dongarra hier nachlesen: http://netlib.org/utk/people/JackDongarra/WEB-PAGES/SPRING-2008/Lect02-cell.pdf. Die PPE wird anschaulich auf Folie 10 erklärt.
Weder die PPE, noch die 8 SPEs des Cell gelten als typische OOO-Prozessoren, tatsächlich wurde das Konzept der In-Order-Execution verwendet und die CPU auch so vermarktet. Das führt am Anfang von Recherchen zu Unklarheiten. Der Cell kann nur „ein paar“ OOO-Befehlssätze bzw. die Ingenieure bauten vorsorglich Out-of-Order-Execution (OOO) mit ein. Wenngleich nicht in dem Umfang, wie in modernen Intel-, AMD– oder ARM-CPUs. Diese Intention hilft aber rein gar nichts, wenn die PPE eigentlich ein G5 ist. Folge: neben Xbox360-Konsolen wurden PlayStation3-Konsolen mit den Meltdown- und Spectre-Hardware-Bugs von Anfang an ausgeliefert
. Wer von den Lücken wusste, das sind mindestens die Prozessorhersteller selbst, konnte so auch persönliche und sensible Daten abgreifen. Ein Hardware-Update ist bei Spielkonsolen vom Konzept her niemals vorgesehen. Mind blown? Na hoffentlich! Frohes Zocken…