Die Geister, die Intel (und AMD und ARM) rief..

Statt in Ruhe einen Jahresrückblick für 2017 zu schreiben, bietet das neue Jahr 2018 schon genügend Aufregung.

Durch das Erscheinen der Prozessor-Geister Meltdown und Spectre sind alle IT-Abteilungen dieser Welt aufgeschreckt. Ein schwer behebbarer Fehler, für den es nur notdürftige, mit der heißen Nadel gestrickte Patches gibt? Diesen Eindruck kann man auf den ersten Blick haben.

Zum Glück ist schnell Rationalität in den IT-Abteilungen eingekehrt. Auch die SAP-Abteilungen der Unternehmens-IT können leicht aufatmen.

Die Bedrohungsanalyse ergibt, das die primär betroffenen Landschaften die Cloud-Systeme und die sogenannten Multi-Tenant-Systeme sind, die Systeme also, die von mehreren Kunden gleichzeitig benutzt werden, wie es typischerweise in großen Rechenzentren der Fall ist.

Vor allem Spectre hält die Spezialisten beschäftigt, denn hier ist es weniger ein Fehler als ein gewolltes Design.

Es geht um die Thematik der sogenannten „Prediction“, der Vorhersage, wie es auch in Cache Systemen benutzt wird. Um Die Bearbeitung zu beschleunigen, versucht der Prozessor vorher zu sagen, was als nächstes passiert.

Die Autoren und die Entdecker dieses Exploits haben dazu ein Beispiel aus einem Programm benutzt.

Wenn der Prozessor jetzt feststellt, das x immer kleiner als die Array-größe ist, wird dieser den Code, der in dem Positiv-Teil des Branches steckt (also der Code, der immer ausgeführt wird, wenn dieser Ausdruck TRUE ist) , vorgeladen.

Dadurch ist der Positiv-Teil immer schnell verfügbar.

Kommt jetzt doch ein Wert, der das eben NICHT ist, muss der Prozessor die vorgeladenen Programmschritte wieder löschen und den Teil für die Verarbeitung bei FALSE laden.

Dieser Moment, wenn der Prozessor diese Umlagerung vornimmt, wird dann benutzt, um die spekulativen Speicherblöcke auszulesen. Eventuell liegen hier ja schon Passwörter etc., die vorab geladen wurden und so interessant sind. Diese können dann ohne die entsprechende Berechtigung ausgelesen werden.

Wie man sieht, ist dieser Angriff sehr spezifisch und klingt sehr theoretisch. Allerdings haben die Autoren des Spectre-Documents gleich den Beispielcode in C mitgeliefert, eine JavaScript-Version existiert ebenfalls.

Das Skript trainiert immer wieder einen Branch, bis die Werte als Prediction vorgeladen sind, um diese dann zu negieren und den Angriff auszuführen. Das kann Minuten dauern für einige Speicherblöcke, für größere Einheiten können hier Laufzeiten von mehreren Stunden entstehen. Also keine Sache für einen „Drive By“ Angriff.

Angreifer müssen Zugang zu den Systemen haben und dort ihre Skripte implementieren. Es ist klar, das die besten Ziele Cloud-Dienste wie Amazon aws und Microsoft Azure sind. Wenn ich dort einen Server gemietet habe, was nur ein paar Dollar kostet, kann ich solche Spectre-Attacken in Ruhe durchführen und mich durch das Rechenzentrum durchhangeln.

Das waren auch die ersten beiden Unternehmen, die schon in den ersten Tagen Vollzug meldeten im Patchen ihrer Rechner.

Die Lösung besteht in der Absicherung der Speichersteuerung, der noch strikteren Trennung zwischen Benutzer-Speicher und Systemspeicher und der Reduzierung der Prediction-Daten.

Aber genau hier lieg auch die Performance-Einbuße: Je mehr ich Prediction-Steuerungen abschalte in den Programmen, den Compilern oder den Prozessoren, umso mehr wird an Performance verloren. Denn das war ja das primäre Ziel dieser Steuerung. Und so lässt sich auch erklären, das der Performance-Verlust zwischen 5 und Dreißig Prozent liegt. Es kommt eben auf die Anwendung an.

Mittlerweile hat sogar Intel hier einen Patch heraus gebracht und die meisten großen Hersteller legen nach.

Die Rechenzentren meiner Kunden, mit denen ich gesprochen habe, haben ihre Windows-Systeme mit Microsoft gepatcht, die Linux-Patches stehen noch aus.

Zurzeit werden die veröffentlichten Intel-Patches geprüft. Die größte Vorsicht liegt aktuell auf den Performance-Betrachtungen, um hier keine unangenehmen Überraschungen zu erleben.

UPDATE SAP Operation:

Es gibt bereits erste Erfahrungen mit den Patches der verschiedenen Hersteller und bei allen großen SAP Kunden, mit denen ich gesprochen habe, ist Vorsicht die allgemeine Regel. Es wird mit den Performance-Einbußen am oberen Ende der Skala ausgegangen (20-30%). Ebenso aufgeschreckt ist man von der Tatsache, dass viele Hersteller Patches kurzfristig zurückgezogen haben oder diese Patches nicht den gewünschten Effekt gebracht haben.

Auch wenn der Angriffsvektor groß ist, so sieht man bei SAP-Systemen eine gewisse Eingeschränktheit durch den Aufbau der Systeme in geschützten Bereichen. Allerdings sind Kunden, die in großen Rechenzentren hängen oder auf Multi-Tenant-Systemen arbeiten, hier im Nachteil, denn durch traversieren kann auch ein geschütztes System erreicht werden.

Insgesamt bleiben vor allem bei Spectre viele Fragezeichen offen und die generelle Frage bleibt, wie man mit Lücken in Systemen umgeht, die aus Sicht der Architektur nicht zu schützen sind

 

UPDATE 2:

Mittlerweile gibt es zwei sehrg ute WIKI-Kompendien

Meltdown Beschreibung WIKI

Spectre Beschreibung WIKI (aus meiner Sicht der wichtigere der beiden Exploits in Bezug auf Rechenzentren)