Hacker: Warum Raspberry Pi sicher vor Meltdown und Spectre ist

| Autor: Margit Kuther

Meltdown-Attacke auf den Prozessor

Betrachten wir nun, wie vorausschauendes Lesen und Caching einen Meltdown-artigen Angriff auf unseren Prozessor ermöglichen. Betrachten Sie das folgende Beispiel, bei dem es sich um ein Benutzerprogramm handelt, das manchmal von einer ungültigen (Kernel-) Adresse liest, was zu einem Fehler (Absturz) führt:

t = a + b

u = t + c

v = u + d

wenn v:

w = kern_mem [Adresse] # wenn wir hier sind, Fehler

x = w & 0x100

y = user_mem [x]

Jetzt, vorausgesetzt, wir können den Verzweigungs-Prädiktor so trainieren, dass wir glauben, dass v wahrscheinlich nicht Null ist, mischt unser außer der Reihe liegender Zweiweg-Superskalar-Prozessor das Programm folgendermaßen:

t, w_ = a + b, kern_mem [Adresse]

u, x_ = t + c, w_ & 0x100

v, y_ = u + d, user_mem [x_]

wenn v:

# Fehler

w, x, y = w_, x_, y_ # wir kommen nie hierher

Obwohl der Prozessor immer spekulativ von der Kerneladresse liest, muss er den resultierenden Fehler verschieben, bis er weiß, dass v nicht Null ist. Auf den ersten Blick scheint dies sicher zu sein, weil entweder:

v ist Null, so dass das Ergebnis des illegalen Lesens nicht auf w übergeben wird

v ist nicht Null, aber der Fehler tritt auf, bevor das Lesen an w übergeben wird

Nehmen wir jedoch an, wir leeren unseren Cache vor der Ausführung des Codes und ordnen a, b, c und d so an, dass v tatsächlich Null ist. Nun, das spekulative Lesen im dritten Zyklus:

v, y_ = u + d, user_mem [x_]

wird entweder auf die Benutzerlandadresse 0x000 oder die Adresse 0x100 zugreifen, abhängig von dem achten Bit des Ergebnisses des illegalen Lesens, wobei diese Adresse und ihre Nachbarn in den Cache geladen werden. Da v null ist, werden die Ergebnisse der spekulativen Anweisungen verworfen, und die Ausführung wird fortgesetzt. Wenn wir einen nachfolgenden Zugriff auf eine dieser Adressen zeitlich festlegen, können wir ermitteln, welche Adresse sich im Cache befindet. Herzlichen Glückwunsch: Sie haben gerade ein Bit aus dem Adressraum des Kernels gelesen!

Der echte Meltdown-Nutzen ist wesentlich komplexer als dieser (insbesondere, um zu vermeiden, den Verzweigungsprädiktor falsch zu trainieren, wird bevorzugt, das illegale Lesen bedingungslos auszuführen und die resultierende Ausnahme zu handhaben), aber das Prinzip ist das gleiche. Spectre verwendet einen ähnlichen Ansatz, um Software-Array-Grenzen-Prüfungen zu unterlaufen.

Fazit: Abstraktion und Realität moderner Prozessoren

Moderne Prozessoren tun viel, um die Abstraktion zu bewahren, dass sie Skalarmaschinen sind, die direkt auf den Speicher zugreifen, während sie tatsächlich eine Vielzahl von Techniken verwenden, darunter Caching, Neuordnung von Befehlen und vorausschauende Zugriffe, die viel mehr Leistung bieten als ein einfacher Prozessor erreicht. Meltdown und Spectre sind Beispiele dafür, was passiert, wenn wir im Kontext dieser Abstraktion über Sicherheit sprechen und dann auf kleine Diskrepanzen zwischen Abstraktion und Realität treffen.

Fazit: Das Fehlen von vorausschauenden Zugriffen in den ARM1176-, Cortex-A7- und Cortex-A53-Kernen, die im Raspberry Pi verwendet werden, machen die Raspberry Pis gegen Angriffe wie Meltdown und Spectre immun.

Die Ausführungen von Eben Upton finden Sie auch auf der Seite von raspberrypi.org.

Malware Muldrop.14 kapert Raspberry Pis für Botnetz

Krypto-Mining

Malware Muldrop.14 kapert Raspberry Pis für Botnetz

14.06.17 - Linux.Muldrop.14 eint gezielt ungesicherte Raspberry Pis in einem Botnetz und sperrt dann deren Nutzer aus, um Geld in der Kryptowährung zu generieren. lesen

Hackerschutz für Raspbian PIXEL

Mehr Sicherheit für Raspberry Pi

Hackerschutz für Raspbian PIXEL

07.12.16 - Nutzerfreundlichkeit stand bei Raspberry Pi bislang an erster Stelle. Doch die global steigenden Hacker-Angriffe haben die Organisatoren bewogen, die Sicherheit der Software zu erhöhen. lesen

PoisonTap, Raspberry Pi als PC-Hacker

Sicherheit

PoisonTap, Raspberry Pi als PC-Hacker

28.11.16 - Das PoisonTab ist ein mit Skripten präparierter Raspberry Pi. Angeschlossen am USB-Port eines PCs verschafft er sich als Ethernet-Schnittstelle getarnt Zugang, selbst wenn sich der Rechner hinter einem LockScreen verbirgt. Betroffen sind sowohl Macs als auch Windows-PCs. lesen

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45113225 / Raspberry & SBC)