Computerarchitektur

Wie Meltdown und Spectre zukünftige Computerarchitekturen beeinflussen

Uhr

Die massiven Sicherheitslücken namens Meltdown und Spectre haben gezeigt: Security hängt auch von der Computerarchitektur und Hardware ab. Welche Folgen Meltdown und Spectre für das Design zukünftiger Architekturen haben könnten und wie die Zukunft von Prozessoren, Motherboards und Co. aussieht, erläutert ETH-Professsor Onur Mutlu.

(Source: vector maste / Fotolia)
(Source: vector maste / Fotolia)

Meltdown und Spectre haben in den vergangenen Monaten die Computerwelt in Aufregung versetzt. Zu Recht sprechen Experten vom Security-Super-GAU. Denn die beiden neu entdeckten Sicherheitslücken betreffen direkt den Prozessor und kompromittieren damit quasi das Herz der Computersysteme. So können auch Anwendungen angegriffen werden, die sorgfältig und unter höchsten Sicherheitsstandards programmiert wurden. Aber wie funktioniert das genau?

"Moderne Prozessoren tun etwas Ähnliches wie wir vor einer grossen Reise", erklärt Onur Mutlu, Professor der ETH Zürich und der Carnegie Mellon University, spezialisiert auf Computerarchitektur, Systeme und Bio­informatik. "Wir stellen Vermutungen an, was wir unterwegs alles benötigen werden und packen unsere Koffer dementsprechend. Wir wollen ja keine kostbare Ferienzeit verlieren. Also nehmen wir auch einiges mit, von dem wir nicht wissen, ob wir es tatsächlich benötigen werden. Listen mit Passwörtern, zum Beispiel. Und dann stellt sich heraus, dass wir sie nicht benötigen, aber sie sind im Gepäck und können von böswilligen Mitmenschen geklaut werden."

Meltdown "schmilzt" Sicherheit nieder

Bezogen auf die Welt der Computerprozessoren bedeutet dieses Kofferpacken, dass im Prozessor-Cache Daten vorgehalten werden, die möglicherweise vom User benötigt werden oder eben auch nicht. So speichert der Prozessor auch solche Daten im Cache, die er womöglich besser nicht dort hätte ablegen sollen. Der Prozessor führt zudem Instruktionen nicht nur nacheinander, sondern auch parallel durch. Dieses Parallelrechnen erhöht die Datenverarbeitungsleistung und nennt sich "Out-of-order Execution". Das bedeutet, dass der Prozessor Instruktionen ausführt, obwohl sie gar nicht an der Reihe sind.

Dabei muss er berücksichtigen, dass viele Befehle einer verzweigten Struktur folgen – wie bei den Ästen eines Baums. Der Prozessor vermutet, dass ein Ast der richtige ist, und fährt entlang diesem mit der Rechnung fort – die Ausführung ist aber spekulativ ("Speculative Execution"). Da der Prozessor nicht weiss, ob das Resultat der Rechnung korrekt ist und benötigt wird, kennzeichnet er es entsprechend. Ist es aufgrund einer falschen Annahme entstanden, löscht er es später. An das System und an den User gibt er nur die richtigen Resultate weiter – der Besitzer der Maschine merkt nichts von den Spekulationen seines Computers, sondern freut sich über dessen hohe Rechenleistung. Computer können heute zwei bis drei Milliarden Instruktionen pro Sekunde durchführen.

Die spekulativen Rechnungen aber hinterlassen ihre Spuren im Cache des Computers – tatsächliche, physikalische Spuren. Und diese Spuren lesen Meltdown und Spectre aus. Beide nutzen dabei die spekulative Ausführung. Meltdown "befiehlt" salopp gesagt, die Daten im Cache zu holen. Und der Prozessor fragt nicht nach. Dass die Erlaubnisanfrage fehlt, ist kritisch. Meltdown kann deswegen sämtliche Sicherheitsgrenzen quasi "niederschmelzen".

Statt mit Software zu patchen, wäre die bessere Lösung, fundamental sichere Computerarchitekturen zu designen.

Onur Mutlu, Professor der ETH Zürich und der Carnegie Mellon University

Alle Architekturen von Spectre betroffen

Spectre hingegen "geistert" direkt im Cache umher und betrifft alle momentan existierenden Architekturen, also alle Hersteller. Die Angriffe seien aber nicht einfach durchzuführen. "Man braucht ein solides, differenziertes Verständnis sowohl von Hardware-Mikroarchitektur als auch von Seitenkanal-Attacken", erläutert Mutlu. "Man muss das Design der Mikroarchitektur im Prozessor ganz genau verstehen und man muss wissen, wie genau man die Information aus dem Cache holen kann. Die dafür nötige Expertise in Hardware-Architektur und Security kam erst mit der Zeit auf", glaubt Mutlu. "Speculative Execution" brachte Schnelligkeit und hohe Rechenleistung. Niemandem war bewusst, dass dies problematisch sein könnte. Das ist auch der Grund, weshalb diese Schwachstellen derzeitiger Prozessoren erst jetzt aufgefallen sind.

Security hängt auch von der ­Hardware ab

Rowhammer ist ein anderer Exploit, der mit der Hardware zusammenhängt und 2014 veröffentlicht wurde. Mutlu war an der Entdeckung von Rowhammer beteiligt. Damals wurde entdeckt, dass man in den meisten DRAM-Speicherchips Fehler erzeugen kann: Wenn dieselbe Linie ("row") immer wieder gelesen wird, induziert das sogenannte Bit Flips in benachbarten Reihen und somit einen Fehler. Deshalb heisst der Angriff auch Rowhammer, und bei der Entdeckung titelte Wired: "Forget Software – now Hackers are exploiting Physics". "Es ist, wie wenn man die Tür eines Nachbarn wiederholt auf- und zuschlagen würde, bis durch die Vibration das Türschloss des Hauses nebenan aufspringt", veranschaulicht Mutlu den Angriff. Vorstellbar bei Häusern, die winzig klein sind und ganz nah beieinander stehen. Rowhammer, und jetzt Meltdown und Spectre, machten definitiv klar, dass Security auch ein Hardware-Thema ist. Mutlu glaubt, dass noch unzählige weitere Lücken im Design lauern könnten. "Statt mit Software zu patchen, wäre die bessere Lösung, fundamental sichere Computerarchitekturen zu designen", sagt er.

Computerarchitektur mit Prinzipien

Unter Computerarchitektur versteht man im engeren Sinn die Hardware-/Software-Schnittstelle und die Mikroarchitektur, im weiteren Sinn aber den ganzen Computer vom Algorithmus bis zum Prozessorchip. Computerarchitektur müsse auf Prinzipien beruhen, betont Mutlu. "Bei Security geht es darum, unvorhergesehenen Konsequenzen zuvorzukommen", sagt er. "Derzeit haben wir scheinbar keine Designprinzipien, die Zuverlässigkeit und Sicherheit bieten. Diese zu finden, muss unsere oberste Priorität sein." Dafür müsse man erst einmal Modelle haben, die auf echten (Hardware-)Daten beruhen, die Sicherheitsbedrohungen wie Melt­down und Spectre in Zukunft zumindest vorhersehbar machen könnten, und man müsse die Architekturen des CPUs und des Arbeitsspeichers sorgfältig aufeinander abstimmen, sagt er. Man müsse Prinzipien festlegen, und Designs und Zuverlässigkeitstests müssten wechselwirken. Für Sicherheit, hohe Leistung und Energieeffizienz müsste man beim Design Algorithmus bis Chip berücksichtigen:

Computerarchitektur umfasst bist zu 7 Ebenen eines Computersystems.

Computersysteme bestehen aus drei Kernkomponenten

Heutige Systeme bestehen aus den drei Kernkomponenten Berechnung, Kommunikation und Speicher, und bei praktisch allen üblichen Systemen bildet der Prozessor das Zentrum. Alle Daten werden im Prozessor verarbeitet, auf Kosten des Systems. Der Prozessor ist das am stärksten optimierte Element, das die tumben Speicherelemente antreibt, die – mit Ausnahme einiger weniger, die sich auf demselben Chip wie der Prozessor befinden – kaum optimiert seien. "Das ist ein sehr unausgeglichenes System", sagt Mutlu.

Das ganze System um den Prozessor herum würde nur Daten speichern und verschieben. Das führe zu schlechter Energieeffizienz, niedriger Leistung und komplexen Systemen, zu einem übermässig komplexen und aufgeblähten Prozessor. Er müsse tolerieren, dass der Arbeitsspeicher auf die Daten zugreife, und dafür seien komplexe Hierarchien und Mechanismen notwendig.

Energieverbrauch begrenzt Leistung

Nachhaltigkeit und Energieeffizienz würden zudem immer wichtiger, sagt Mutlu. Applikationen "wollen" mehr und mehr Daten verarbeiten lassen. Am meisten Energie brauche es in derzeitigen Architekturen, die Daten zu bewegen. Ein Zugriff auf den Arbeitsspeicher etwa verbraucht laut Mutlu rund 1000-mal mehr Energie als eine komplexe Addition.

Die derzeitigen Design-Prinzipien würden zu grosser Energieverschwendung führen, weil die Datenverarbeitung weit weg von den Daten erfolge. Und die Datenbewegung bestimme auch die Rechenmöglichkeiten – egal wie schnell der Prozessor sei.

Viel klüger wäre es daher, Daten nur minimal zu bewegen, glaubt Mutlu, und sie dort zu verarbeiten, wo sie sich befänden. Insgesamt hiesse das, Computersysteme mehr auf die Daten und den Speicher auszurichten statt auf den Prozessor.

Computing und Memory zusammenführen

Eine mögliche Computerarchitektur der Zukunft würde Recheneinheit und Memory vereinigen. Bei dem Konzept seien aber noch viele Fragen offen, räumt Mutlu ein. Man könne aber etwa mit einem Prozess im System wie dem Kopieren von Daten anfangen – das Kopieren innerhalb des Speichers, ohne dass die Daten in den Cache und zurück gehen, würde bereits dazu führen, dass die Systemgeschwindigkeit erhöht und der Energieverbrauch gesenkt würde.

Rowclone etwa sei ein Verfahren, mit dem man im Arbeitsspeicher ganze Reihen kopieren könne, was zu einer 12-fach schnelleren Verarbeitung und einem 74-mal geringeren Energieverbrauch führe. Für "echte" In-Memory-Berechnung könnte man die logischen Gates AND, OR, NOT im DRAM realisieren – das würde die Leistung um den Faktor 30 bis 60 erhöhen. Um denselben Faktor sinke der Energieverbrauch, wie Experimente zeigten. Und neue Speichertechnologien wie Memristors, resistive RAM, ­Phase Change Memory hätten noch grösseres Potenzial. Mutlu sieht denn auch eine leuch­tende Zukunft für Computersysteme, trotz der aktuellen Herausforderungen.

Webcode
DPF8_82717