Meltdown und Spectre sind neue Prozessorschwachstellen, die die meisten PCs und Smartphones betreffen. Es sind zwar schon Patches verfügbar, jedoch beeinträchtigen diese die Prozessorleistung.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Sicherheit von Webanwendungen?
Angriff mit Cross-Site-Scripting
Cross-Site-Request-Forgery
Was ist ein Pufferüberlauf?
Was ist SQL-Injection?
Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!
Link zum Artikel kopieren
Meltdown und Spectre sind vor Kurzem in Intel-, AMD-, Apple- und ARM-Prozessorchips entdeckte Schwachstellen. Diese Schwachstellen sind das Ergebnis eines schwerwiegenden Designfehlers in den betroffenen Chips, und die Entdeckung dieses Problems hat die Entwickler zu einer Überarbeitung der Software von Windows-, Mac- und Linux-Betriebssystemen gezwungen, um die Schwachstelle zu bekämpfen und Angreifer daran zu hindern, sie auszunutzen.
Diese Schwachstellen wurden von Forschern bei Googles „Project Zero“ entdeckt, einem Team, das sich der Suche nach Sicherheitsmängeln widmet, bevor sie von Angreifern ausgenutzt werden können. Und derzeit sind keine Missbrauchsfälle durch Meltdown oder Spectre bekannt. Die Sicherheitsteams großer Technologieunternehmen wie Apple, Intel und Microsoft sowie die Entwickler der Open-Source Linux setzen nun starke Ressourcen ein, um sicherzustellen, dass ihre Prozessoren und Betriebssysteme vor böswilligen Angriffen geschützt sind.
Bis auf wenige Ausnahmen ist jeder gefährdet, der einen PC und/oder ein Smartphone besitzt. Laut Google ist jedes Gerät mit Intel-Prozessorchip, das nach 1995 hergestellt wurde, betroffen. AMD- und ARM-Chips sind zwar schwieriger auszunutzen, sie sind aber auch gefährdet.
Neben dem Austausch des Prozessors eines PCs besteht die einzige Möglichkeit, die Schwachstelle zu schließen, darin, das Betriebssystem zu patchen. Apple führte Anfang Dezember unauffällig einen Meltdown-Patch für sein OSX ein, während Microsoft am 3. Januar einen Windows-Patch veröffentlichte und die Linux-Entwickler immer noch darum ringen, einen Patch zu erstellen.
Ein unglücklicher Nebeneffekt dieser Meltdown-Patches ist, dass sie die Rechengeschwindigkeit der Computer, die das gepatchte Betriebssystem verwenden, verringern. Diese Verlangsamungen reduzieren die Performance um schätzungsweise 5–30 %, was jedoch stark vom Typ des Chips und den auszuführenden Aufgaben abhängt.
Sowohl Meltdown als auch Spectre sind Schwachstellen, die bei der Ausführung eines speziellen Low-Level-Codes namens „Kernel-Code“ entstehen, der speziell während eines Prozesses ausgeführt wird, der „speculative execution“ (spekulative Ausführung) genannt wird.
Die spekulative Ausführung lässt sich vielleicht am einfachsten mit einer Metapher erklären. Stellen Sie sich eine Wanderin vor, die sich im Wald verirrt hat und auf eine Gabelung stößt, die zwei ungefähr parallele Wege bildet: Ein Weg bringt die Wanderin nach Hause, der andere nicht. Anstatt lange darauf zu warten, bis ein anderer Wanderer kommt und ihr den Weg zeigt, wählt sie den Weg, von dem sie glaubt, dass er sie am ehesten nach Hause bringt. Irgendwann auf der Wanderung stößt sie dann auf eine Markierung, und wenn diese ihr anzeigt, dass sie sich auf dem richtigen Weg befindet, geht sie diesen Weg weiter und kommt nach Hause. Wenn ihr die Markierung jedoch anzeigt, dass sie sich auf dem falschen Weg befindet, geht sie schnell zurück und geht den anderen Weg, so dass sie nicht schlechter dran ist, als wenn sie sich noch am Anfang des Weges befände und auf Hinweise eines anderen Wanderers wartete.
Viele moderne Prozessoren wenden eine ähnliche Technik namens spekulative Ausführung an, bei der die CPU versucht zu erraten, welcher Code als nächstes ausgeführt werden muss, und ihn dann ausführt, bevor sie dazu aufgefordert wird. Wenn sich dann herausstellt, dass der ausgeführte Code nicht benötigt wurde, werden die Änderungen wieder rückgängig gemacht. Dadurch soll Zeit gespart und die Performance erhöht werden.
Berichte über die Meltdown/Spectre-Schwachstelle deuten darauf hin, dass Intel-CPUs möglicherweise spekulativ Code ausführen, ohne dass wichtige Sicherheitsüberprüfungen gefordert werden. Es wäre möglich, eine Software zu schreiben, mit der überprüft wird, ob der Prozessor eine Anweisung ausgeführt hat, die normalerweise durch diese Sicherheitsüberprüfungen blockiert würde.
Diese Fehlbehandlung der spekulativen Ausführung schafft eine CPU-Schwachstelle, die ein Angreifer ausnutzen kann, um auf sehr sensible Daten im Kernel-Speicher zuzugreifen, wie z. B. Passwörter, Verschlüsselungsschlüssel, persönliche Fotos, E-Mails usw.
Der Kernel ist das Programm im Herzen des Betriebssystems eines Computers. Er hat die vollständige Kontrolle über das Betriebssystem und verwaltet alles vom Hochfahren bis zur Übergabe des Speichers. Der Kernel ist auch für das Senden von Datenverarbeitungs-Anweisungen an die CPU (Central Processing Unit) verantwortlich. Die meisten CPUs wechseln ständig zwischen Kernel-Modus und Benutzermodus hin und her.
Im Kernel-Modus führt die CPU Code aus, der uneingeschränkten Zugriff auf die Hardware und den Speicher des Computers hat. Dieser Modus ist im Allgemeinen für die niedrigsten und vertrauenswürdigsten Operationen reserviert. Abstürze, die auftreten, während sich die CPU im Kernel-Modus befindet, können katastrophal enden: Sie können das gesamte Betriebssystem zum Absturz bringen.
Im Benutzermodus kann der ausgeführte Code nicht auf Hardware oder Referenzspeicher zugreifen, sondern muss an System-APIs delegieren (System-APIs können Kernel-Modus-Funktionen ausführen, die von Software im Benutzermodus mit den entsprechenden Berechtigungen angefordert werden können). Abstürze im Benutzermodus finden normalerweise isoliert statt und das System ist wiederherstellbar. Der meiste Code wird im Benutzermodus ausgeführt.
Die Korrektur im Meltdown-Patch beinhaltet eine drastischere Trennung des Kernel-Speichers von den Benutzerprozessen. Dies erfolgt durch eine Methode namens „Kernel Page Table Isolation“ (KPTI). Die KPTI verschiebt Kernel-Modus-Operationen in einen von den Benutzermodus-Operationen vollständig getrennten Adressraum. Das hat zur Folge, dass der Wechsel zwischen Kernel- und Benutzermodus erheblich mehr Zeit in Anspruch nimmt.
Um dies zu veranschaulichen, stellen Sie sich einen Imbissstand vor, der nur zwei Artikel verkauft: Hot Dogs und kalte Limonade. Der Verkäufer im Imbissstand kann sowohl den Dampfer mit den Hot Dogs als auch den Kühlschrank mit den kalten Limonaden recht leicht erreichen, und die Geschäfte gehen ziemlich zügig voran. Stellen Sie sich nun vor, jetzt kommt der Gesundheitsinspektor und verlangt, dass die warmen und kalten Speisen in getrennten Gebäuden aufbewahrt werden. Jetzt kann der Verkäufer zwar immer noch leicht die Hot Dogs erreichen, muss aber für jede Limonade aus dem Stand hinaus und die Straße entlang gehen, um sie zu holen. Dies würde dazu führen, dass die Verkäufe des Imbissstandes viel langsamer laufen, insbesondere wenn die Kunden viele Limonaden bestellen. Dies ähnelt der Art und Weise, wie die KPTI die Performance eines Betriebssystems verlangsamen kann.
Sowohl Meltdown als auch Spectre sind Schwachstellen, die durch die Art und Weise entstehen, wie Prozessoren die spekulative Ausführung umsetzen, aber sie unterscheiden sich etwas in ihrer Arbeitsweise und in der Art der betroffenen Prozessoren.
Meltdown betrifft nur Intel- und Apple-Prozessoren und kann ausgenutzt werden, um Informationen durchsickern zu lassen, die als Folge von Code offengelegt werden, den die Prozessoren während der spekulativen Ausführung ausführen. Meltdown ist leichter auszunutzen als Spectre und wurde von Sicherheitsexperten als das größere Risiko bezeichnet. Glücklicherweise lässt sich Meltdown auch einfacher beheben.
Spectre betrifft Intel-, Apple-, ARM- und AMD-Prozessoren und kann ausgenutzt werden, um Prozessoren dazu zu bringen, Code auszuführen, den sie nicht ausführen dürfen. Laut den Sicherheitsexperten von Google ist Spectre viel schwieriger auszunutzen als Meltdown, aber es ist auch viel schwieriger zu bekämpfen.
Falls Sie mehr über die technischen Einzelheiten erfahren möchten, können Sie sowohl auf das vollständige Meltdown-Paper als auch auf das Spectre-Paper zugreifen.