InfoGuard AG (Hauptsitz)
Lindenstrasse 10
6340 Baar
Schweiz
InfoGuard AG
Stauffacherstrasse 141
3014 Bern
Schweiz
InfoGuard Deutschland GmbH
Landsberger Straße 302
80687 München
Deutschland
Gestern wurden weitere Intel CPU-Sicherheitslücken von mehreren internationalen Forschungsgruppen veröffentlicht. Ähnlich wie bei Spectre und Meltdown kann ein Angreifer CPU-Performance-Optimierungen ausnutzen und damit privilegierte und sensitive Information stehlen. In diesem Blogartikel beleuchten wir, was diese neuen Sicherheitslücken – die fast alle Intel-Prozessoren betreffen – für Ihre Cyber Security bedeuten und was Sie dagegen tun können.
Im Januar 2018 liess die Veröffentlichung von Spectre und Meltdown die Cyber Security Community aufhorchen. Damals wurden mehrere CPU-Sicherheitslücken von Sicherheitsforschern entdeckt, welche es einem Angreifer erlaubten, Sicherheitsmechanismen von herkömmlichen Betriebssystemen zu umgehen. Die Auswirkungen der MDS-Schwachstellen sind hier sehr ähnlich. MDS kann CPU-Funktionalitäten ausnutzen, um Daten aus Prozessen (auch privilegierten) auszulesen, beispielsweise Passwörter.
Damit gehören diese Sicherheitslücken in die Klasse der «Microarchitectural attacks». Im Gegensatz zu klassischen Vulnerabilities gibt es hierbei keinen Bug in einer Software-Komponente. Der Fehler liegt im Prozessor selbst, also quasi im Silikon des Chips. Dies hat mehrere Implikationen:
Microarchitectural Side-Channel-Angriffe kann mit der Analogie eines Tresorknackers erklärt werden. Der Angreifer versucht verschiedene Zahlkombinationen aus, wofür er zum Abhören ein Stethoskop verwendet. Dabei nimmt er die Geräusche der Mechanik des Tresors bei unterschiedlichen Zahleneingaben wahr. Falls sich die Mechanik bei einer erfolgreichen Teileingabe der Zahlenkombination anders verhält, kann der Angreifer dies nutzen, um die richtige Kombination zu rekonstruieren. Zusammengefasst: Der Tresorknacker nutzt eine geteilte Ressource, nämlich die Luft zwischen ihm und der Tresormechanik, welche die Geräusche nach aussen tragen.
Bei Prozessoren ist der Cache eine solche geteilte Ressource und deshalb ein beliebtes Ziel für «Microarchitectural attacks». Die Caches dienen primär dazu, langsame Datenzugriffe auf das Main Memory zu optimieren. Dabei werden Daten, welche gerade genutzt oder bald benötigt werden, zwischengespeichert. Spectre und Meltdown basieren zusätzlich auf spekulativer und out-of-order Ausführung von Code. Dies sind leistungsorientierte Optimierungen des Prozessors, damit Code möglichst schnell ausgeführt werden kann. Out-of-order Ausführung heisst konkret, dass der Prozessor die Zeiten, in welchen er beispielsweise auf Daten vom Hauptspeicher wartet, mit Instruktionen auffüllt, welche bereits jetzt verfügbar sind. Bei der spekulativen Ausführung werden dagegen Ausführungsstatistiken und Instruktionen, welche mehrere Ausführungspfade haben, kombiniert. Dabei wird der Pfad, welcher am wahrscheinlichsten ist, berechnet, noch bevor der Prozessor überhaupt weiss, dass dieser auch genommen wird. Bei Spectre und Meltdown wurde genau dies ausgenutzt.
Anstelle des Caches als geteilte Ressource, werden die Line Fill Buffers, Load Ports und Store Buffers in der Instruktion und Memory Pipeline für die Angriffe genutzt. Durch die Manipulation des spekulativen Entscheidungsprozesses, können über dies Buffer Daten von anderen Threats, Prozessen, VMs und secure enclaves (SGX) ausgelesen werden, um an sicherheitsrelevante Daten wie z.B. Passwörter zu gelangen. Die MDS Vulnerabilities werden weiter kategorisiert in RIDL (Rogue In-Flight Data Load), welche die Line-Fill Buffers und Load Ports benutzt und der Fallout Exploit, welche sich die Store Buffers zu Nutze macht. Die Sicherheitsforscher, welche hinter MDS stehen, hatten sogar das Problem, dass sie über diesen Side Channel an zu viele Informationen kamen. So mussten sie einen geschickten Filter-Algorithmus verwenden, damit die sicherheitsrelevanten Daten von den andern getrennt werden konnten.
Generell kann aber gesagt werden, dass der Angriffsaufwand sehr hoch ist. Es kann mehre Stunden dauern, um z.B. ein Password über RIDL zu stehlen. Aber leider ist es MDS möglich, bestehende Software-Patches gegen die Spectre- und Meltdown-Varianten zu umgehen. Betroffen sind alle Intel CPUs, abgesehen von der Atom-Reihe. Dies heisst leider auch, dass auch die neuste Intel Consumer-Reihe, welche gegen gewisse Spectre-Varianten in Hardware gehärtet wurde, betroffen ist. Detaillierte technische Informationen zum Angriff finden Sie hier.
Das Ausführen von MDS erfordert die Code-Ausführung auf einem lokalen System. Es gibt zwar einen Proof of Concept Exploit in JavaScript, dieser funktioniert aber nur auf einer abgeänderten Version von Firefox, welche eine Gegenmassnahme gegen solche Side Channels deaktiviert. Daher ist MDS als «Privileg Escalation» zu verstehen. Eine Gegenmassnahme ist es, Simultaneous Multi-Threading (SMT) zu deaktivieren. Dies kann aber eine hohe Performance-Einbusse mit sich führen. Intel hat Microcode-Updates herausgegeben, welche gewisse Teile von MDS erschweren oder verunmöglichen sollen. Diese Updates sind jedoch an Betriebssysteme und Hypervisor Updates gekoppelt. Das Intel Advisory zu MDS finden Sie hier. Microsoft hat ausserdem ein Advisory zu MDS veröffentlicht, welches Sie hier einsehen können. Weitere Möglichkeiten sind das Entdecken eines Angriffs in der Delivery und Exploitation-Phase.
Unser InfoGuard Cyber Defence Center bietet Ihnen hierzu ein breites Serviceangebot für das frühzeitige Erkennen von Angriffen und die gezielte Reaktion darauf. Nach unserem aktuellen Wissensstand sind aber weder Spectre, Meltdown noch MDS bei realen Angriffen verwendet worden.