Spectre und Meltdown: ist jetzt jede CPU kaputt?

115

Die IT-Branche wurde in der vergangenen Woche aufgemischt durch zwei Angriffszenarien auf die Arbeitsweise von CPUs. Während Angriffe auf Lücken im Betriebssystem oder in Anwendungssoftware durchaus häufiger vorkommen, sehen wir Angriffe auf CPUs eher selten. Vor allem auch nicht in der jetzt bekannt gewordenen Dimension.

Der nachfolgende Artikel erläutert kurz die beiden Schwachstellen Spectre und Meltdown, geht kurz auf die Wirkungsweise und mögliche Gegenmaßnahmen ein, und umreißt zum Schluss die bisherigen Aussagen und ggf. Updates der betroffenen Hersteller.

Spectre und Meltdown – was ist das eigentlich genau?

Etwa Mitte 2017 haben verschiedene Sicherheitsforscher unabhängig voneinander zwei Schwachstellen in Intel-CPUs entdeckt. Beide erlauben, dass ein Prozess innerhalb eines Computers auf Speicherbereiche zugreifen kann, auf die der Prozess eigentlich nicht zugreifen können dürfte. Solche Lücken können grundsätzlich dazu genutzt werden, dass ein Prozess z. B. Passwörter oder Sicherheitszertifikate ausliest und damit Unfug treibt. Die beiden Angriffe wurden von den Forschern Spectre und Meltdown genannt. Manchmal liest man auch von den Varianten 1, 2 und 3. Die Varianten 1 und 2 sind dabei als Spectre zusammen gefasst, mit Variante 3 ist die Lücke Meltdown gemeint. Eine umfangreiche wissenschaftliche Betrachtung kann man in einem Blog-Artikel des Google Project Zero Teams nachlesen. Wer es weniger wissenschaftlich, aber trotzdem etwas technischer möchte, liest am besten bei Heise nach.

Die Angriffe sind sogenannte Seitenkanal-Angriffe (engl. side channel): man wertet eine Information aus, über die man dann indirekt auf die eigentliche interessante Information schließt. Im Falle von Spectre und Meltdown ist es für den angreifenden Prozess insbesondere wichtig, möglichst genaue Timing-Informationen zu haben. Die Angriffe konnten per Proof of Concept auf einem Intel Xeon Haswell (E5-1650v3), einem AMD FX-8320, einem AMD PRO und einem ARM Cortex A57 nachgewiesen werden. Die Meltdown-Lücke nutzt dabei eine Schwachstelle der sog. out-of-order execution, die beiden Spectre-Angriffe nutzen Lücken in der sog. speculative execution.

Beide Konzepte wurden von Intel 1995 mit dem Pentium Pro im CPU-Markt eingeführt und werden zwischenzeitlich von jedem CPU-Hersteller in aktuellen Modellen benutzt. Moderne CPUs arbeiten intern sehr viel schneller, als der angeschlossene Hauptspeicher. Also suchen die CPU-Hersteller nach Mechanismen, diese Diskrepanz in der Verarbeitungsgeschwindigkeit aufzufangen. CPUs sind dazu in der Lage, verschiedene Programmzweige parallel im Voraus zu berechnen. Wenn das Programm dann an der Verzweigungsstelle angekommen ist, ist jeder der möglichen Zweige schon fertig gerechnet. Die zwar berechneten aber nicht benötigten Zweige werden verworfen. Durch geschickten Programmcode und einen Seitenkanal-Angriff über das CPU-Timing wird es nun möglich, Daten aus den vorausberechneten Zweigen auszulesen. Dies geschieht unmittelbar bevor die CPU diese nicht verwendeten Zweige verwirft und vorbei an Sicherheitsmechanismen der CPU, die genau das verhindern sollen.

Wie in der Sicherheitsbranche üblich, wurden diese Lücken an die betroffenen Hersteller gemeldet. Damit räumt man Herstellern Zeit ein zur Nachbesserung, bevor Forscher ihre Erkenntnissen veröffentlichen. Eine gemeinsame Veröffentlichung war eigentlich für den 9. Januar 2018 geplant. Wegen einer Unachtsamkeit in Updates des Linux-Quellcodes und aufmerksamen Linux-Kernel-Entwicklern kam nun alles ein paar Tage früher ans Licht der Öffentlichkeit.

Was genau ist daran jetzt gefährlich?

Es gibt einen wesentlichen Unterschied zwischen den beiden Angriffen. Der Unterschied wirkt sich aus auf die Gefährlichkeit, auf die Art der abgreifbaren Daten, und schließlich auch auf die erforderlichen Gegenmaßnahmen, um die Angriffsfläche möglichst klein zu halten.

Per Spectre (Variante 1 und 2, CVE-2017-5753 und CVE-2017-5715) ist es möglich, dass Teile eines Prozesses auf Speicherbereiche zugreifen können, auf die sie normalerweise keinen Zugriff haben sollen oder dürfen. Es wird also z. B. möglich, aus einer sog. Sandbox auszubrechen und Speicherinhalte außerhalb dieser Sandbox auszulesen. Ein solcher Angriff kann z. B. per Javascript innerhalb eines Browsers genutzt werden: Ein böswilliges Javascript Schadprogramm in einem Browser-Tab kann darüber auf Daten im Speicherbereich eines anderen Tabs des selben Browser-Prozesses zugreifen. Damit lassen sich z. B. vertrauliche Informationen wie Passwörter abgreifen, oder auch die Session-ID einer gerade laufenden Sitzung. Hat man eine Session-ID, kann man damit z. B. auch Mehr-Faktor-Authentifizierung umgehen. Die Sicherheitsbranche ist sich einig, dass Angriffe per schadhaftem Javascript-Code der wahrscheinlichste Angriffsvektor auf Spectre in nächster Zeit sein wird. Der Schadcode kann dabei z. B. unbemerkt per Bannerwerbung in den Browser eingeschleust werden. Grundsätzlich lässt sich ein solcher Angriff natürlich auch in anderen Programmiersprachen umsetzen, und bleibt nicht auf Javascript beschränkt.

Weil das Fehlverhalten aus einem Design-Fehler im Microcode der CPU resultiert, lässt sich der Fehler auch nicht so ohne weiteres per Software-Update ausbügeln. Mehr zu den möglichen Gegenmaßnahmen finden Sie weiter unten in diesem Artkel.

Der als Meltdown bekannte Angriff (auch Variante 3 bzw. CVE-2017-5754) kann von einem sog. nicht privilegierten Benutzer-Prozess auf geschützte Speicherbereiche zugreifen, die eigentlich dem Betriebssystemkern vorbehalten sind. Auf solche Speicherbereiche hat normalerweise auch nur der Betriebssystemkern (Kernel) Zugriff. Im Speicherbereich des Kernels können sicherheitsrelevante Informationen liegen wie z. B. Admin-Passwörter, Sicherheits-Zertifikate für zentrale Dienste u. ä. Auch dieser Fehler ist auf eine Schwachstelle im Design der  Microarchitektur von CPUs zurückzuführen. Ein Angriff lässt sich deshalb per Software-Update bestenfalls erschweren, aber nicht grundsätzlich vermeiden.

Bisher sind keine Angriffe außerhalb der Forschungsarbeiten bekannt, die auf die veröffentlichten Lücken abzielen. …

…. weiterlesen auf
https://www.boston-it.de/2018/01/08/spectre-und-meltdown-ist-jetzt-jede-cpu-kaputt/