Was hat es mit den Prozessor Sicherheitslücken Meltdown und Spectre zu tun?

Ich berichte selten über Sicherheitslücken, da nicht alle von großer Relevanz sind und in vielen Fällen wir viel heißer gekocht als gegessen wird. Die meisten Sicherheitslücken bleiben so oder so der Masse der Benutzer unbekannt. Die Probleme rund um Meltdown und Spectre sind hingegen etwas interessanter und durchaus erwähnenswert, da sie Hardware Sicherheitslücken bzw. Hardwareimplementierungsfehler sind.

Lange Erläuterungen, um den Artikel enorm aufquellen zu lassen möchte ich vermeiden, weswegen nachfolgende Informationen möglichst kompakt dargestellt werden.

Meltdown

Spectre

out-of-order execution

Programme werden in der Regel so abgearbeitet, wie diese programmiert worden sind. Jeder Befehl wird also der Reihe nach ausgeführt ohne irgendeine Interpretation. Prozessoren, die diese Technologie implementieren identifizieren Stellen im Programmcode, die unabhängig voneinander, parallel ausgeführt werden können. Dadurch erreicht man eine Parallelisierung auf Hardwareebene, was zu einer Beschleunigung des Programmablaufs führt.

Es geht selbstverständlich genauer und tiefgründiger. Wer sich damit näher beschäftigen möchte, dem sei folgender Link empfohlen: http://technet.servermeile.com/intel-hyper-threading-technology/

Wer schon einmal den Begriff Hyper-Threading gehört hat, kann nun mit Hintergrundwissen punkten!

speculative exection

Bei dieser Technik versucht ein Mikroprozessor innerhalb eines Programms eine Sprungvorhersage durchzuführen. Programme sind selten linear und bestehen aus mehreren Prozeduraufrufen. Erkennt ein Prozessor nun, dass in einigen Millisekunden ein bestimmter Teil ausgeführt werden soll, noch bevor der vorherige fertig ist, kann er dadurch parallel den noch nicht ausgeführten Teil ganz oder teilweise ausführen. Damit wird ähnlich wie bei der out-of-order execution Zeit gespart und Ressourcen genutzt, um eine Hardware Parallelisierung zu ermöglichen.

Fazit

Die als Meltdown getaufte Lücke ermöglicht damit Zugriff auf Speicher fremder Prozesse. Wieso ist das schlimm? Stehen temporär gespeicherte Passwörter im Prozessorkontrollblock (also im reservierten Bereich des RAMs für einen Prozess), so ließen sich diese auslesen. Man könnte die Lücke aber auch nutzen, um eine weitere Lücke im betroffenen Prozess auszunutzen. Das heißt: Mit Meltdown kommen wir in den Speicher eines Prozesses, der Programm A ausführt. Da Programm A auch eine Sicherheitslücke hat, können wir diese ausnutzen und die richtigen Programmcodes und Daten in dessen Speicher eintragen. Dadurch könnte beispielsweise ein administrativer Zugang ermöglich werden. Ähnlich verhält es sich bei Spectre.

 

Artikel teilen:

Kommentar verfassen