Foto: Lunghammer / TU Graz

Grazer Forscher: Alte PCs bei Prozessorlücken ein massives Problem

11. Jänner 2018, 17:19

Daniel Gruss sieht erst die Spitze des Eisbergs erreicht – Zweifel an manchen bisherigen Lösungen

Die ersten Berichte über Meltdown und Spectre mögen zwar bereits eine Woche alt sein, und doch ist die aktuelle Situation selbst für geschulte Beobachter noch einigermaßen undurchsichtig. Während über die reale Gefährdung, die diese grundlegenden Fehler in aktuellen Prozessoren darstellen, diskutiert wird, hat so mancher Softwarehersteller seine liebe Not mit der Auslieferung passender Updates.

In einem Vortrag an der Uni Wien hat der an der TU Graz tätige Sicherheitsforscher Daniel Gruss, der mit mehreren seiner Kollegen maßgeblich an der Entdeckung von Meltdown und Spectre beteiligt war, einen Einblick in die technischen Hintergründe gegeben, aber auch gleich eine Einschätzung der aktuellen Situation geliefert. Und diese sieht nur begrenzt positiv aus.

Updates dringend nötig

Die größte Gefährdung sieht Gruss dabei in alten PCs, die keine Updates mehr erhalten. Immerhin seien mit Meltdown und Spectre grundlegende Annahmen über die Sicherheit eines Betriebssystems "kaputt", lassen sich darüber doch die auf Hardwareebene aufgestellten Barrieren zwischen Kernel und User Space sowie zwischen einzelnen Anwendungen komplett aushebeln. Das führt dazu, dass Rechner, die beispielsweise Windows XP nutzen, nun vollständig offen stehen für eine ganze Fülle von Attacken, etwa wenn ein lokaler Nutzer ein Unternehmen ausspionieren will.

Zweifelhafte Entscheidungen

Für aktuelle Betriebssysteme sieht die Situation deutlich besser aus, arbeiten derzeit doch alle Hersteller eifrig an passenden Updates oder liefern sie sogar bereits aus. Doch auch hier wurde manch durchaus problematische Entscheidung getroffen. So verweist etwa Microsoft derzeit für die Bereinigung einer der beiden Spectre-Lücken auf Bios-Updates der Hersteller. Das ist insofern überraschend, als im betreffenden Fall die Fehlerbereinigung durch eine Aktualisierung der Prozessor-Firmware – des sogenannten Microcodes – erfolgt und so direkt beim Boot von Windows vorgenommen werden könnte, wie es bei anderen Microcode-Updates auch durchaus üblich ist.

Microsoft hat sich aber vorerst gegen diese Variante entschieden, mit für die Sicherheit unerfreulichen Konsequenzen. Immerhin zeige die Erfahrung, dass praktisch niemand Bios-Updates einspiele, betont Gruss. Zudem sei auch gar nicht gesagt, dass all die unterschiedlichen Gerätehersteller hier überhaupt entsprechende Bios-Updates schnüren werden, vor allem viele ältere Systeme würden ein solches wohl nie erhalten.

Warum sich Microsoft zu diesem Weg entschlossen hat, ist derzeit unbekannt. Klar ist lediglich, dass die Ausräumung der betreffenden Spectre-Varianten auf vielen Rechnern merkliche Performance-Auswirkungen hat, aber vergleichsweise schwer auszunutzen ist. Eventuell will also Microsoft noch warten, bis man den Leistungsverlust weiter minimieren konnte, bevor das Microcode-Update auch direkt über Windows – und damit wirklich an alle User – ausgeliefert wird.

Andere Perspektive

Unter Linux und Mac OS hat man sich hingegen anders entschieden: Beim freien Betriebssystem haben die ersten Distributionen bereits damit begonnen, entsprechende Microcode-Updates fix in den Startprozess aufzunehmen. Unter Mac OS ist ohnehin die normale Softwareaktualisierung auch für Firmware-Updates zuständig, laut Apple sollten die Nutzer also die Microcode-Updates automatisch bekommen. Und auch unter Googles Chrome OS sollen die Nutzer via Update vor allen bekannten Varianten von Meltdown und Spectre geschützt werden – oder wurden das bereits.

Keine klaren Lösungen

Während die Prozessorhersteller nach außen so tun, als habe man die Situation im Griff, sieht Gruss die aktuelle Situation etwas anders. So erinnert der Forscher einmal mehr daran, dass für eine komplette Bereinigung dieser Probleme Änderungen an der Hardware nötig seien. In Hinblick auf Meltdown wäre das auch kein großes Problem, hier könnte man einfach fix in der Hardware die Trennung des Adressbereichs zwischen Kernel- und User Space vornehmen. Das verhindere nicht nur die Meltdown-Attacken, sondern auch gleich noch eine ganze Reihe anderer Angriffe.

Schwieriger sehe es bei Spectre aus, hier wird im Hintergrund noch über mögliche Auswege diskutiert. Derzeit sei hier noch keine klare Richtung absehbar, es gebe zwar Vorschläge, aber einige davon hätten so massive Performance-Auswirkungen, dass sie unrealistisch erscheinen. So hat etwa Intel selbst einen Vorschlag gemacht, der einen Overhead in der Höhe von 50 bis 300 Prozent ergeben würde.

Flickwerk bei Software-Updates

Auch bei den aktuell vorgenommenen Softwaremaßnahmen müsse sich erst zeigen, ob diese wirklich greifen. So sei etwa die Entscheidung Mozillas, die Timer-Auflösung beim Firefox zu reduzieren, um Spectre-Angriffe via Javascript – und somit aus dem Web – zu unterbinden, prinzipiell zu begrüßen. Gleichzeitig gebe es aber noch andere Wege, an Timing-Informationen zu kommen, die solche Attacken erlauben.

Javascript Zero

Gruss und das Team an der TU Graz arbeiten deswegen derzeit an einem neuen Projekt, das sie Javascript Zero nennen: eine Implementation der Programmiersprache, bei der über Filterlisten (ähnlich wie bei einem Adblocker) festgelegt wird, was eine Funktion exakt darf. Details dazu will man in den kommenden Wochen präsentieren.

AMD

Den Umstand, dass AMD-Prozessoren nicht von Meltdown betroffen sind, führt Gruss auf eine eigentliche Schwäche dieser Chips zurück. Intel-Chips seien nämlich beim Spekulieren darüber, welches Ergebnis eine Berechnung haben wird, erheblich besser. Erst das erlaube aber realistische Angriffe, während hier AMD recht simple Schätzungen vornimmt. Darauf wetten, dass sich nicht doch noch ein Weg findet, Meltdown gegen AMD-CPUs zum Einsatz zu bringen, würde Gruss aber nicht. All das bisher Bekannte sei eben nur der aktuelle Stand des Wissens.

Einfach alles mitnehmen

Zur Praktikabilität von gezielten Attacken schränkt Gruss ein, dass man dafür natürlich einiges über den Zielrechner wissen muss. Freilich kann man stattdessen aber auch einfach den gesamten Hauptspeicher eines PCs auslesen und habe dann die Inhalte aller gerade laufenden Programme im Klartext – von Login-Keys bis zu Passwörtern. In internen Tests schaffe man es in zwei Stunden, 8 GB RAM komplett zu erfassen, dabei laufe ein Core auf Volllast. Dieses Verhalten sei übrigens auch der einzige Weg, um eine Attacke zu bemerken. Da es sich bei Meltdown und Spectre um Angriffe auf Hardwareebene handelt, hinterlassen diese auch keinerlei Spuren in den Logs eines Betriebssystems.

Spitze des Eisbergs

Der Forscher geht davon aus, dass all die aktuellen Entdeckungen nur die Spitze des Eisbergs darstellen, hier werde noch viel folgen. In Hinblick auf Side-Channel-Attacken, wie sie Meltdown und Spectre darstellen, habe man bisher gerade einmal an der Oberfläche gekratzt. Zumindest hat man es mit der aktuellen Aufmerksamkeit aber geschafft, etwas ernster genommen zu werden. Haben früher viele Unternehmen diesbezügliche Forschungsergebnisse schlicht ignoriert, interessiere man sich plötzlich auch für ältere Arbeiten der Grazer. (Andreas Proschofsky, 11.1.2018)