So funktionieren Spectre und Meltdown

83
Special Torsten Vogel Als bevorzugte Quelle auf Google hinzufügen
Spectre kann als undektierbarer Geist potentiell überall im System mithören.
Quelle: Natascha Eibl

Die Gefahr durch und die Lösung von Sicherheitsproblemen in allen aktuellen CPUs beherrscht seit letzter Woche die Medienlandschaft - weit über den IT-Bereich hinaus. Aber was sind Spectre und Meltdown eigentlich? Wie funktionieren sie?

Spectre & Meltdown: Der Angriff

Dieser Artikel nutzt nicht ohne Grund häufig das Wort "nominell". Neben dem geplanten Programmablauf ergeben sich aus obigen Mechanismen nämlich auch unbeabsichtigte Effekte - und genau diese können Sicherheitsmechanismen unterlaufen.

Zugriff 1: Meltdown

Der etwas stärker beachtete Angriff nutzt hierbei eine bislang nur für Intel-Prozessoren nachgewiesene Eigenschaft aus. Diese führen unter anderem indirekte Speicherzugriffe spekulativ vor deren Aufruf durch einen Prozess aus - und auch vor Abschluss einer Prüfung des Privilege Levels. Das heißt Zugriffe auf den Kernel-Space können auch dann spekulativ ausgeführt werden, wenn der Programmcode zu einem Prozess im User-Space gehört. Und wenn ein Angreifer sicherstellt, dass der logische Programmablauf die Instruktion nie aktiv aufruft, bekommt er nicht einmal Ärger mit der Privilege-Überwachung, da der Prozessor die vermeintlich unerwünscht ausgeforderte Instruktion einfach verwirft - womit aus Sicht der Software auch die Datensicherheit sichergestellt ist.

Meltdown 'schmilzt' die Barriere zwischen User- und Kernel-Space. Quelle: Natascha Eibl Meltdown "schmilzt" die Barriere zwischen User- und Kernel-Space. Auf Prozessor-Ebene gibt es hiervon aber eine Ausnahme: Indirekte Speicherzugriffe rufen eine bestimmte Speicher-Adresse in Abhängigkeit von einem anderen Wert auf. Beispielsweise ein bestimmtes Datenfragment im User-Space in Abhängigkeit vom Wert eines Bits im Kernel-Space. In diesem Fall wird das eigentlich unzugängliche Bit nur intern von der CPU verwendet und auch das Resultat des so initiierten Ladevorganges wird nach Feststellung der Fehlspekulation wieder verworfen, ein Lesezugriff durch den User-Space-Prozess wurde verhindert. Aber während einer spekulativen Ausführung erfasste auch das Caching-System das Datenfragment und speicherte es für eine etwaige künftige (legitime) Verwendung zwischen... .

Zugriff 2: Spectre

Auch der zweite Angriff zielt darauf ab, einen illegitimen Datenzugriff bis in den Cache ausführen zu lassen, bevor dieser abgebrochen wird. Im Gegensatz zu Meltdown arbeitet Spectre aber nicht im eigenen Adressraum und versucht dort, die Grenze zwischen Kernel- und User-Space zu schmelzen. Stattdessen nutzt man gezielt die Arbeit fremder Prozesse. Auch diese führen regelmäßig verschiedene Arten abhängiger und indirekter Speicherzugriffe durch - natürlich auf Adressen, die sie nutzen dürfen. Auch diese versucht die CPU unter Nutzung ihrer Sprungvorhersage, spekulativ zu beschleunigen. Der wunde Punkt: Letztere hat nicht die nötige Zeit, um zwischen gerade laufenden Prozessen zu unterscheiden - und aus Performance-Sicht ist dies auch gar nicht wünschenswert, denn viele Operationen laufen in verschiedenen Programmen gleich ab und können somit von der gleichen Optimierung profitieren.

Spectre kann als undektierbarer Geist potentiell überall im System mithören. Quelle: Natascha Eibl Spectre kann als undektierbarer Geist potentiell überall im System mithören. Spectre stellt nun im eigenen User-Space Codefragmente des angegriffenen Prozesses nach und trainiert mit diesen die Sprungvorhersage auf ein vom Angreifer gewünschtes Ziel. Startet später der Ziel-Prozess seine Kopie des Codes, so wird die trainierte Sprungvorhersage fälschlicherweise eine spekulative Ausführung anhand der vom Angreifer trainierten Parameter ausführen. Dieses Verfahren lässt sich nun erneut nutzen, um abhängig von eigentlich unerreichbaren Informationen spezifische Lademuster zu initiieren. Im einfachen Fall (Spectre 1), indem man Sicherheitschecks des Ziels selbst übergeht und darauf folgende sicherheitsrelevante Instruktionen in missbräuchlicher Weise spekulativ ausführen lässt, im komplexeren Fall (Spectre 2), indem man einen indirekten Sprung zu einer beliebigen, vom Angreifer gewünschten (Lade-)Instruktion provoziert.

Abgriff: Benchmarks für Böses

Im ersten Schritt haben sowohl Meltdown als auch Spectre nur einen Zugriff auf ein eigentlich unerreichbares Bit provoziert, der zu einem spezifischen Ladevorgang führte. Diese Daten sind nominell ebenfalls unzugänglich, da die Cache-Verwaltung allein der CPU unterliegt und für die Software nicht nachvollziehbar ist. Schon seit Längerem sind aber Methoden außerhalb der nominellen Arbeitsweise bekannt, die diese Beschränkung umgehen und deswegen als sogenannte Side Channel Attacken zählen. Diese Bezeichnung umfasst prinzipiell alle Ausspähaktionen, die nicht Teil eines Programmablaufes sind (unabhängig, ob erwünscht oder Bug), beispielsweise auch der Nachbar, der mittels Fernrohr den Bildschirm beobachtet.

Spectre und Meltdown nutzten den ureigenen Zweck von Caches aus: Von vorangehenden Instruktionen genutzte Datenfragmente müssen nicht erst aus dem langsamen Hauptspeicher geladen werden. Man kann frühere Zugriffe auf Daten also durch systematische Messung der Zugriffsgeschwindigkeit rekonstruieren - wurden sie kurz zuvor gecached, stehen sie wesentlich schneller zur Verfügung. Da der Angreifer bei Meltdown weiß, welcher Wert des Ziel-Bits auf welchen Bereich seines User-Spaces weist, kann er so sehr einfach das Ziel-Bit rekonstruieren. Spectre-Attacken haben es schwerer und müssen neben dem Programmablauf des Zielprozesses auch eine Datenstruktur kennen, die sowohl der Angreifer als auch das Ziel lesen können. Da viele Standard-Systemdateien (beispielsweise DLLs) gemeinsam genutzt werden und mit dem Betriebssystem sogar eine direkte Kommunikation stattfindet, ist aber auch dieses Problem lösbar.

83
  1. Seite 1 Die Grundlagen hinter Spectre und Meltdown
  2. Seite 2 So funktionieren Spectre und Meltdown
  3. Seite 3 Das bedeuten Spectre und Meltdown für die Praxis
  4. Seite 4 Reaktionen auf Spectre und Meltdown
    • Kommentare (83)

      Zur Diskussion im Forum
      • Von wolflux Lötkolbengott/-göttin
        AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

        Mich interessiert das ganze überhaupt nicht,die Win.-Updates sind Ok. aber ein neues UEFI kommt für mich nicht in Frage.
        Ich möchte weder 10 oder gar 50% Leistungs- Einbußen in Kauf nehmen.
        Es handelt sich bei mir nur um einen Arbeits (CAD), und Spiele PC.
      • Von wolflux Lötkolbengott/-göttin
        AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

        Mich interessiert das ganze überhaupt nicht,die Win.-Updates sind Ok. aber ein neues UEFI kommt für mich nicht in Frage.
        Ich möchte weder 10 oder gar 50% Leistungs- Einbußen in Kauf nehmen.
        Es handelt sich bei mir nur um einen Arbeits (CAD), und Spiele PC.
      • Von Taskmaster Software-Overclocker(in)
        AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

        Tjo, wie ich sagte: die "Szene" leckt sich alle Finger nach.
      • Von lutari Software-Overclocker(in)
        AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

        Geht alles schneller als gedacht.

        MeltdownPrime & SpectrePrime: Neue Software automatisiert CPU-Angriffe |
        heise Security
      • Von Tekkla Volt-Modder(in)
        AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

        Zitat von lutari
        Mit bekannten Tools (beispielsweise NoScript) kannst du das Risiko auf jeden Fall deutlich senken.
        Ja, aber auch nur beim Browser. In der Theorie kannst du den auslesenden Code aber auch in andere Inhalte verpacken. So wie es PCGH schon erklärte: Selbst eine GameMod kann dafür missbraucht werden.

        Wie realistisch das am Ende sein wird? Muss man abwarten und dann sehen.
      • Von lutari Software-Overclocker(in)
        AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

        Zitat von DarkWing13
        Ich denke eher, dass ist das Problem daran, da diese "Scripte" an allen (bisherigen) Sicherheitsmaßnahmen vorbei laufen und dadurch keine "Auffälligkeiten" produzieren.
        Bei Spectre kannst du nur Daten auslesen, aber du musst die gewonnenen Daten auch irgendwie verarbeiten oder weiterleiten und hier könnten sogar aktuelle Sicherheitsmaßnahmen greifen.
        Mit bekannten Tools (beispielsweise NoScript) kannst du das Risiko auf jeden Fall deutlich senken.
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 07/2026 PC Games 07/2026 play5 07/2026 N-Zone 07/2026 Linux Magazin 07/2026 LinuxUser 07/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk