-
Kann Meltdown nur Daten aus dem L1D Cache lesen?
Autor: SolemSchicktLeserkritikUngefragtAnArbeitgeber 19.01.18 - 10:15
TL DR: Kann Meltdown Daten lesen, die nicht im Level 1 Data Cache der CPU liegen? Wenn ja hat jemand einen Link zu einem PoC wo der Source Code dabei ist, damit man das verifizieren kann?
Long Version:
Es existieren viele Behauptungen zu Meltdown und auch auf fefe liest man widersprüchliche Informationen.
Kann Meltdown Daten lesen, die nicht im Level 1 Data Cache der CPU liegen?
Soweit ich das verstehe funktioniert das wie folgt (mit pseudo assembler). Ich wüsste nur nicht wie man an Daten rankommt die nicht im Cache liegen:
LOAD r0, kerneldata
LOAD r1, 0x1000+1000*r0_bit1
LOAD_TIME 0x1000
LOAD_TIME 0x2000
Wenn Loadtime 0x1000 > 0x2000 war das bit1 1, weil 0x2000 schon im Cache liegt und so schnell ist.
Wenn Loadtime 0x2000 > 0x1000 war das bit1 0, weil 0x1000 schon im Cache liegt und so schnell ist.
Der Witz ist jetzt warum load kerneldata geht. Die Adresse ist virtuell muss also im TLB nachgeschlagen werden, da steht aber auch drin, ob ich überhaupt drauf zugreifen darf (antwort nein).
Wenn ich im Level 1 Data Cache zugreife, der physikalische Adressen (phys tagging) braucht, muss ich theoretisch auch im TLB nachschlagen und darf wieder nicht drauf zugreifen. Aber da ich virtual Indexing mache kriege ich darüber die Page raus. Und über die Assoziativität wo auf der Page die Daten liegen. Und kann so gucken ob die Daten im Cache sind und wenn ja sie direkt liefern. Das geht schneller als im TLB nach gucken.
Das passiert generell, aber es wird danach im TLB nach geguckt ob ich das durfte und falls nicht alles Rückgängig gemacht. Wenn der TLB aber erst aus dem Ram Daten nachladen muss, habe 100-200 Zyklen Zeit mit den Daten zu arbeiten und Caches in Abhängigkeit dieser Daten zu verändern, bevor der Prozessor seinen Zustand zurück setzt.
Soweit, so klar. Aber wie hole ich mir mit diesem Angriff Daten die nicht im L1 Data Cache stehen? Der L2 Cache macht nur physikalische Adressen und braucht den TLB bevor er irgendwas tut. Ich hoffe ich habe das richtig verstanden das man mit dem virtuellen Indexing + 8xAsso die physikalischen Adressen nicht braucht, um zu schauen, ob eine Cacheline Daten einer gewissen Page vorhält.
2 mal bearbeitet, zuletzt am 19.01.18 10:32 durch SolemSchicktLeserkritikUngefragtAnArbeitgeber. -
Re: Kann Meltdown nur Daten aus dem L1D Cache lesen?
Autor: cryptomagic 08.02.18 - 00:57
Der Frage haben wir uns genauer angenommen, und unsere Ergebnisse in einem Artikel veröffentlicht:
https://www.cryptomagic.eu/index.php/cryptoblog/2-uncategorised/46-meltdown-war-das-schon-alles
1 mal bearbeitet, zuletzt am 08.02.18 00:58 durch cryptomagic.