Sicherheitslücken in der x86 / amd64 -Architektur
MarcellHaritopoulos
MatthiasPaulitsch
MichaelSismanovic
13. Februar 2019
Inhaltsverzeichnis
1 EinführungGrundinformationenGeschichtliche EntwicklungSpeicherverwaltungProzessor Modi
2 SpectreGrundinformationenOut of Order ExecutionSpectre Angri�eVersionen und Gegenvorkehrungen
3 MeltdownGrundinformationenVorgehensweiseUnterschied zu SpectreGegenvorkehrungen / �Fixes�
4 Weiterführende Literatur
Einführung
1 EinführungGrundinformationenGeschichtliche EntwicklungSpeicherverwaltungProzessor Modi
2 Spectre
3 Meltdown
4 Weiterführende Literatur
Grundinformationen
Was ist x86?
x86 ist eine ISA
Was ist ISA?
ISA steht für (Instruction Set Architecture)z.B: POP, PUSH, ADD, JUMP ...
Woher kommt der Name x86
Die Modellnummern der ersten Intel-Prozessoren endeten fast allemit 86 (8086, 80286, 80386, 80486, 80586)
Grundinformationen
Was ist x86?
x86 ist eine ISA
Was ist ISA?
ISA steht für (Instruction Set Architecture)z.B: POP, PUSH, ADD, JUMP ...
Woher kommt der Name x86
Die Modellnummern der ersten Intel-Prozessoren endeten fast allemit 86 (8086, 80286, 80386, 80486, 80586)
Grundinformationen
Was ist x86?
x86 ist eine ISA
Was ist ISA?
ISA steht für (Instruction Set Architecture)z.B: POP, PUSH, ADD, JUMP ...
Woher kommt der Name x86
Die Modellnummern der ersten Intel-Prozessoren endeten fast allemit 86 (8086, 80286, 80386, 80486, 80586)
Grundinformationen
Was ist x86?
x86 ist eine ISA
Was ist ISA?
ISA steht für (Instruction Set Architecture)z.B: POP, PUSH, ADD, JUMP ...
Woher kommt der Name x86
Die Modellnummern der ersten Intel-Prozessoren endeten fast allemit 86 (8086, 80286, 80386, 80486, 80586)
Geschichte
1978 - erste x86-Prozessoren erschienen mit nur 16 Bits (8086und 8088)
1985 wurde auf 32 Bit aufgerüstet (80386)
1999 wurde bekanntgegeben, dass AMD x86 auf 64 Bitaufrüsten will.Intel hingegen entschied sich dafür, eine neueProzessorarchitektur zu entwickeln (Itanium-Architektur IA-64)
Geschichte
1978 - erste x86-Prozessoren erschienen mit nur 16 Bits (8086und 8088)
1985 wurde auf 32 Bit aufgerüstet (80386)
1999 wurde bekanntgegeben, dass AMD x86 auf 64 Bitaufrüsten will.Intel hingegen entschied sich dafür, eine neueProzessorarchitektur zu entwickeln (Itanium-Architektur IA-64)
Geschichte
1978 - erste x86-Prozessoren erschienen mit nur 16 Bits (8086und 8088)
1985 wurde auf 32 Bit aufgerüstet (80386)
1999 wurde bekanntgegeben, dass AMD x86 auf 64 Bitaufrüsten will.Intel hingegen entschied sich dafür, eine neueProzessorarchitektur zu entwickeln (Itanium-Architektur IA-64)
Geschichte
1978 - erste x86-Prozessoren erschienen mit nur 16 Bits (8086und 8088)
1985 wurde auf 32 Bit aufgerüstet (80386)
1999 wurde bekanntgegeben, dass AMD x86 auf 64 Bitaufrüsten will.Intel hingegen entschied sich dafür, eine neueProzessorarchitektur zu entwickeln (Itanium-Architektur IA-64)
Virtual Memory
Begri�serklärung:
Virtueller Arbeitsspeicher ermöglicht es jedem einzelnen Prozess, sozu agieren, als stünde ihm der gesamte Arbeitsspeicher allein zurVerfügung. Dadurch bekommt jedes Programm seinen eigenenAdressraum und wird von allen anderen Prozessen isoliert.
Wieso brauchen wir Virtual Memory?
Verhindert, dass Programme auf den selben physikalischen Speicher(unkontrolliert) zugreifen.Programme können sich also nicht gegenseitig beein�ussen oderDaten klauen.
Virtual Memory
Begri�serklärung:
Virtueller Arbeitsspeicher ermöglicht es jedem einzelnen Prozess, sozu agieren, als stünde ihm der gesamte Arbeitsspeicher allein zurVerfügung. Dadurch bekommt jedes Programm seinen eigenenAdressraum und wird von allen anderen Prozessen isoliert.
Wieso brauchen wir Virtual Memory?
Verhindert, dass Programme auf den selben physikalischen Speicher(unkontrolliert) zugreifen.Programme können sich also nicht gegenseitig beein�ussen oderDaten klauen.
Virtual Memory
Begri�serklärung:
Virtueller Arbeitsspeicher ermöglicht es jedem einzelnen Prozess, sozu agieren, als stünde ihm der gesamte Arbeitsspeicher allein zurVerfügung. Dadurch bekommt jedes Programm seinen eigenenAdressraum und wird von allen anderen Prozessen isoliert.
Wieso brauchen wir Virtual Memory?
Verhindert, dass Programme auf den selben physikalischen Speicher(unkontrolliert) zugreifen.Programme können sich also nicht gegenseitig beein�ussen oderDaten klauen.
Paging
Begri�serklärung:
Paging ist eine Methode zur virtuellen Adressierung. Der physischeSpeicher wird in 4k Page Frames aufgeteilt und in den virtuellenSpeicher reingehängt. Durch gleiche Page-Gröÿen wirdFragmentierung verhindert.
Was ist Memory Fragmentation?
Lücken in der Belegung von Speicherblöcken.Durch Allozieren und Freigeben von Speicher können nichtzusammenhängende Lücken entstehen.
5 Blocke frei
4 Blocke allozieren
Paging
Begri�serklärung:
Paging ist eine Methode zur virtuellen Adressierung. Der physischeSpeicher wird in 4k Page Frames aufgeteilt und in den virtuellenSpeicher reingehängt. Durch gleiche Page-Gröÿen wirdFragmentierung verhindert.
Was ist Memory Fragmentation?
Lücken in der Belegung von Speicherblöcken.Durch Allozieren und Freigeben von Speicher können nichtzusammenhängende Lücken entstehen.
5 Blocke frei
4 Blocke allozieren
Paging
Begri�serklärung:
Paging ist eine Methode zur virtuellen Adressierung. Der physischeSpeicher wird in 4k Page Frames aufgeteilt und in den virtuellenSpeicher reingehängt. Durch gleiche Page-Gröÿen wirdFragmentierung verhindert.
Was ist Memory Fragmentation?
Lücken in der Belegung von Speicherblöcken.Durch Allozieren und Freigeben von Speicher können nichtzusammenhängende Lücken entstehen.
5 Blocke frei
4 Blocke allozieren
Prozessor Modi
Real Mode:
Jeder x86 Prozessor startet im Real Mode. Im Real Mode stehenweder der Erweiterter Speicher noch der Virtuelle Adressraum zurVerfügung. Der Real Mode ist sehr unsicher, deshalb wird meistensbeim Starten des Betriebssystems in den Protected Modegewechselt.
Protected Mode:
Der Protected Mode erlaubt das Setzen von Zugri�sberechtigungen(Lesen / Schreiben / Ausführen) durch die Protection Rings. DieProtection Rings sind hierarchische Sicherheitsstufen. Es gibt 4Ringe, angefangen mit Ring 0, der die meisten Privilegien hat undRing 3, der die wenigsten Privilegien hat.
Prozessor Modi
Real Mode:
Jeder x86 Prozessor startet im Real Mode. Im Real Mode stehenweder der Erweiterter Speicher noch der Virtuelle Adressraum zurVerfügung. Der Real Mode ist sehr unsicher, deshalb wird meistensbeim Starten des Betriebssystems in den Protected Modegewechselt.
Protected Mode:
Der Protected Mode erlaubt das Setzen von Zugri�sberechtigungen(Lesen / Schreiben / Ausführen) durch die Protection Rings. DieProtection Rings sind hierarchische Sicherheitsstufen. Es gibt 4Ringe, angefangen mit Ring 0, der die meisten Privilegien hat undRing 3, der die wenigsten Privilegien hat.
Prozessor Modi
Real Mode:
Jeder x86 Prozessor startet im Real Mode. Im Real Mode stehenweder der Erweiterter Speicher noch der Virtuelle Adressraum zurVerfügung. Der Real Mode ist sehr unsicher, deshalb wird meistensbeim Starten des Betriebssystems in den Protected Modegewechselt.
Protected Mode:
Der Protected Mode erlaubt das Setzen von Zugri�sberechtigungen(Lesen / Schreiben / Ausführen) durch die Protection Rings. DieProtection Rings sind hierarchische Sicherheitsstufen. Es gibt 4Ringe, angefangen mit Ring 0, der die meisten Privilegien hat undRing 3, der die wenigsten Privilegien hat.
Spectre
1 Einführung
2 SpectreGrundinformationenOut of Order ExecutionSpectre Angri�eVersionen und Gegenvorkehrungen
3 Meltdown
4 Weiterführende Literatur
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann Horn
Independent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul Kocher
University of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel Genkin
Rambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike Hamburg
TU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz Lipp
University of Adelaide Yuval Yarom
Spectre Grundinformationen
Entwickler informiert am:
1. Juni 2017
Verö�entlichung:
3. Jänner 2018
Entdeckt von:
Google Project Zero Jann HornIndependent Paul KocherUniversity of Michigan Daniel GenkinRambus Security Division Mike HamburgTU Graz Moritz LippUniversity of Adelaide Yuval Yarom
Spectre Grundinformationen
Warum heiÿt es Spectre?
�The name is based on the root cause, speculative execution. As itis not easy to �x, it will haunt us for quite some time.�
Begri�serklärung:
Spectre beschreibt Angri�sszenarien, bei denen ProzesseSicherheitslücken in Mikroprozessoren ausnutzen um Informationendes virtuellen Speichers auszulesen
Zusätzliche Vorraussetzung
Mikroprozessor verwendet out-of-order-execution
Spectre Grundinformationen
Warum heiÿt es Spectre?
�The name is based on the root cause, speculative execution. As itis not easy to �x, it will haunt us for quite some time.�
Begri�serklärung:
Spectre beschreibt Angri�sszenarien, bei denen ProzesseSicherheitslücken in Mikroprozessoren ausnutzen um Informationendes virtuellen Speichers auszulesen
Zusätzliche Vorraussetzung
Mikroprozessor verwendet out-of-order-execution
Spectre Grundinformationen
Warum heiÿt es Spectre?
�The name is based on the root cause, speculative execution. As itis not easy to �x, it will haunt us for quite some time.�
Begri�serklärung:
Spectre beschreibt Angri�sszenarien, bei denen ProzesseSicherheitslücken in Mikroprozessoren ausnutzen um Informationendes virtuellen Speichers auszulesen
Zusätzliche Vorraussetzung
Mikroprozessor verwendet out-of-order-execution
Spectre Grundinformationen
Warum heiÿt es Spectre?
�The name is based on the root cause, speculative execution. As itis not easy to �x, it will haunt us for quite some time.�
Begri�serklärung:
Spectre beschreibt Angri�sszenarien, bei denen ProzesseSicherheitslücken in Mikroprozessoren ausnutzen um Informationendes virtuellen Speichers auszulesen
Zusätzliche Vorraussetzung
Mikroprozessor verwendet out-of-order-execution
Out of Order Execution
Begri�serklärung:
Bezeichnet die Möglichkeit, Maschinenbefehle in denAusführungseinheiten eines Prozessors in einer anderen Reihenfolgeauszuführen, als sie im Programmcode stehen.
Vorteil
Stufen der Pipeline besser ausgelastet
Problematik
Nur auf von einander unabhängige Befehle anwendbar
Out of Order Execution
Begri�serklärung:
Bezeichnet die Möglichkeit, Maschinenbefehle in denAusführungseinheiten eines Prozessors in einer anderen Reihenfolgeauszuführen, als sie im Programmcode stehen.
Vorteil
Stufen der Pipeline besser ausgelastet
Problematik
Nur auf von einander unabhängige Befehle anwendbar
Out of Order Execution
Begri�serklärung:
Bezeichnet die Möglichkeit, Maschinenbefehle in denAusführungseinheiten eines Prozessors in einer anderen Reihenfolgeauszuführen, als sie im Programmcode stehen.
Vorteil
Stufen der Pipeline besser ausgelastet
Problematik
Nur auf von einander unabhängige Befehle anwendbar
Out of Order Execution
Begri�serklärung:
Bezeichnet die Möglichkeit, Maschinenbefehle in denAusführungseinheiten eines Prozessors in einer anderen Reihenfolgeauszuführen, als sie im Programmcode stehen.
Vorteil
Stufen der Pipeline besser ausgelastet
Problematik
Nur auf von einander unabhängige Befehle anwendbar
Out of Order Execution bei Spectre
Ausnützen der Out of Order Execution:
Prozessausführung beein�usst
Inhalt einer Speicherzelle aus dem Adressraum ausgelesen
Hinterlässt bemerkbare Spur im Cache
Out of Order Execution bei Spectre
Ausnützen der Out of Order Execution:
Prozessausführung beein�usst
Inhalt einer Speicherzelle aus dem Adressraum ausgelesen
Hinterlässt bemerkbare Spur im Cache
Out of Order Execution bei Spectre
Ausnützen der Out of Order Execution:
Prozessausführung beein�usst
Inhalt einer Speicherzelle aus dem Adressraum ausgelesen
Hinterlässt bemerkbare Spur im Cache
Out of Order Execution bei Spectre
Ausnützen der Out of Order Execution:
Prozessausführung beein�usst
Inhalt einer Speicherzelle aus dem Adressraum ausgelesen
Hinterlässt bemerkbare Spur im Cache
Out of Order Execution bei Spectre
Ausnützen der Out of Order Execution:
Prozessausführung beein�usst
Inhalt einer Speicherzelle aus dem Adressraum ausgelesen
Hinterlässt bemerkbare Spur im Cache
Speculative Execution
Begri�serklärung:
Ist eine Optimierungstechnik, bei der ein Computer System eineTätigkeit ausführt, die im weiteren Programmablauf nicht zwingendbenötigt wird. Der Prozess wird beendet, bevor überhaupt bekanntist, ob dieser nötig war, oder nicht.
Ziel:
Einer Verzögerung in der Ausführung vorzubeugen
Ungebrauchte Ausführungen:
Änderungen werden rückgängig gemacht und die Ergebnisse werdenignoriert
Speculative Execution
Begri�serklärung:
Ist eine Optimierungstechnik, bei der ein Computer System eineTätigkeit ausführt, die im weiteren Programmablauf nicht zwingendbenötigt wird. Der Prozess wird beendet, bevor überhaupt bekanntist, ob dieser nötig war, oder nicht.
Ziel:
Einer Verzögerung in der Ausführung vorzubeugen
Ungebrauchte Ausführungen:
Änderungen werden rückgängig gemacht und die Ergebnisse werdenignoriert
Speculative Execution
Begri�serklärung:
Ist eine Optimierungstechnik, bei der ein Computer System eineTätigkeit ausführt, die im weiteren Programmablauf nicht zwingendbenötigt wird. Der Prozess wird beendet, bevor überhaupt bekanntist, ob dieser nötig war, oder nicht.
Ziel:
Einer Verzögerung in der Ausführung vorzubeugen
Ungebrauchte Ausführungen:
Änderungen werden rückgängig gemacht und die Ergebnisse werdenignoriert
Speculative Execution
Begri�serklärung:
Ist eine Optimierungstechnik, bei der ein Computer System eineTätigkeit ausführt, die im weiteren Programmablauf nicht zwingendbenötigt wird. Der Prozess wird beendet, bevor überhaupt bekanntist, ob dieser nötig war, oder nicht.
Ziel:
Einer Verzögerung in der Ausführung vorzubeugen
Ungebrauchte Ausführungen:
Änderungen werden rückgängig gemacht und die Ergebnisse werdenignoriert
Spectre Angri�e
Zitat:
�Speculative logic is unfaithful in how it executes, can access thevictim's memory and registers, and can perform operations withmeasurable side e�ects.�
Konsequenzen:
Spectre Angri�e Nutzen Sicherheitslücken in derImplementierung der Speculative Execution aus
Zugri� auf Speicher und Register möglich
Spectre Angri�e
Zitat:
�Speculative logic is unfaithful in how it executes, can access thevictim's memory and registers, and can perform operations withmeasurable side e�ects.�
Konsequenzen:
Spectre Angri�e Nutzen Sicherheitslücken in derImplementierung der Speculative Execution aus
Zugri� auf Speicher und Register möglich
Spectre Angri�e
Zitat:
�Speculative logic is unfaithful in how it executes, can access thevictim's memory and registers, and can perform operations withmeasurable side e�ects.�
Konsequenzen:
Spectre Angri�e Nutzen Sicherheitslücken in derImplementierung der Speculative Execution aus
Zugri� auf Speicher und Register möglich
Spectre Angri�e
Zitat:
�Speculative logic is unfaithful in how it executes, can access thevictim's memory and registers, and can perform operations withmeasurable side e�ects.�
Konsequenzen:
Spectre Angri�e Nutzen Sicherheitslücken in derImplementierung der Speculative Execution aus
Zugri� auf Speicher und Register möglich
Spectre Angri�e
Zitat:
�Speculative logic is unfaithful in how it executes, can access thevictim's memory and registers, and can perform operations withmeasurable side e�ects.�
Konsequenzen:
Spectre Angri�e Nutzen Sicherheitslücken in derImplementierung der Speculative Execution aus
Zugri� auf Speicher und Register möglich
Spectre Angri�e
Zitat:
�Spectre attacks involve inducing a victim to speculatively performoperations that would not occur during correct program executionand which leak the victim's con�dential information via a sidechannel to the adversary�
Konsequenzen
Befehle ausgeführt,die bei einem korrekten Ablauf nichtausgeführt werden würden
Vertrauliche Informationen über side channel übertragen
Spectre Angri�e
Zitat:
�Spectre attacks involve inducing a victim to speculatively performoperations that would not occur during correct program executionand which leak the victim's con�dential information via a sidechannel to the adversary�
Konsequenzen
Befehle ausgeführt,die bei einem korrekten Ablauf nichtausgeführt werden würden
Vertrauliche Informationen über side channel übertragen
Spectre Angri�e
Zitat:
�Spectre attacks involve inducing a victim to speculatively performoperations that would not occur during correct program executionand which leak the victim's con�dential information via a sidechannel to the adversary�
Konsequenzen
Befehle ausgeführt,die bei einem korrekten Ablauf nichtausgeführt werden würden
Vertrauliche Informationen über side channel übertragen
Spectre Angri�e
Zitat:
�Spectre attacks involve inducing a victim to speculatively performoperations that would not occur during correct program executionand which leak the victim's con�dential information via a sidechannel to the adversary�
Konsequenzen
Befehle ausgeführt,die bei einem korrekten Ablauf nichtausgeführt werden würden
Vertrauliche Informationen über side channel übertragen
Spectre Angri�e
Zitat:
�Spectre attacks involve inducing a victim to speculatively performoperations that would not occur during correct program executionand which leak the victim's con�dential information via a sidechannel to the adversary�
Konsequenzen
Befehle ausgeführt,die bei einem korrekten Ablauf nichtausgeführt werden würden
Vertrauliche Informationen über side channel übertragen
Spectre Angri�e
Zitat:
�Speculative execution implementations violate the securityassumptions underpinning numerous software security mechanisms,including operating system process separation, containerization,just-in-time (JIT) compilation, and countermeasures to cachetiming and side-channel attacks.�
Konsequenzen
Mehrere Sicherheitsvorkehrungen zu Nichte gemacht
Viele verschiedene Lücken ausnützbar
Spectre Angri�e
Zitat:
�Speculative execution implementations violate the securityassumptions underpinning numerous software security mechanisms,including operating system process separation, containerization,just-in-time (JIT) compilation, and countermeasures to cachetiming and side-channel attacks.�
Konsequenzen
Mehrere Sicherheitsvorkehrungen zu Nichte gemacht
Viele verschiedene Lücken ausnützbar
Spectre Angri�e
Zitat:
�Speculative execution implementations violate the securityassumptions underpinning numerous software security mechanisms,including operating system process separation, containerization,just-in-time (JIT) compilation, and countermeasures to cachetiming and side-channel attacks.�
Konsequenzen
Mehrere Sicherheitsvorkehrungen zu Nichte gemacht
Viele verschiedene Lücken ausnützbar
Spectre Angri�e
Zitat:
�Speculative execution implementations violate the securityassumptions underpinning numerous software security mechanisms,including operating system process separation, containerization,just-in-time (JIT) compilation, and countermeasures to cachetiming and side-channel attacks.�
Konsequenzen
Mehrere Sicherheitsvorkehrungen zu Nichte gemacht
Viele verschiedene Lücken ausnützbar
Spectre Angri�e
Zitat:
�Speculative execution implementations violate the securityassumptions underpinning numerous software security mechanisms,including operating system process separation, containerization,just-in-time (JIT) compilation, and countermeasures to cachetiming and side-channel attacks.�
Konsequenzen
Mehrere Sicherheitsvorkehrungen zu Nichte gemacht
Viele verschiedene Lücken ausnützbar
Spectre Versionen und Gegenvorkehrungen
Mehr als zehn verschiedene Versionen bekannt
Einige nur durch Hardware Änderungen behebbar
Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile
Spectre Versionen und Gegenvorkehrungen
Mehr als zehn verschiedene Versionen bekannt
Einige nur durch Hardware Änderungen behebbar
Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile
Spectre Versionen und Gegenvorkehrungen
Mehr als zehn verschiedene Versionen bekannt
Einige nur durch Hardware Änderungen behebbar
Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile
Spectre Versionen und Gegenvorkehrungen
Mehr als zehn verschiedene Versionen bekannt
Einige nur durch Hardware Änderungen behebbar
Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile
Meltdown
1 Einführung
2 Spectre
3 MeltdownGrundinformationenVerö�entlichung
Cache
Das Betriebssystem im virtuelle Adressraum
VorgehensweiseUnterschied zu SpectreGegenvorkehrungen / �Fixes�
4 Weiterführende Literatur
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017
Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan Mangard
Thomas PrescherCyberus Technology GmbH
Werner HaasG-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders Fogh
Google Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann Horn
University of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel Genkin
University of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval Yarom
Rambus Security Division Mike Hamburg
Meltdown - GrundinformationenVerö�entlichung
Meltdown ist eine Sicherheitslücke, die hardwareseitigeZugri�sbeschränkungen �schmelzen� lässt.
Entdeckung: 28. Juli 2017Verö�entlichung: 3. Jänner 2018
Entdecker:
Moritz LippMichael Schwarz
Daniel GrussTU Graz
Stefan MangardThomas Prescher
Cyberus Technology GmbHWerner Haas
G-Data Advanced Analytics Anders FoghGoogle Project Zero Jann HornUniversity of Michigan Daniel GenkinUniversity of Adelaide Yuval YaromRambus Security Division Mike Hamburg
Meltdown - GrundinformationenCache
Zugri� auf Arbeitsspeicher ist vergleichsweise teuer
Räumliche und zeitliche Lokalität tri�t auf viele Programme zu
Cache
Caches sind kleine Zwischenspeicher, die direkt im Prozessorverbaut sind. Nahegelegene Daten werden vorgeladen und abgelegt,um auf diese schneller zugreifen zu können.
Meltdown - GrundinformationenCache
Zugri� auf Arbeitsspeicher ist vergleichsweise teuer
Räumliche und zeitliche Lokalität tri�t auf viele Programme zu
Cache
Caches sind kleine Zwischenspeicher, die direkt im Prozessorverbaut sind. Nahegelegene Daten werden vorgeladen und abgelegt,um auf diese schneller zugreifen zu können.
Meltdown - GrundinformationenCache
Zugri� auf Arbeitsspeicher ist vergleichsweise teuer
Räumliche und zeitliche Lokalität tri�t auf viele Programme zu
Cache
Caches sind kleine Zwischenspeicher, die direkt im Prozessorverbaut sind. Nahegelegene Daten werden vorgeladen und abgelegt,um auf diese schneller zugreifen zu können.
Meltdown - GrundinformationenCache
Zugri� auf Arbeitsspeicher ist vergleichsweise teuer
Räumliche und zeitliche Lokalität tri�t auf viele Programme zu
Cache
Caches sind kleine Zwischenspeicher, die direkt im Prozessorverbaut sind. Nahegelegene Daten werden vorgeladen und abgelegt,um auf diese schneller zugreifen zu können.
Meltdown - GrundinformationenCache
Zugri� auf gecached Daten ist wesentlich schneller
Moderne CPUs haben drei bis vier Levels an Caches.Je gröÿer, desto langsamer ist der Zugri�
Abbildung: Speicherhierachie1
Meltdown - GrundinformationenCache
Zugri� auf gecached Daten ist wesentlich schneller
Moderne CPUs haben drei bis vier Levels an Caches.Je gröÿer, desto langsamer ist der Zugri�
Abbildung: Speicherhierachie1
Meltdown - GrundinformationenCache
Zugri� auf gecached Daten ist wesentlich schneller
Moderne CPUs haben drei bis vier Levels an Caches.Je gröÿer, desto langsamer ist der Zugri�
Abbildung: Speicherhierachie1
Meltdown - GrundinformationenCache
Zugri� auf gecached Daten ist wesentlich schneller
Moderne CPUs haben drei bis vier Levels an Caches.Je gröÿer, desto langsamer ist der Zugri�
Abbildung: Speicherhierachie1
1Quelle: TU Chemnitz - Rechnerarchitektur und -systeme
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-AdressraumProgramm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-Adressraum
System Call
Programm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-Adressraum
Interrupt
System Call
Programm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-Adressraum
Interrupt
System Call
Programm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-AdressraumProgramm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-AdressraumProgramm-Adressraum
CR3
Ausfuhrung fortsetzen
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-AdressraumProgramm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Kernel-AdressraumProgramm-Adressraum
CR3
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Programm-Adressraum
CR3
Kernel-Adressraum
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
0xffff880000000000 (bei Linux x86 64)
Programm-Adressraum
CR3
Kernel-Adressraum
Programm hat keinen R/W-Zugriffab dieser Adresse
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Programm-Adressraum
CR3
Kernel-Adressraum
Syst
emC
all
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Programm-Adressraum
CR3
Kernel-Adressraum Interrupt
Syst
emC
all
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Programm-Adressraum
CR3
Kernel-Adressraum Interrupt
Syst
emC
all
Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum
Programm-Adressraum
CR3
Kernel-Adressraum
Ausf
uhru
ng
fort
setz
en
Meltdown - Vorgehensweise
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE . . .
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
A5 . . .
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
A5 . . .
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
Reorder Buffer
A5
. . .
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
Reorder Buffer
A5
. . .A5
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
Reorder Buffer
A5
. . .A5
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
Reorder Buffer
A5
shl rax, 0xC
A5000
. . .A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
Reorder Buffer
A5
shl rax, 0xC
A5000
. . .A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
BA0A5000
A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
BA0A5000
Page A5
A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
BA0A5000
Page A5
. . .A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
A5
shl rax, 0xC
A5000
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
BA0A5000
Page A5
. . .A5000
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
shl rax, 0xC
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
Page A5
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
shl rax, 0xC
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
Page A5
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
shl rax, 0xC
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
Page A5
Meltdown - Vorgehensweise
Programm-Adressraum
Kernel-Adressraum
0xA5 0xBADEAFFE
CPU-Register
rax rbx rcx
BADEAFFE
mov al, byte [rcx]
L1-Cache
Reorder Buffer
shl rax, 0xC
256 Pages a 4KiB
0xBA000000
BA000000 . . .
...
...
Page 00
Page 01
Page 02
Page 03
Page A5
Page FC
Page FD
Page FE
Page FF
mov rbx, qword [rbx + rax]
Page A5
0xBADEAFFE ist 0xA5
Meltdown - Unterschied zu Spectre
Meltdown unterscheidet sich von Spectre in vielen Hinsichten:
Meltdown Spectre
ProzessorenViele Intel CPUsEinige ARM CPUs
Unter anderem vieleIntel, AMD undARM CPUs
Mechanismus
Race Condition:Berechtigungsprüfungnach spekulativer
Ausführung
Branch Prediction
Datenzugri�Kernel-Speicher undsomit gesamter
physikalischer Speicher
AndereUser-Prozesse
Meltdown - Unterschied zu Spectre
Meltdown unterscheidet sich von Spectre in vielen Hinsichten:
Meltdown Spectre
ProzessorenViele Intel CPUsEinige ARM CPUs
Unter anderem vieleIntel, AMD undARM CPUs
Mechanismus
Race Condition:Berechtigungsprüfungnach spekulativer
Ausführung
Branch Prediction
Datenzugri�Kernel-Speicher undsomit gesamter
physikalischer Speicher
AndereUser-Prozesse
Meltdown - Unterschied zu Spectre
Meltdown unterscheidet sich von Spectre in vielen Hinsichten:
Meltdown Spectre
ProzessorenViele Intel CPUsEinige ARM CPUs
Unter anderem vieleIntel, AMD undARM CPUs
Mechanismus
Race Condition:Berechtigungsprüfungnach spekulativer
Ausführung
Branch Prediction
Datenzugri�Kernel-Speicher undsomit gesamter
physikalischer Speicher
AndereUser-Prozesse
Meltdown - Unterschied zu Spectre
Meltdown unterscheidet sich von Spectre in vielen Hinsichten:
Meltdown Spectre
ProzessorenViele Intel CPUsEinige ARM CPUs
Unter anderem vieleIntel, AMD undARM CPUs
Mechanismus
Race Condition:Berechtigungsprüfungnach spekulativer
Ausführung
Branch Prediction
Datenzugri�Kernel-Speicher undsomit gesamter
physikalischer Speicher
AndereUser-Prozesse
Meltdown - Gegenvorkehrungen / �Fixes�
Vollständige Behebung nur über Austausch von Hardwaremöglich(z.B. Whiskey Lake für Laptops oder Cascade Lake für Server)
KPTI - Workaround: JederProzess erhält zweiPage-Tabellen:
Nur essentiellerKernel-Code und -Datenwerden im Ring 3gemappedBei Wechsel in Ring 0wird gesamter Kerneleingehängt
Meltdown - Gegenvorkehrungen / �Fixes�
Vollständige Behebung nur über Austausch von Hardwaremöglich(z.B. Whiskey Lake für Laptops oder Cascade Lake für Server)
KPTI - Workaround: JederProzess erhält zweiPage-Tabellen:
Nur essentiellerKernel-Code und -Datenwerden im Ring 3gemappedBei Wechsel in Ring 0wird gesamter Kerneleingehängt
Meltdown - Gegenvorkehrungen / �Fixes�
Vollständige Behebung nur über Austausch von Hardwaremöglich(z.B. Whiskey Lake für Laptops oder Cascade Lake für Server)
KPTI - Workaround: JederProzess erhält zweiPage-Tabellen:
Nur essentiellerKernel-Code und -Datenwerden im Ring 3gemappedBei Wechsel in Ring 0wird gesamter Kerneleingehängt
Abbildung: KPTI2
2Quelle: Wikimedia Foundation
Meltdown - Gegenvorkehrungen / �Fixes�
Vollständige Behebung nur über Austausch von Hardwaremöglich(z.B. Whiskey Lake für Laptops oder Cascade Lake für Server)
KPTI - Workaround: JederProzess erhält zweiPage-Tabellen:
Nur essentiellerKernel-Code und -Datenwerden im Ring 3gemapped
Bei Wechsel in Ring 0wird gesamter Kerneleingehängt
Abbildung: KPTI2
2Quelle: Wikimedia Foundation
Meltdown - Gegenvorkehrungen / �Fixes�
Vollständige Behebung nur über Austausch von Hardwaremöglich(z.B. Whiskey Lake für Laptops oder Cascade Lake für Server)
KPTI - Workaround: JederProzess erhält zweiPage-Tabellen:
Nur essentiellerKernel-Code und -Datenwerden im Ring 3gemappedBei Wechsel in Ring 0wird gesamter Kerneleingehängt Abbildung: KPTI2
2Quelle: Wikimedia Foundation
Weiterführende Literatur
1 Generell
Meltdown / Spectre Webpage und Paper(https://meltdownattack.com/)Google Project Zero Blog(https://googleprojectzero.blogspot.com/. . . )
2 Meltdown-spezi�sch
Referenz-Implementation der TU Graz(Github: IAIK/meltdown)G DATA Analytics Blog(https://cyber.wtf/. . . )
Vielen Dank für Ihre
Aufmerksamkeit