Am 3. Januar 2018 wurden die Sicherheitslücken Spectre und Meltdown in Prozessoren bekannt.

Notizsammlung

  • Meldung von Intel: https://www.intel.com/content/www/us/en/architecture-and-technology/facts-about-side-channel-analysis-and-intel-products.html »Intel believes these exploits do not have the potential to corrupt, modify or delete data.«
  • PTI bei AMD nicht notwendig »The AMD microarchitecture does not allow memory references, including speculative references, that access higher privileged data when running in a lesser privileged mode when that access would result in a page fault.«
  • PTI-Analyse
  • LWN zu Spectre und Meltdown
  • AMD nicht komplett betroffen
  • Cloud-Betreiber und Betreiber von Rechenzentren betroffen, da dort die Kunden offiziell eigenen Code ausführen können.
  • LWN-Kommentare zur Mitteilung von Intel
  • CERT-Meldung
  • Mozillas Reaktion Auflösung von Zeitmessung reduzieren.
  • Paper zu Timing-Attaken in Javascript
  • Artikel bei Zeit-Online
  • Wikipedia-Einträge Spectre, Meltdown
  • Minix in Intel-CPUs ZDNet, Golem, Linuxnews
  • Neue EU-Geldwäscherichtlinie: »Die Privatsphäre fällt praktisch weg«
  • https://www.heise.de/newsticker/meldung/Prozessor-Luecken-Meltdown-und-Spectre-Intel-und-ARM-fuehren-betroffene-Prozessoren-auf-Nvidia-3934667.html
  • https://www.heise.de/newsticker/meldung/Prozessorluecke-Auch-Qualcomm-CPUs-sind-anfaellig-3935270.html
  • https://www.heise.de/newsticker/meldung/Meltdown-und-Spectre-Erste-Klagen-gegen-Intel-Performanceprobleme-kochen-hoch-3935493.html »Zudem rechne man damit, dass sich diese Probleme mit der Zeit auswachsen würden.«
  • Analyse von heise
  • Facebooks Sicherheitslücke im Marketing-Tool
  • Retpoline: a software construct for preventing branch-target-injection »The strategies used to make this prediction vary between hardware implementations, they are commonly not isolated between security domains to reduce complexity and improve performance.«, »Despite the criticality of this attack; the baseline difficulty to construct an attack is reasonably high due to the degree of tailoring required.«
  • Ähnlicher Kampf wie mit SSDs
  • https://googleprojectzero.blogspot.de/2018/01/reading-privileged-memory-with-side.html

    • »On the Intel Haswell Xeon CPU, kernel virtual memory can be read at a rate of around 2000 bytes per second after around 4 seconds of startup time.«
    • »[…] can read host kernel memory at a rate of around 1500 bytes/second, with room for optimization.«
    • »A warning regarding explanations about processor internals in this blogpost: This blogpost contains a lot of speculation about hardware internals based on observed behavior, which might not necessarily correspond to what processors are actually doing.«
    • »The Intel Optimization Reference Manual says the following regarding Sandy Bridge (and later microarchitectural revisions) in section 2.3.2.3 ("Branch Prediction"):

    Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known.«

  • root + eBPF JIT => Code im Kernel-Mode, JVM

  • Leistungseinbußen von Lustre, Epic Games (AWS-Nutzer), Red Hat, Wissenschafter durch Meltdown-Patch
  • Erklärung von ARM
  • UEFI kann Lücken enthalten
  • agi intel-microcode / amd64-microcode => non-free (kein Quellcode)
  • agi fwupd => fwupdmgr get-devices
  • https://de.wikipedia.org/wiki/Pentium-FDIV-Bug
  • https://www.heise.de/security/meldung/Critical-Patch-Update-Oracle-patcht-unter-anderem-gegen-Spectre-und-Meltdown-3944480.html
  • % grep \^bugs /proc/cpuinfo bugs : cpu_meltdown spectre_v1 spectre_v2

Technischer Hintergrund

  • CPU-Aufbau, Code-Ausführung, Laden von Daten
  • Leistungssteigerung: Caching, kleiner als Speicher, Doppelzuordnung
  • Leistungssteigerung: Superskalarität => out-of-order execution
  • Leistungssteigerung: Sprungvorhersage

int func(int arg)
{
    if (arg <= 0)
        return -1;
    …
}
  • Sprungvorhersage mit Gedächtnis

for (unsigned i = 0; i < 10; ++i)
    if (i == 0)
        … // done in the first round
    else
        … // done in all other rounds
  • Sicherheit: Ring (CPU)|Kernel-Mode/User-Mode (Ring0, Ring-3)
  • MMU: virtueller Speicher => Seitentabelle (Page table) = virtuellen Adressen auf echte Adressen, Translation lookaside buffer TLB => aller Kernelspeicher in Pagetable der Prozesse => PTI

Angriffsmöglichkeiten

Seitenkanalangriff: Indirektes Beobachten des eigentlichen Ziels, wie Schatten auf der Wand statt direkter Blick, Neurowissenschaftler: Komapatient

Zugriff auf geschützte Daten innerhalb des Prozesses (Threads)

Geschützter Speicher innerhalb des Prozesses (Threads)

  • Spectre
  • Variant 1: bounds check bypass (CVE-2017-5753) => einzelne Bits
  • Variant 3: rogue data cache load (CVE-2017-5754) => komplette Bytes
  • KVM
  • eBPF

Geschützter Speicher im Kernel

auf Register (ARM)

  • Variant 3: rogue data cache load (CVE-2017-5754) => komplette Bytes

TTBRx

Angriff auf Kernelspeicher

  • Meltdown
  • Workaround: PTI

Sprungbeeinflussung

  • Spectre Variante 2 (BTI)
  • Variant 2: branch target injection (CVE-2017-5715)
  • Fehltrainieren der Sprungvorhersage

Bedeutung und Auswirkung

Informationspolitik

  • ARM gut: Tabelle, Erläuterung mit Beispielen, spricht nur von Linux :)
  • Intel dürftig
  • Interview mit einem Wissenschaftler der TU Graz »[…] es in den Wissenschaften immer nur einen Gewinner gibt. Wer als Zweiter kommt, geht leer aus.«
  • https://www.heise.de/newsticker/meldung/Kommentar-zu-Meltdown-Spectre-Chaos-statt-Kundendienst-3938140.html
  • ein Desaster im Umgang mit Sicherheit in der IT: Updates Android, IOT, Embedded Systems, …
  • Am 30.12. schon Spekulation über Sicherheitslücke bei LWN durch den ungewöhnlich späten Merge von PTI im rc6

Sicherheit allgemein