133

Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

  • Upload
    vokiet

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Sicherheitslücken in der x86 / amd64 -Architektur

MarcellHaritopoulos

MatthiasPaulitsch

MichaelSismanovic

13. Februar 2019

Page 2: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Inhaltsverzeichnis

1 EinführungGrundinformationenGeschichtliche EntwicklungSpeicherverwaltungProzessor Modi

2 SpectreGrundinformationenOut of Order ExecutionSpectre Angri�eVersionen und Gegenvorkehrungen

3 MeltdownGrundinformationenVorgehensweiseUnterschied zu SpectreGegenvorkehrungen / �Fixes�

4 Weiterführende Literatur

Page 3: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Einführung

1 EinführungGrundinformationenGeschichtliche EntwicklungSpeicherverwaltungProzessor Modi

2 Spectre

3 Meltdown

4 Weiterführende Literatur

Page 4: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 5: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 6: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 7: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 8: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 9: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 10: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 11: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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)

Page 12: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 13: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 14: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 15: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 16: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 17: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 18: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 19: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 20: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 21: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Spectre

1 Einführung

2 SpectreGrundinformationenOut of Order ExecutionSpectre Angri�eVersionen und Gegenvorkehrungen

3 Meltdown

4 Weiterführende Literatur

Page 22: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 23: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 24: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 25: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 26: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 27: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 28: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 29: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 30: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 31: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 32: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 33: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 34: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 35: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 36: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 37: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 38: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 39: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 40: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 41: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 42: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 43: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 44: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 45: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 46: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 47: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 48: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 49: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 50: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 51: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 52: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 53: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 54: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 55: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 56: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 57: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 58: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 59: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 60: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 61: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 62: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 63: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Spectre Versionen und Gegenvorkehrungen

Mehr als zehn verschiedene Versionen bekannt

Einige nur durch Hardware Änderungen behebbar

Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile

Page 64: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Spectre Versionen und Gegenvorkehrungen

Mehr als zehn verschiedene Versionen bekannt

Einige nur durch Hardware Änderungen behebbar

Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile

Page 65: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Spectre Versionen und Gegenvorkehrungen

Mehr als zehn verschiedene Versionen bekannt

Einige nur durch Hardware Änderungen behebbar

Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile

Page 66: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Spectre Versionen und Gegenvorkehrungen

Mehr als zehn verschiedene Versionen bekannt

Einige nur durch Hardware Änderungen behebbar

Mögliche Gegenvorkehrungen bewirken massive PerformanceNachteile

Page 67: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown

1 Einführung

2 Spectre

3 MeltdownGrundinformationenVerö�entlichung

Cache

Das Betriebssystem im virtuelle Adressraum

VorgehensweiseUnterschied zu SpectreGegenvorkehrungen / �Fixes�

4 Weiterführende Literatur

Page 68: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 69: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 70: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 71: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 72: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 73: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 74: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 75: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 76: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 77: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 78: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 79: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 80: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 81: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 82: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 83: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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.

Page 84: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 85: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 86: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 87: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 88: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Page 89: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-AdressraumProgramm-Adressraum

CR3

Page 90: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-Adressraum

System Call

Programm-Adressraum

CR3

Page 91: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-Adressraum

Interrupt

System Call

Programm-Adressraum

CR3

Page 92: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-Adressraum

Interrupt

System Call

Programm-Adressraum

CR3

Page 93: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-AdressraumProgramm-Adressraum

CR3

Page 94: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-AdressraumProgramm-Adressraum

CR3

Ausfuhrung fortsetzen

Page 95: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-AdressraumProgramm-Adressraum

CR3

Page 96: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Kernel-AdressraumProgramm-Adressraum

CR3

Page 97: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Programm-Adressraum

CR3

Kernel-Adressraum

Page 98: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

0xffff880000000000 (bei Linux x86 64)

Programm-Adressraum

CR3

Kernel-Adressraum

Programm hat keinen R/W-Zugriffab dieser Adresse

Page 99: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Programm-Adressraum

CR3

Kernel-Adressraum

Syst

emC

all

Page 100: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Programm-Adressraum

CR3

Kernel-Adressraum Interrupt

Syst

emC

all

Page 101: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Programm-Adressraum

CR3

Kernel-Adressraum Interrupt

Syst

emC

all

Page 102: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - GrundinformationenDas Betriebssystem im virtuelle Adressraum

Programm-Adressraum

CR3

Kernel-Adressraum

Ausf

uhru

ng

fort

setz

en

Page 103: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Page 104: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Programm-Adressraum

Kernel-Adressraum

0xA5 0xBADEAFFE

CPU-Register

rax rbx rcx

BADEAFFE . . .

Page 105: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Programm-Adressraum

Kernel-Adressraum

0xA5 0xBADEAFFE

CPU-Register

rax rbx rcx

BADEAFFE

mov al, byte [rcx]

A5 . . .

Page 106: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Programm-Adressraum

Kernel-Adressraum

0xA5 0xBADEAFFE

CPU-Register

rax rbx rcx

BADEAFFE

mov al, byte [rcx]

A5 . . .

Page 107: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Programm-Adressraum

Kernel-Adressraum

0xA5 0xBADEAFFE

CPU-Register

rax rbx rcx

BADEAFFE

mov al, byte [rcx]

Reorder Buffer

A5

. . .

Page 108: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Programm-Adressraum

Kernel-Adressraum

0xA5 0xBADEAFFE

CPU-Register

rax rbx rcx

BADEAFFE

mov al, byte [rcx]

Reorder Buffer

A5

. . .A5

Page 109: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Meltdown - Vorgehensweise

Programm-Adressraum

Kernel-Adressraum

0xA5 0xBADEAFFE

CPU-Register

rax rbx rcx

BADEAFFE

mov al, byte [rcx]

Reorder Buffer

A5

. . .A5

Page 110: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 111: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 112: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 113: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 114: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 115: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 116: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 117: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 118: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 119: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 120: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 121: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 122: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 123: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 124: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 125: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 126: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 127: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 128: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 129: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 130: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 131: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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

Page 132: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

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/. . . )

Page 133: Sicherheitslücken in der x86 / amd64 - Architekturheld/teaching/wiss_arbeiten/slides_18-19/x86... · Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias

Vielen Dank für Ihre

Aufmerksamkeit