Neue Intel CPU-Sicherheitslücken ‒ Microarchitectural Data Sampling (MDS) ‒ und was Sie dagegen tun können!

Autor
Michael Kurth
Veröffentlicht
15. Mai 2019

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:

  1. Solche Sicherheitslücken können meist nur schwer mit einem Software-Update behoben werden. Beim CPU spricht man dabei von Microcode-Updates. Die Entwicklung von neuen, resistenten Prozessor-Modellen kann jedoch Jahre in Anspruch nehmen.
  2. Traditionelle Betriebssystem-Mechanismen wie Privilegien-Trennung können ausgehebelt werden, da es auf der Abstraktionsebene der CPU geteilte Ressourcen gibt, welche keine oder eine andere solche Separierung erlauben. Dieser Fakt ist auch der Grundstein für diese «Microarchitectural attacks».

Wie funktionieren «Microarchitectural Attacks»?

infoguard-cyber-security-mds-attackMicroarchitectural 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.

MDS geht noch einen Schritt weiter

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.

Wie können Sie sich gegen MDS schützen?

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.

Artikel teilen