Sicherheitslücken in der x86 / amd64 -...

Preview:

Citation preview

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

Recommended