Meltdown und Spectre

Bild: Google

 

Zwar sind die Sicherheitslücken in modernen CPUs von Intel, ARM, Apple, AMD und IBM noch nicht völlig in der Tiefe ausgelotet, es reicht aber aus, um eine erste Analyse des Gefahrenpotentials zu wagen, das von Spectre und Meltdown ausgeht. Derzeit sind drei Fehler mit verschiedenen Angriffsvektoren bekannt:

Dabei entsprechen die Varianten 1 und 2 dem Angriffsvector Spectre, Variante 3 entspricht Meltdown. Von Meltdown sind alle Intel CPUs seit 1995 mit wenigen Ausnahmen betroffen. Ausgenommen sind lediglich Atom-CPUs vor 2013 und Itanium-Prozessoren. Google hat eine Liste der betroffenen Prozessoren bereitgestellt. Die von Hause aus schwachen Atom-CPUs wurden bewusst nicht mit dieser Technik ausgestattet, da sie die Rechenleistungseffizienz pro Watt verringern kann.

Meltdown

Meltdown ist die am einfachsten zu behebende Variante. Diese Variante durchbricht die grundlegende Isolierung zwischen Anwendungen und dem Betriebssystem. Dieser Angriff ermöglicht es einem Programm, auf den Speicher und damit auch auf die Geheimnisse anderer Programme und des Betriebssystems zuzugreifen.

Wenn ein Computer über einen verwundbaren Prozessor verfügt und ein nicht gepatchtes Betriebssystem verwendet, ist es möglich, dass Informationen der gerade aktiven Anwendung durchsickern, die im Kernelspeicher vorgehalten werden. Dies gilt sowohl für Personal Computer als auch für die Cloud-Infrastruktur. Dazu muss allerdings bereits Zugriff auf das Gerät bestehen. Das Problem solle durch Kernel-Patches mittlerweile für alle Plattformen eingedämmt sein.

Spectre

Spectre dagegen betrifft alle CPUs von Intel, AMD und ARM in angegegebenen Zeitraum, Es ist schwerer, Spectre auszunutzen, allerdings trifft das auch auf die Gegenmaßnahmen zu. Spectre nutzt die bei modernen CPUs zur Leistungssteigerung eingesetzte «spekulative Ausführung« aus. Dabei berechnet die CPU die wahrscheinlichste nächste Berechnung. Diese werden in einem extra Zweig (branch) gespeichert. Liegt die CPU richtig, was überwiegend der Fall ist, wird mit diesem Branch weitergemacht. Wenn nicht, werden die Daten verworfen und in einem anderen Branch fortgefahren.

Attacke per Browser

Hier können nun manipulierte Anwendungen lokal oder als Web-App oder Browser mittels einer sehr präzise getimten Side-Channel-Attack Daten aus dem Cache abgegriffen werden. Diese Lücke lässt sich allein mit Kernel-Patches nicht schliessen, dazu müssen viele Anwendungen mit einem aktualisierten Compiler neu gebaut werden. Deshalb werden wir mit Spectre noch lange zu tun haben. Denkt man beispielsweise an Debian, so müssen alle Pakete für jede der derzeit unterstützten zehn Architekturen gebaut werden.

Bei virtuellen Maschinen und Containern ist die Situation nochmals kritischer. Hier kann unter Umständen sowohl der Speicher der Host-Mschine und der von anderen VMs auf dem gleichen Host gefährdet sein. Zudem können in solchen Umgebungen die Leistungseinbußen wie bei großen Datenbanken besonders zu Buche schlagen.

Kernel, Browser und Microcode aktualisieren

Wichtig ist es, Browser so gut wie möglich abzusichern. Firefox 57.0.4 liegt da momentan vorne, da es Versuche, per Sprectre Daten abzugreifen, erschwert. Bei Chrome/Chromium und den auf der gleichen Engine basierenden Opera und Vivaldi kann über chrome://flags die Funktion enable-site-per-process aktiviert werden, die jede offene Webseite in einem eigenen Prozess rendert. Google Chrome 64 erscheint am 23. Januar und hat diese Einstellung von Hause aus aktiviert. Microsoft Edge wird am 9 Januar gegen Spectre aktualisiert.

 

info heading

info content

 

Anwender egal welcher Distribution sollten neben dem Browser auch ihre Kernel aktualisieren. Intel bietet zudem einen ersten aktualisierten Microcode mit der Versionnummer  3.20171215.1 an, der in Debian Unstable und anderen Distributionen bereits verfügbar ist. Weitere werden folgen. Mit einem Update des Microcodes kann Intel Fehlfunktionen beheben, ohne dass die CPU ausgetauscht wird. Wie weit das für Spectre gelingt ist noch unklar. Bei Debian könnte dies die Diskussion um nicht um freie Software erneut anfeuern, handelt es sich doch beim Micocode um Software aus dem Non-free-Repository.

Beitrag kommentieren

Alle Kommentare