timeline of a vulnerability timeline of a vulnerability is this all a conspiracy? vulnerability...

237

Upload: others

Post on 01-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 2: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Is this all a conspiracy?

• Vulnerability existed for many years

• No one discovered it before

• Suddenly, 4 independent teams discover it within 6 months

• Let’s create an evidence board

1 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 3: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Is this all a conspiracy?

• Vulnerability existed for many years

• No one discovered it before

• Suddenly, 4 independent teams discover it within 6 months

• Let’s create an evidence board

1 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 4: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Is this all a conspiracy?

• Vulnerability existed for many years

• No one discovered it before

• Suddenly, 4 independent teams discover it within 6 months

• Let’s create an evidence board

1 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 5: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Is this all a conspiracy?

• Vulnerability existed for many years

• No one discovered it before

• Suddenly, 4 independent teams discover it within 6 months

• Let’s create an evidence board

1 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 6: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 7: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 8: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 9: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 10: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 11: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 12: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 13: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 14: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 15: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 16: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 17: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 18: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 19: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 20: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 21: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 22: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Not a conspiracy

• Tools to detect the bug only invented in 2014

• No broad interest in microarchitectural attacks before

• Discovering teams quite knowledgeable in this area

• The bug was “ripe” ⇒ a consequence of research in this area

→ bug collision nearly inevitable

2 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 23: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Not a conspiracy

• Tools to detect the bug only invented in 2014

• No broad interest in microarchitectural attacks before

• Discovering teams quite knowledgeable in this area

• The bug was “ripe” ⇒ a consequence of research in this area

→ bug collision nearly inevitable

2 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 24: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Not a conspiracy

• Tools to detect the bug only invented in 2014

• No broad interest in microarchitectural attacks before

• Discovering teams quite knowledgeable in this area

• The bug was “ripe” ⇒ a consequence of research in this area

→ bug collision nearly inevitable

2 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 25: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Not a conspiracy

• Tools to detect the bug only invented in 2014

• No broad interest in microarchitectural attacks before

• Discovering teams quite knowledgeable in this area

• The bug was “ripe” ⇒ a consequence of research in this area

→ bug collision nearly inevitable

2 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 26: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Timeline of a Vulnerability www.tugraz.at

Not a conspiracy

• Tools to detect the bug only invented in 2014

• No broad interest in microarchitectural attacks before

• Discovering teams quite knowledgeable in this area

• The bug was “ripe” ⇒ a consequence of research in this area

→ bug collision nearly inevitable

2 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 27: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 28: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 29: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 30: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 31: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 32: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 33: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 34: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 35: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 36: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 37: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 38: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 39: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 40: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Fallout www.tugraz.at

You realize it is something big when...

• it is in the news, all over the world

• you get a Wikipedia article in multiple languages

• there are comics, including xkcd

• you get a lot of Twitter follower after Snowden mentioned you

3 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 41: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Wall www.tugraz.at

4 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 42: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Core of Meltdown/Spectre www.tugraz.at

• Kernel is isolated from user space

• This isolation is a combination of

hardware and software

• User applications cannot access

anything from the kernel

• There is only a well-defined

interface → syscalls

Userspace Kernelspace

ApplicationsOperatingSystem Memory

5 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 43: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Core of Meltdown/Spectre www.tugraz.at

• Kernel is isolated from user space

• This isolation is a combination of

hardware and software

• User applications cannot access

anything from the kernel

• There is only a well-defined

interface → syscalls

Userspace Kernelspace

ApplicationsOperatingSystem Memory

5 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 44: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Core of Meltdown/Spectre www.tugraz.at

• Kernel is isolated from user space

• This isolation is a combination of

hardware and software

• User applications cannot access

anything from the kernel

• There is only a well-defined

interface → syscalls

Userspace Kernelspace

ApplicationsOperatingSystem Memory

5 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 45: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

The Core of Meltdown/Spectre www.tugraz.at

• Kernel is isolated from user space

• This isolation is a combination of

hardware and software

• User applications cannot access

anything from the kernel

• There is only a well-defined

interface → syscalls

Userspace Kernelspace

ApplicationsOperatingSystem Memory

5 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 46: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 47: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 48: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 49: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 50: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

1337 4242

Revolutionary concept!

Store your food at home, never go to the grocery store during cooking.

Can store ALL kinds of food.

ONLY TODAY INSTEAD OF $1,300

ORDER VIA PHONE: +555 12345

Page 51: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);

printf("%d", i);

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 52: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss

printf("%d", i);

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 53: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss Request

printf("%d", i);

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 54: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss Request

Response

printf("%d", i);

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 55: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 56: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

Cache hit

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 57: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

Cache hit

DRAM access,slow

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 58: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

CPU Cache www.tugraz.at

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

Cache hit

No DRAM access,

much faster

DRAM access,slow

6 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 59: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 60: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER

Shared Memory

cached

cached

VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 61: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER

Shared Memory

VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 62: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 63: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 64: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER

Shared Memory

VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 65: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER

Shared Memory

VICTIM

flushaccess

access

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 66: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Flush+Reload www.tugraz.at

Shared Memory

ATTACKER

Shared Memory

VICTIM

flushaccess

access

fast if victim accessed data,slow otherwise

7 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 67: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Back to Work

Page 68: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 69: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 70: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Wait for an hour

Page 71: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Wait for an hour

LATENCY

Page 72: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 73: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

ParallelizeD

epen

denc

y

Page 74: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Out-of-order Execution www.tugraz.at

int width = 10, height = 5;

float diagonal = sqrt(width * width

+ height * height);

int area = width * height;

printf("Area %d x %d = %d\n", width, height, area);

8 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 75: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Out-of-order Execution www.tugraz.at

int width = 10, height = 5;

float diagonal = sqrt(width * width

+ height * height);

int area = width * height;

printf("Area %d x %d = %d\n", width, height, area);

ParallelizeD

epen

denc

y

8 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 76: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Find something human readable, e.g., the Linux version

# sudo grep linux_banner /proc/kallsyms

ffffffff81a000e0 R linux_banner

9 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 77: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

char data = *(char*)0xffffffff81a000e0;

printf("%c\n", data);

10 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 78: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Compile and run

segfault at ffffffff81a000e0 ip 0000000000400535

sp 00007ffce4a80610 error 5 in reader

• Kernel addresses are of course not accessible

• Any invalid access throws an exception → segmentation fault

11 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 79: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Compile and run

segfault at ffffffff81a000e0 ip 0000000000400535

sp 00007ffce4a80610 error 5 in reader

• Kernel addresses are of course not accessible

• Any invalid access throws an exception → segmentation fault

11 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 80: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Compile and run

segfault at ffffffff81a000e0 ip 0000000000400535

sp 00007ffce4a80610 error 5 in reader

• Kernel addresses are of course not accessible

• Any invalid access throws an exception → segmentation fault

11 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 81: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Just catch the segmentation fault!

• We can simply install a signal handler

• And if an exception occurs, just jump back and continue

• Then we can read the value

• Sounds like a good idea

12 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 82: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Just catch the segmentation fault!

• We can simply install a signal handler

• And if an exception occurs, just jump back and continue

• Then we can read the value

• Sounds like a good idea

12 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 83: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Just catch the segmentation fault!

• We can simply install a signal handler

• And if an exception occurs, just jump back and continue

• Then we can read the value

• Sounds like a good idea

12 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 84: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Just catch the segmentation fault!

• We can simply install a signal handler

• And if an exception occurs, just jump back and continue

• Then we can read the value

• Sounds like a good idea

12 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 85: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Just catch the segmentation fault!

• We can simply install a signal handler

• And if an exception occurs, just jump back and continue

• Then we can read the value

• Sounds like a good idea

12 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 86: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Still no kernel memory

• Maybe it is not that straight forward

• Privilege checks seem to work

• Are privilege checks also done when executing instructions out of order?

• Problem: out-of-order instructions are not visible

13 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 87: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Still no kernel memory

• Maybe it is not that straight forward

• Privilege checks seem to work

• Are privilege checks also done when executing instructions out of order?

• Problem: out-of-order instructions are not visible

13 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 88: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Still no kernel memory

• Maybe it is not that straight forward

• Privilege checks seem to work

• Are privilege checks also done when executing instructions out of order?

• Problem: out-of-order instructions are not visible

13 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 89: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Still no kernel memory

• Maybe it is not that straight forward

• Privilege checks seem to work

• Are privilege checks also done when executing instructions out of order?

• Problem: out-of-order instructions are not visible

13 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 90: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Still no kernel memory

• Maybe it is not that straight forward

• Privilege checks seem to work

• Are privilege checks also done when executing instructions out of order?

• Problem: out-of-order instructions are not visible

13 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 91: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Adapted code

*(volatile char*)0;

array[0] = 0;

• volatile because compiler was not happy

warning : s t a t e m e n t w i t h no e f f e c t [−Wunused−v a l u e ]

∗( c h a r ∗ ) 0 ;

• Static code analyzer is still not happy

warning : D e r e f e r e n c e o f n u l l p o i n t e r

∗( v o l a t i l e c h a r ∗ ) 0 ;

14 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 92: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Adapted code

*(volatile char*)0;

array[0] = 0;

• volatile because compiler was not happy

warning : s t a t e m e n t w i t h no e f f e c t [−Wunused−v a l u e ]

∗( c h a r ∗ ) 0 ;

• Static code analyzer is still not happy

warning : D e r e f e r e n c e o f n u l l p o i n t e r

∗( v o l a t i l e c h a r ∗ ) 0 ;

14 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 93: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Adapted code

*(volatile char*)0;

array[0] = 0;

• volatile because compiler was not happy

warning : s t a t e m e n t w i t h no e f f e c t [−Wunused−v a l u e ]

∗( c h a r ∗ ) 0 ;

• Static code analyzer is still not happy

warning : D e r e f e r e n c e o f n u l l p o i n t e r

∗( v o l a t i l e c h a r ∗ ) 0 ;

14 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 94: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 95: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 96: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 97: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 98: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 99: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 100: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 101: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Traces in the Cache www.tugraz.at

15 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 102: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Out-of-order instructions leave microarchitectural traces

• We can see them for example in the cache

• Give such instructions a name: transient instructions

• We can indirectly observe the execution of transient instructions

16 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 103: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Out-of-order instructions leave microarchitectural traces

• We can see them for example in the cache

• Give such instructions a name: transient instructions

• We can indirectly observe the execution of transient instructions

16 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 104: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Out-of-order instructions leave microarchitectural traces

• We can see them for example in the cache

• Give such instructions a name: transient instructions

• We can indirectly observe the execution of transient instructions

16 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 105: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Out-of-order instructions leave microarchitectural traces

• We can see them for example in the cache

• Give such instructions a name: transient instructions

• We can indirectly observe the execution of transient instructions

16 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 106: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Maybe there is no permission check in transient instructions...

• ...or it is only done when commiting them

• Add another layer of indirection to test

char data = *(char*)0xffffffff81a000e0;

array[data * 4096] = 0;

• Then check whether any part of array is cached

17 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 107: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Maybe there is no permission check in transient instructions...

• ...or it is only done when commiting them

• Add another layer of indirection to test

char data = *(char*)0xffffffff81a000e0;

array[data * 4096] = 0;

• Then check whether any part of array is cached

17 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 108: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Maybe there is no permission check in transient instructions...

• ...or it is only done when commiting them

• Add another layer of indirection to test

char data = *(char*)0xffffffff81a000e0;

array[data * 4096] = 0;

• Then check whether any part of array is cached

17 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 109: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Maybe there is no permission check in transient instructions...

• ...or it is only done when commiting them

• Add another layer of indirection to test

char data = *(char*)0xffffffff81a000e0;

array[data * 4096] = 0;

• Then check whether any part of array is cached

17 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 110: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Flush+Reload over all pages of the array

0 50 100 150 200 250

300

400

500

Page

Accesstime

[cycles]

• Index of cache hit reveals data

• Permission check is in some cases not fast enough

18 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 111: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Building the Code www.tugraz.at

• Flush+Reload over all pages of the array

0 50 100 150 200 250

300

400

500

Page

Accesstime

[cycles]

• Index of cache hit reveals data

• Permission check is in some cases not fast enough

18 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 112: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 113: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 114: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 115: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 116: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Not so fast. . .

Page 117: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Take the kernel addresses... www.tugraz.at

• Kernel addresses in user space are a problem

• Why don’t we take the kernel addresses...

19 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 118: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Take the kernel addresses... www.tugraz.at

• Kernel addresses in user space are a problem

• Why don’t we take the kernel addresses...

19 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 119: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

...and remove them www.tugraz.at

• ...and remove them if not needed?

• User accessible check in hardware is not reliable

20 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 120: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

...and remove them www.tugraz.at

• ...and remove them if not needed?

• User accessible check in hardware is not reliable

20 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 121: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Idea www.tugraz.at

• Let’s just unmap the kernel in user space

• Kernel addresses are then no longer present

• Memory which is not mapped cannot be accessed at all

21 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 122: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Idea www.tugraz.at

• Let’s just unmap the kernel in user space

• Kernel addresses are then no longer present

• Memory which is not mapped cannot be accessed at all

21 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 123: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Idea www.tugraz.at

• Let’s just unmap the kernel in user space

• Kernel addresses are then no longer present

• Memory which is not mapped cannot be accessed at all

21 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 124: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 125: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Isolation to have Side channels Efficiently Removed

Page 126: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Isolation to have Side channels Efficiently Removed

KAISER /ˈkʌɪzə/1. [german] Emperor,ruler of an empire2. largest penguin, emperor penguin

Page 127: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Userspace Kernelspace

ApplicationsOperating

System Memory

Page 128: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Userspace Kernelspace

ApplicationsOperatingSystem Memory

Userspace Kernelspace

Applications

Kernel View User View

context switch

Page 129: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Space Isolation www.tugraz.at

• We published KAISER in July 2017

• Intel and others improved and merged it into Linux as KPTI (Kernel

Page Table Isolation)

• Microsoft implemented similar concept in Windows 10

• Apple implemented it in macOS 10.13.2 and called it “Double Map”

• All share the same idea: switching address spaces on context switch

22 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 130: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Space Isolation www.tugraz.at

• We published KAISER in July 2017

• Intel and others improved and merged it into Linux as KPTI (Kernel

Page Table Isolation)

• Microsoft implemented similar concept in Windows 10

• Apple implemented it in macOS 10.13.2 and called it “Double Map”

• All share the same idea: switching address spaces on context switch

22 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 131: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Space Isolation www.tugraz.at

• We published KAISER in July 2017

• Intel and others improved and merged it into Linux as KPTI (Kernel

Page Table Isolation)

• Microsoft implemented similar concept in Windows 10

• Apple implemented it in macOS 10.13.2 and called it “Double Map”

• All share the same idea: switching address spaces on context switch

22 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 132: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Space Isolation www.tugraz.at

• We published KAISER in July 2017

• Intel and others improved and merged it into Linux as KPTI (Kernel

Page Table Isolation)

• Microsoft implemented similar concept in Windows 10

• Apple implemented it in macOS 10.13.2 and called it “Double Map”

• All share the same idea: switching address spaces on context switch

22 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 133: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Kernel Address Space Isolation www.tugraz.at

• We published KAISER in July 2017

• Intel and others improved and merged it into Linux as KPTI (Kernel

Page Table Isolation)

• Microsoft implemented similar concept in Windows 10

• Apple implemented it in macOS 10.13.2 and called it “Double Map”

• All share the same idea: switching address spaces on context switch

22 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 134: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 135: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Performance www.tugraz.at

• Depends on how often you need to switch between kernel and user space

• Can be slow, 40% or more on old hardware

• But modern CPUs have additional features

• ⇒ Performance overhead on average below 2%

23 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 136: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Performance www.tugraz.at

• Depends on how often you need to switch between kernel and user space

• Can be slow, 40% or more on old hardware

• But modern CPUs have additional features

• ⇒ Performance overhead on average below 2%

23 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 137: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Performance www.tugraz.at

• Depends on how often you need to switch between kernel and user space

• Can be slow, 40% or more on old hardware

• But modern CPUs have additional features

• ⇒ Performance overhead on average below 2%

23 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 138: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Performance www.tugraz.at

• Depends on how often you need to switch between kernel and user space

• Can be slow, 40% or more on old hardware

• But modern CPUs have additional features

• ⇒ Performance overhead on average below 2%

23 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 139: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Meltdown and Spectre www.tugraz.at

24 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 140: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Meltdown and Spectre www.tugraz.at

24 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 141: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 142: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Prosciutto

Page 143: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Funghi

Page 144: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Diavolo

Page 145: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Diavolo

Page 146: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Diavolo

Page 147: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Diavolo

Page 148: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

»A table for 6 please«

Page 149: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 150: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Speculative Cooking

Page 151: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

»A table for 6 please«

Page 152: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 153: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 154: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 155: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 156: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 0;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 157: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 0;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 158: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 0;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 159: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Execute

index = 0;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 160: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 1;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 161: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 1;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 162: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 1;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 163: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 1;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 164: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 2;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 165: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 2;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 166: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 2;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 167: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 2;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 168: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 3;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 169: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 3;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 170: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 3;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 171: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 3;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 172: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 4;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 173: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 4;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 174: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 4;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 175: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Execute

index = 4;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 176: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 5;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 177: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 5;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 178: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 5;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 179: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Execute

index = 5;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 180: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 6;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 181: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

index = 6;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 182: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Speculate

index = 6;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 183: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 1) www.tugraz.at

Execute

index = 6;

if (index < 4)

char* data = "textKEY";

LUT[data[index] * 4096] 0

then

else

Prediction

25 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 184: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

swim()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 185: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

Speculate

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

swim()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 186: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

swim()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 187: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

Execute

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

swim()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 188: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 189: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

Speculate

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 190: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = bird;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 191: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = fish;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 192: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

Speculate

a->move()

Animal* a = fish;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 193: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = fish;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 194: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

Execute

a->move()

Animal* a = fish;

LUT[data[index] * 4096] 0

fly()

Prediction

fly()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 195: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre (variant 2) www.tugraz.at

a->move()

Animal* a = fish;

LUT[data[index] * 4096] 0

fly()

Prediction

swim()swim

()

26 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 196: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre www.tugraz.at

• Read own memory (e.g., sandbox escape)

• “Convince” other programs to reveal their secrets

• Again, a cache attack (Flush+Reload) is used to read the secret

• Much harder to fix, KAISER does not help

• Ongoing effort to patch via microcode update and compiler extensions

27 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 197: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre www.tugraz.at

• Read own memory (e.g., sandbox escape)

• “Convince” other programs to reveal their secrets

• Again, a cache attack (Flush+Reload) is used to read the secret

• Much harder to fix, KAISER does not help

• Ongoing effort to patch via microcode update and compiler extensions

27 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 198: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre www.tugraz.at

• Read own memory (e.g., sandbox escape)

• “Convince” other programs to reveal their secrets

• Again, a cache attack (Flush+Reload) is used to read the secret

• Much harder to fix, KAISER does not help

• Ongoing effort to patch via microcode update and compiler extensions

27 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 199: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre www.tugraz.at

• Read own memory (e.g., sandbox escape)

• “Convince” other programs to reveal their secrets

• Again, a cache attack (Flush+Reload) is used to read the secret

• Much harder to fix, KAISER does not help

• Ongoing effort to patch via microcode update and compiler extensions

27 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 200: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre www.tugraz.at

• Read own memory (e.g., sandbox escape)

• “Convince” other programs to reveal their secrets

• Again, a cache attack (Flush+Reload) is used to read the secret

• Much harder to fix, KAISER does not help

• Ongoing effort to patch via microcode update and compiler extensions

27 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 201: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 1 Mitigations www.tugraz.at

• LFENCE

→ speculation barrier to insert after every bounds check

• implemented as a compiler extension

28 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 202: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 1 Mitigations www.tugraz.at

• LFENCE

→ speculation barrier to insert after every bounds check

• implemented as a compiler extension

28 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 203: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 1 Mitigations www.tugraz.at

• LFENCE

→ speculation barrier to insert after every bounds check

• implemented as a compiler extension

28 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 204: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 1 Mitigations www.tugraz.at

• LFENCE

→ speculation barrier to insert after every bounds check

• implemented as a compiler extension

28 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 205: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Microcode/MSRs) www.tugraz.at

• Indirect Branch Restricted Speculation (IBRS):

• do not speculate based on anything before entering IBRS mode

• hyperthreading?

• Indirect Branch Predictor Barrier (IBPB):

• flush branch-target buffer

• hyperthreading?

29 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 206: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Microcode/MSRs) www.tugraz.at

• Indirect Branch Restricted Speculation (IBRS):

• do not speculate based on anything before entering IBRS mode

• hyperthreading?

• Indirect Branch Predictor Barrier (IBPB):

• flush branch-target buffer

• hyperthreading?

29 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 207: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Microcode/MSRs) www.tugraz.at

• Indirect Branch Restricted Speculation (IBRS):

• do not speculate based on anything before entering IBRS mode

• hyperthreading?

• Indirect Branch Predictor Barrier (IBPB):

• flush branch-target buffer

• hyperthreading?

29 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 208: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Microcode/MSRs) www.tugraz.at

• Indirect Branch Restricted Speculation (IBRS):

• do not speculate based on anything before entering IBRS mode

• hyperthreading?

• Indirect Branch Predictor Barrier (IBPB):

• flush branch-target buffer

• hyperthreading?

29 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 209: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Microcode/MSRs) www.tugraz.at

• Indirect Branch Restricted Speculation (IBRS):

• do not speculate based on anything before entering IBRS mode

• hyperthreading?

• Indirect Branch Predictor Barrier (IBPB):

• flush branch-target buffer

• hyperthreading?

29 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 210: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Microcode/MSRs) www.tugraz.at

• Indirect Branch Restricted Speculation (IBRS):

• do not speculate based on anything before entering IBRS mode

• hyperthreading?

• Indirect Branch Predictor Barrier (IBPB):

• flush branch-target buffer

• hyperthreading?

29 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 211: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP)

= retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 212: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 213: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 214: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function

→ performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 215: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 216: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 217: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 218: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Spectre Variant 2 Mitigations (Software) www.tugraz.at

Single Thread Indirect Branch Predictors (STIBP) = retpoline

push <call_target>

call 1f

2: ; speculation will continue here

lfence ; speculation barrier

jmp 2b ; endless loop

1:

lea 8(%rsp), %rsp ; restore stack pointer

ret ; the actual call to <call_target>

→ always predict to enter an endless loop

• instead of the correct (or wrong) target function → performance?

• On Broadwell or newer:

• ret may fall-back to the BTB for prediction

→ microcode patches to prevent that

30 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 219: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 220: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto

→ “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 221: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 222: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR

→ “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 223: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 224: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone

→ “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 225: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 226: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

We have ignored software side-channels for many many years:

• attacks on crypto → “software should be fixed”

• attacks on ASLR → “ASLR is broken anyway”

• attacks on SGX and TrustZone → “not part of the threat model”

→ for years we solely optimized for performance

31 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 227: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

When you read the Intel manuals... www.tugraz.at

After learning about a side channel you realize:

• the side channels were documented in the Intel manual

• only now we understand the implications

32 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 228: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

When you read the Intel manuals... www.tugraz.at

After learning about a side channel you realize:

• the side channels were documented in the Intel manual

• only now we understand the implications

32 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 229: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

When you read the Intel manuals... www.tugraz.at

After learning about a side channel you realize:

• the side channels were documented in the Intel manual

• only now we understand the implications

32 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 230: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

What do we learn from it? www.tugraz.at

Motor Vehicle Deaths in U.S. by Year

33 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 231: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover
Page 232: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

A unique chance www.tugraz.at

A unique chance to

• rethink processor design

• grow up, like other fields (car industry, construction industry)

• find good trade-offs between security and performance

34 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 233: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Conclusion www.tugraz.at

• Underestimated microarchitectural attacks for a long time

• Basic techniques were there for years

• Industry and customers must embrace security mechanisms

• Run through the same development (for security) as the automobile

industry (for safety)

• It should not be “performance first”, but “security first”

35 Daniel Gruss, Moritz Lipp, Michael Schwarz — www.iaik.tugraz.at

Page 234: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Fact or Fiction? www.tugraz.at

FAct

FAct

Page 235: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Fact or Fiction? www.tugraz.at

FAct

FAct

Page 236: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover

Any Questions?

Page 237: Timeline of a Vulnerability Timeline of a Vulnerability Is this all a conspiracy? Vulnerability existed for many years No one discovered it before Suddenly, 4 independent teams discover