Aufrufe
vor 7 Monaten

Netzwoche 04/2018

22 Technology

22 Technology Titelgeschichte Wie Meltdown und Spectre zukünftige Computerarchitekturen beeinflussen 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. Autorin: Julia Schlegel 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 Bioinformatik. «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.» « 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 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». 04 / 2018 www.netzwoche.ch © netzmedien ag

Technology Titelgeschichte 23 Illustration: Illustration: vector_master / fotolia.coma 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 (Grafik 1). 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 GRAFIK 1: COMPUTERARCHITEKTUR UMFASST BIS ZU 7 EBENEN EINES COMPUTERSYSTEMS Problem Algorithmus Programm / Sprache Systemsoftware Software-Hardware-Interface Mikroarchitektur Logik Chips Elektronen www.netzwoche.ch © netzmedien ag 04 / 2018