Das erste Quartal 2019 ist zu Ende. Wir befinden uns bald im 16. Monat des Bekanntwerdens der Hardcore-Hardware-Prozessoren-Bugs „Meltdown“ und „Spectre“. Zählt man das halbe Jahr Geheimhaltung dazu, sogar schon im 22. Monat.
Zeit für einen kurzen Status, wo wir gegenwärtig stehen.
Wie die folgende Grafik des „35C3“ (35. Chaos Communication Congress) anschaulich zeigt, sind aus zwei Hardware-Bugs hervorgerufen durch das OoOE-Paradigma nunmehr 27(!) geworden:
Eine Empfehlung zum Kauf von Hardware mit Prozessoren von Intel, AMD, ARM & IBM kann also derzeit in keinster Weise ausgesprochen werden.
Entspannung ist kaum in Sicht.
Intel will zwar noch dieses Jahr erste CPUs verkaufen können, die hardwareseitig gegen „Meltdown“ geschützt sind. Welche das sind steht jedoch in den Sternen genauso, wie warum es nur die „Basisversionen“ betreffen soll (was auch immer das sei…) und nicht durchgängig alle Intel-CPUs. Welchen größeren GAU brauchen die noch!?
AMD will dieses Jahr noch eine(!) der „Spectre“-Varianten hardwareseitig patchen, allerdings lediglich in „Zen2“-Architekturen. „Zen2“ ist die 3. Generation der „Ryzen“-CPUs, die Mitte 2019 kommerziell erhältlich sein soll. Wer dadurch Server betreiben will, sollte auf den Codenamen „Rome“ achten, Desktopnutzer auf „Matisse“. Wie man oben gut erkennen kann durch die Grafik, wird es das aber wohl kaum bringen und ist wohl nur ein Tropfen auf den (viel zu) heißen Stein. Schade, AMD.
ARM, verantwortlich für so ziemlich jeden Prozessor weltweit(!) in Smartphones und Tablets außer denen aus dem Hause Apple, verspricht lediglich nebulös, dass „alle künftigen CPUs gegen Angriffe im Spectre-Stil resistent sein werden“ und veröffentlicht weiter Online-Listen mit betroffenen Prozessoren. Ja gut, ähhh…
IBM. Ja, „Big Blue“. „Big Blue“ halt. „Big Blue“ hat erst kürzlich „Red Hat“ für Milliarden-Milliarden US-Dollar gefressen und schläft bzw. hat sich wohl mental vom CPU-Markt verabschiedet. Daher keine Ahnung, was deren Status hier derzeit ist. Hinweise werden dankend entgegengenommen und hier weiter gepflegt.
Und was machen wir Nutzer & Käufer, mit Hardware von vor 2018? No choice. At all: patchen, patchen, patchen & daran glauben, dass es softwareseitig irgendwas bringt, klaffende, physikalische Hardware-Sicherheitslücken verzweifelt zu stopfen, bis es kein Morgen mehr gibt.
Meine armen KollegInnen der Programmiererzunft weltweit. Man könnte meinen, das Schicksal nimmt uns persönlich seit Mitte 2017 unsere seriöse Arbeitsgrundlage. Was sollen wir alternativ machen jetzt? Nutztiere züchten!? Bäume pflanzen!? Ich für meinen Teil, bin leider schwer überfragt. Keine guten, keine gesunden IT-Zeiten derzeit. DAMN.
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…