Sicherheitslücken in CPUs: Spectre und Meltdown kurz erklärt
Sicherheitslücken in CPUs: Spectre und Meltdown kurz erklärt
Sicherheitslücken in CPUs: Spectre und Meltdown kurz erklärt

Sicherheitslücken in CPUs: Spectre und Meltdown kurz erklärt

chrisign gmbh
chrisign gmbh Weinfelden, 30.01.2018

Es ist zurzeit in aller Munde: In den CPUs von den drei grossen Prozessor-Herstellern, Intel, AMD und ARM, sind Sicherheitslücken entdeckt worden. Milliarden Handys, PCs und Server sind weltweit betroffen. Diverse Chip-Hersteller und Softwareanbieter arbeiten derzeit an Updates, um das Problem schnellstmöglich zu lösen.

Funktionsweise des Prozessors

Um das Problem von Spectre und Meltdown zu verstehen, muss man sich zuerst mit der Funktionsweise der CPU  (Prozessor) beschäftigen.

Die CPU ist in verschiedene Adressräume aufgeteilt, wobei die Prozesse darin geschützt voneinander ablaufen. Damit neue Prozesse ausgeführt werden können, muss der erste Prozess beendet, aus den Registern der CPU gelöscht und der neue Prozess geladen werden. So auch separat das Zusammenspiel mit dem Kernel. Dies ist der zentrale Bestandteil eines Betriebssystems, in dem die Prozess- und Datenorganisation festgelegt ist, auf der alle weiteren Software-Bestandteile des Betriebssystems aufbauen. Das Zusammenspiel benötigt Zeit, deshalb bindet man den Kernel in jeden Adressraum mit ein. Dazu gibt es Zugriffskontrollen, sodass nur über definierte und erlaubte Schnittstellen zugegriffen werden kann.

Damit die Prozesse der CPU nicht einzeln nacheinander ausgeführt werden müssen, werden die Befehle zudem in eine Pipeline geschickt. In jedem Takt der Pipeline wird ein neuer Befehl begonnen und in mehreren Stufen ausgeführt. Wenn Prozesse voneinander abhängig sind muss zuerst der vorherige abgeschlossen werden. Während dieser «Wartezeit» macht die CPU eine Vorhersage (Branch Prediction) und führt diese aus. Falls die Vorhersage falsch war, werden die falsch ausgeführten Befehle verworfen, jedoch nicht aus dem Cache gelöscht.

Die aufgetretenen Sicherheitslücken werden in zwei Kategorien unterteilt:

Meltdown

Durch Meltdown können die Zugriffskontrollen des Kernels umgangen und so die gesamten Prozesse ausgelesen werden. Es macht sich Falschvorhersagen und die daraus resultierenden Speichervorgänge, die nie hätten durchgeführt werden sollen, zunutze. Es können beliebige Daten in die CPU Register geladen und Befehle darauf ausgeführt werden. So kann im CPU Cache eine Markierung hinterlassen werden. Nun kann mit einem Angriff geprüft werden, ob diese Markierung im CPU Cache vorhanden ist oder nicht. Somit hat man einen Sender / Empfänger zur Verfügung, um schliesslich den Kernelspeicher zu reproduzieren.

Spectre

Die Methode Spectre funktioniert ähnlich wie Meltdown, konstruiert jedoch keinen eigenen Sender, sondern nutzt bereits vorhandene Prozesse aus anderen Programmen und beeinflusst dann die CPU so, dass gewünschte spekulativ ausgeführte Prozesse gestartet werden.

Was tun?

Gegen Meltdown-Angriffe an Intel-Prozessoren gibt es bereits Patches für relevante Linux- und Windows-Systeme, die aber noch nicht problemfrei laufen. Für Spectre hingegen ist die Problemlösung etwas aufwändiger, da die Vorhersagen in kritischen Situationen abgeschaltet werden sollen. Microsoft und Intel arbeiten bereits an einer Kombination aus Patch und CPU-Microcode-Update zur Abwehr von Spectre auf Betriebssystem-Stufe. Mit Performance-Einbussen muss gerechnet werden. Zum Schutz für andere Prozesse als das Betriebssystem stehen aber noch keine Mechanismen zur Diskussion. Es wird weiter daran gearbeitet.

Bitte beachten Sie, dass Ihr Beitrag erst nach manueller Prüfung veröffentlicht wird.
071 622 67 41