ConTExT A Generic Approach for Mitigating Spectre Michael Schwarz, - - PowerPoint PPT Presentation

context
SMART_READER_LITE
LIVE PREVIEW

ConTExT A Generic Approach for Mitigating Spectre Michael Schwarz, - - PowerPoint PPT Presentation

ConTExT A Generic Approach for Mitigating Spectre Michael Schwarz, Moritz Lipp, Claudio Canella, Robert Schilling, Florian Kargl, Daniel Gruss February 26, 2020 Graz University of Technology Transient Execution Attacks www.tugraz.at 1


slide-1
SLIDE 1

ConTExT

A Generic Approach for Mitigating Spectre

Michael Schwarz, Moritz Lipp, Claudio Canella, Robert Schilling, Florian Kargl, Daniel Gruss February 26, 2020

Graz University of Technology

slide-2
SLIDE 2

Transient Execution Attacks

www.tugraz.at 1 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-3
SLIDE 3

Transient Execution Attacks

www.tugraz.at 1 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-4
SLIDE 4

Transient Execution Attacks

www.tugraz.at 1 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-5
SLIDE 5

Transient Execution Attacks

www.tugraz.at 1 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-6
SLIDE 6

Transient Execution Attacks

www.tugraz.at 1 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-7
SLIDE 7

Transient Execution Attacks

www.tugraz.at 1 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-8
SLIDE 8

Transient Execution Attacks

www.tugraz.at

Transient cause

2 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-9
SLIDE 9

Transient Execution Attacks

www.tugraz.at

Transient cause Meltdown-type Meltdown-NM-REG Meltdown-AC Meltdown-DE Meltdown-PF Meltdown-UD Meltdown-SS Meltdown-BR Meltdown-GP Meltdown-MCA Meltdown-AC-LFB Meltdown-AC-LP Meltdown-US Meltdown-P Meltdown-RW Meltdown-PK Meltdown-SM-SB Meltdown-MPX Meltdown-BND Meltdown-CPL-REG Meltdown-NC-SB Meltdown-AVX Meltdown-AD Meltdown-TAA Meltdown-PRM-LFB Meltdown-UC-LFB Meltdown-US-L1 Meltdown-US-LFB Meltdown-US-SB Meltdown-P-L1 Meltdown-P-LFB Meltdown-P-SB Meltdown-P-LP Meltdown-PK-L1 Meltdown-PK-SB Meltdown-AVX-SB Meltdown-AVX-LP Meltdown-AD-LFB Meltdown-AD-SB Meltdown-TAA-LFB Meltdown-TAA-LP Meltdown-TAA-SB

2 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-10
SLIDE 10

Transient Execution Attacks

www.tugraz.at

Transient cause Meltdown-type Meltdown-NM-REG Meltdown-AC Meltdown-DE Meltdown-PF Meltdown-UD Meltdown-SS Meltdown-BR Meltdown-GP Meltdown-MCA Spectre-type Spectre-PHT Spectre-BTB Spectre-RSB Spectre-STL PHT-CA-IP PHT-CA-OP PHT-SA-IP PHT-SA-OP BTB-CA-IP BTB-CA-OP BTB-SA-IP BTB-SA-OP RSB-CA-IP RSB-CA-OP RSB-SA-IP RSB-SA-OP Cross-address-space Same-address-space Cross-address-space Same-address-space Cross-address-space Same-address-space Meltdown-AC-LFB Meltdown-AC-LP Meltdown-US Meltdown-P Meltdown-RW Meltdown-PK Meltdown-SM-SB Meltdown-MPX Meltdown-BND Meltdown-CPL-REG Meltdown-NC-SB Meltdown-AVX Meltdown-AD Meltdown-TAA Meltdown-PRM-LFB Meltdown-UC-LFB Meltdown-US-L1 Meltdown-US-LFB Meltdown-US-SB Meltdown-P-L1 Meltdown-P-LFB Meltdown-P-SB Meltdown-P-LP Meltdown-PK-L1 Meltdown-PK-SB Meltdown-AVX-SB Meltdown-AVX-LP Meltdown-AD-LFB Meltdown-AD-SB Meltdown-TAA-LFB Meltdown-TAA-LP Meltdown-TAA-SB

2 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-11
SLIDE 11

Transient Execution Attacks

www.tugraz.at

Transient cause Meltdown-type Meltdown-NM-REG Meltdown-AC Meltdown-DE Meltdown-PF Meltdown-UD Meltdown-SS Meltdown-BR Meltdown-GP Meltdown-MCA Spectre-type Spectre-PHT Spectre-BTB Spectre-RSB Spectre-STL PHT-CA-IP PHT-CA-OP PHT-SA-IP PHT-SA-OP BTB-CA-IP BTB-CA-OP BTB-SA-IP BTB-SA-OP RSB-CA-IP RSB-CA-OP RSB-SA-IP RSB-SA-OP Cross-address-space Same-address-space Cross-address-space Same-address-space Cross-address-space Same-address-space Meltdown-AC-LFB Meltdown-AC-LP Meltdown-US Meltdown-P Meltdown-RW Meltdown-PK Meltdown-SM-SB Meltdown-MPX Meltdown-BND Meltdown-CPL-REG Meltdown-NC-SB Meltdown-AVX Meltdown-AD Meltdown-TAA Meltdown-PRM-LFB Meltdown-UC-LFB Meltdown-US-L1 Meltdown-US-LFB Meltdown-US-SB Meltdown-P-L1 Meltdown-P-LFB Meltdown-P-SB Meltdown-P-LP Meltdown-PK-L1 Meltdown-PK-SB Meltdown-AVX-SB Meltdown-AVX-LP Meltdown-AD-LFB Meltdown-AD-SB Meltdown-TAA-LFB Meltdown-TAA-LP Meltdown-TAA-SB

2 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-12
SLIDE 12

Spectre Attacks

www.tugraz.at

Spectre-type Spectre-PHT Spectre-BTB Spectre-RSB Spectre-STL PHT-CA-IP PHT-CA-OP PHT-SA-IP PHT-SA-OP BTB-CA-IP BTB-CA-OP BTB-SA-IP BTB-SA-OP RSB-CA-IP RSB-CA-OP RSB-SA-IP RSB-SA-OP Cross-address-space Same-address-space Cross-address-space Same-address-space Cross-address-space Same-address-space

3 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-13
SLIDE 13

Spectre Root Cause

www.tugraz.at

  • peration #n

time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-14
SLIDE 14

Spectre Root Cause

www.tugraz.at

  • peration #n

prediction time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-15
SLIDE 15

Spectre Root Cause

www.tugraz.at

  • peration #n

prediction

  • peration #n+2

predict CF/DF

time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-16
SLIDE 16

Spectre Root Cause

www.tugraz.at

  • peration #n

prediction

  • peration #n+2

predict CF/DF

possibly architectural

transient execution

time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-17
SLIDE 17

Spectre Root Cause

www.tugraz.at

  • peration #n

retire

prediction

  • peration #n+2

predict CF/DF

possibly architectural

transient execution

time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-18
SLIDE 18

Spectre Root Cause

www.tugraz.at

  • peration #n

retire

prediction

retire

  • peration #n+2

predict CF/DF

possibly architectural

transient execution

flush pipeline

  • n wrong

prediction

time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-19
SLIDE 19

Spectre Root Cause

www.tugraz.at

  • peration #n

retire

prediction

retire

  • peration #n+2

retire predict CF/DF

possibly architectural

transient execution

flush pipeline

  • n wrong

prediction

time

4 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-20
SLIDE 20

Spectre

www.tugraz.at 5 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-21
SLIDE 21

Spectre Gadget

www.tugraz.at

if(x < array_len) { y = oracle[array[x] * 4096]; }

6 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-22
SLIDE 22

Spectre Gadget Illustrated

www.tugraz.at

Memory D A T A K E Y

· · · array[0] array[1] array[2] array[3] Speculate

Oracle A B C D E F G H I J K L M N O P Q R S T U V W X Y Z K K x = 4 if (x < 4)

  • racle[array[x]]

{} then else K

7 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-23
SLIDE 23

Unprotected Execution

www.tugraz.at

Unprotected

cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8)

8 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-24
SLIDE 24

Unprotected Execution

www.tugraz.at

Unprotected

cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check

8 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-25
SLIDE 25

Unprotected Execution

www.tugraz.at

Unprotected

cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Access out-of-bounds array[x]

8 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-26
SLIDE 26

Unprotected Execution

www.tugraz.at

Unprotected

cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Access out-of-bounds array[x] Secret in rax

8 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-27
SLIDE 27

Unprotected Execution

www.tugraz.at

Unprotected

cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Access out-of-bounds array[x] Secret in rax Access secret-dependent memory location

8 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-28
SLIDE 28

Fixed Spectre Gadget

www.tugraz.at

if(x < array_len) { asm volatile("lfence"); y = oracle[array[x] * 4096]; }

9 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-29
SLIDE 29

Memory Barriers

www.tugraz.at

Serializing Barrier

not executed1 cmp rdi, .array len jbe .else lfence stall mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8)

10 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-30
SLIDE 30

Memory Barriers

www.tugraz.at

Serializing Barrier

not executed1 cmp rdi, .array len jbe .else lfence stall mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Stop speculation

10 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-31
SLIDE 31

Memory Barriers

www.tugraz.at

Serializing Barrier

not executed1 cmp rdi, .array len jbe .else lfence stall mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Stop speculation Cannot access out-of-bounds array[x]

10 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-32
SLIDE 32

Performance Impact

www.tugraz.at

  • 62 % – 74.8 % overhead

11 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-33
SLIDE 33

Performance Impact

www.tugraz.at

  • 62 % – 74.8 % overhead
  • Additional overhead for other Spectre variants 5 % – 50 %

11 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-34
SLIDE 34

Performance Impact

www.tugraz.at

  • 62 % – 74.8 % overhead
  • Additional overhead for other Spectre variants 5 % – 50 %
  • Identify leaking branches → difficult

11 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-35
SLIDE 35

ConTExT

www.tugraz.at

From identifying branches...

12 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-36
SLIDE 36

ConTExT

www.tugraz.at

From identifying branches...

12 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-37
SLIDE 37

ConTExT

www.tugraz.at

From identifying branches... ...to identifying secrets

12 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-38
SLIDE 38

Annotate Secrets

www.tugraz.at

Annotated secrets...

13 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-39
SLIDE 39

Annotate Secrets

www.tugraz.at

Annotated secrets...

13 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-40
SLIDE 40

Annotate Secrets

www.tugraz.at

Annotated secrets... ...stored in non-speculatable memory

13 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-41
SLIDE 41

ConTExT Basic Idea

www.tugraz.at

Secrets can transiently enter registers...

14 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-42
SLIDE 42

ConTExT Basic Idea

www.tugraz.at

Secrets can transiently enter registers... ...but not transiently leave them

14 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-43
SLIDE 43

Spectre Gadget with ConTExT

www.tugraz.at

char nospec array[16]; if(x < array_len) { y = oracle[array[x] * 4096]; }

15 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-44
SLIDE 44

ConTExT

www.tugraz.at

ConTExT

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8)

16 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-45
SLIDE 45

ConTExT

www.tugraz.at

ConTExT

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check

16 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-46
SLIDE 46

ConTExT

www.tugraz.at

ConTExT

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Access out-of-bounds array[x]

16 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-47
SLIDE 47

ConTExT

www.tugraz.at

ConTExT

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Access out-of-bounds array[x] Secret in rax, no operations on secret

16 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-48
SLIDE 48

ConTExT

www.tugraz.at

ConTExT

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Access out-of-bounds array[x] Secret in rax, no operations on secret Independent operations continue out-of-order

16 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-49
SLIDE 49

ConTExT Requirements

www.tugraz.at

New Memory Type

17 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-50
SLIDE 50

ConTExT Requirements

www.tugraz.at

New Memory Type Simple Taint Tracking

17 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-51
SLIDE 51

ConTExT Requirements

www.tugraz.at

New Memory Type Simple Taint Tracking Compiler Support

17 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-52
SLIDE 52

ConTExT Requirements

www.tugraz.at

New Memory Type Simple Taint Tracking Compiler Support OS Support

17 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-53
SLIDE 53

ConTExT-light

www.tugraz.at

New Memory Type Simple Taint Tracking Compiler Support OS Support

18 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-54
SLIDE 54

ConTExT-light

www.tugraz.at

Uncachable Memory Simple Taint Tracking Compiler Support OS Support

18 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-55
SLIDE 55

ConTExT-light

www.tugraz.at

Uncachable Memory No Taint Tracking Compiler Support OS Support

18 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-56
SLIDE 56

ConTExT-light

www.tugraz.at

Uncachable Memory No Taint Tracking LLVM Support OS Support

18 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-57
SLIDE 57

ConTExT-light

www.tugraz.at

Uncachable Memory No Taint Tracking LLVM Support Linux Kernel Module

18 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-58
SLIDE 58

ConTExT-light

www.tugraz.at

ConTExT-light

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8)

19 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-59
SLIDE 59

ConTExT-light

www.tugraz.at

ConTExT-light

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check

19 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-60
SLIDE 60

ConTExT-light

www.tugraz.at

ConTExT-light

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Out-of-bounds access array[x] stalls

19 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-61
SLIDE 61

ConTExT-light

www.tugraz.at

ConTExT-light

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Out-of-bounds access array[x] stalls Dependent operations stall

19 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-62
SLIDE 62

ConTExT-light

www.tugraz.at

ConTExT-light

not executed cmp rdi, .array len jbe .else mov (rax + rdi),al shl 12,rax and 0xff000,eax mov (rdx + rax),al mov 0,rax retq mov rax,(rsp + 8) Bounds check Out-of-bounds access array[x] stalls Dependent operations stall Independent operations continue out-of-order

19 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-63
SLIDE 63

Compare

www.tugraz.at

char oracle[256 * 4096]; // nospec for ConTExT-light char /*nospec*/ secret = 'X'; if(speculate()) { // LFENCE here for mitigation

  • racle[secret * 4096]; // encode secret
  • racle['E' * 4096]; // encode public value

}

66 68 70 72 74 76 78 80 82 84 86 88 90 100 200 300

No secret 0x45 Secret 0x58

Page of oracle Latency [cycles]

unprotected

20 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-64
SLIDE 64

Compare

www.tugraz.at

char oracle[256 * 4096]; // nospec for ConTExT-light char /*nospec*/ secret = 'X'; if(speculate()) { asm volatile("lfence");

  • racle[secret * 4096]; // encode secret
  • racle['E' * 4096]; // encode public value

}

66 68 70 72 74 76 78 80 82 84 86 88 90 100 200 300

No secret 0x45 Secret 0x58

Page of oracle Latency [cycles]

unprotected lfence

20 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-65
SLIDE 65

Compare

www.tugraz.at

char oracle[256 * 4096]; // nospec for ConTExT-light char nospec secret = 'X'; if(speculate()) { // LFENCE here for mitigation

  • racle[secret * 4096]; // encode secret
  • racle['E' * 4096]; // encode public value

}

66 68 70 72 74 76 78 80 82 84 86 88 90 100 200 300

No secret 0x45 Secret 0x58

Page of oracle Latency [cycles]

unprotected lfence ConTExT

20 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-66
SLIDE 66

Performance

www.tugraz.at

AES-NI 0 %

21 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-67
SLIDE 67

Performance

www.tugraz.at

AES-NI 0 % VeraCrypt 3.21 % (mount) / 0 % (encrypt)

21 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-68
SLIDE 68

Performance

www.tugraz.at

AES-NI 0 % VeraCrypt 3.21 % (mount) / 0 % (encrypt) OpenSSH 24.7 % (init) / 5.4 % (transfer)

21 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-69
SLIDE 69

Performance

www.tugraz.at

AES-NI 0 % VeraCrypt 3.21 % (mount) / 0 % (encrypt) OpenSSH 24.7 % (init) / 5.4 % (transfer) NGINX 7.3 %

21 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-70
SLIDE 70

GitHub

www.tugraz.at

You can find our proof-of-concept implementation on:

  • https://github.com/IAIK/contextlight

22 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-71
SLIDE 71

A New Memory Type

www.tugraz.at

“A New Memory Type against Speculative Side Channel Attacks” [SBH19]

23 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-72
SLIDE 72

A New Memory Type

www.tugraz.at

“A New Memory Type against Speculative Side Channel Attacks” [SBH19] “Memory Type Which is Cacheable Yet Inaccessible by Speculative Instructions” [Bog+19]

23 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-73
SLIDE 73

More Details

www.tugraz.at

More details in the paper [Sch+20]

  • Compiler modifications
  • Taint tracking in register/cache/TLB
  • Handling context switches
  • . . .

NDSS’20

Michael Schwarz, Moritz Lipp, Claudio Canella, Robert Schilling, Florian Kargl, Daniel Gruss. ConTExT: A Generic Approach for Mitigating Spectre. 24 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-74
SLIDE 74

Conclusion

www.tugraz.at

  • ConTExT is data-based instead of instruction-based

25 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-75
SLIDE 75

Conclusion

www.tugraz.at

  • ConTExT is data-based instead of instruction-based
  • Mitigates the root cause (leakage) instead of the covert channel

25 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-76
SLIDE 76

Conclusion

www.tugraz.at

  • ConTExT is data-based instead of instruction-based
  • Mitigates the root cause (leakage) instead of the covert channel
  • Applicable to all Spectre variants with low overhead

25 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-77
SLIDE 77

Conclusion

www.tugraz.at

  • ConTExT is data-based instead of instruction-based
  • Mitigates the root cause (leakage) instead of the covert channel
  • Applicable to all Spectre variants with low overhead
  • All changes are fully backward compatible

25 Michael Schwarz (@misc0110) et al. — Graz University of Technology

slide-78
SLIDE 78

ConTExT

A Generic Approach for Mitigating Spectre

Michael Schwarz, Moritz Lipp, Claudio Canella, Robert Schilling, Florian Kargl, Daniel Gruss February 26, 2020

Graz University of Technology

slide-79
SLIDE 79

Acknowledgements

www.tugraz.at

We thank our anonymous reviewers for their comments and suggestions that helped improving the

  • paper. The project was supported by the European Research Council (ERC) under the European

Union’s Horizon 2020 research and innovation programme (grant agreement No 681402). It was also supported by the Austrian Research Promotion Agency (FFG) via the K-project DeSSnet, which is funded in the context of COMET - Competence Centers for Excellent Technologies by BMVIT, BMWFW, Styria and Carinthia. This work has additionally been supported by the Austrian Research Promotion Agency (FFG) via the project ESPRESSO, which is funded by the Province of Styria and the Business Promotion Agencies of Styria and Carinthia. This work has also been supported by the Austrian Research Promotion Agency (FFG) via the competence center Know-Center (grant number 844595), which is funded in the context of COMET – Competence Centers for Excellent Technologies by BMVIT, BMWFW, and Styria. Additional funding was provided by generous gifts from ARM and

  • Intel. Any opinions, findings, and conclusions or recommendations expressed in this paper are those of

the authors and do not necessarily reflect the views of the funding parties.

slide-80
SLIDE 80

References

  • D. D. Boggs, R. Segelken, M. Cornaby, N. Fortino, S. Chaudhry, D. Khartikov,
  • A. Mooley, N. Tuck, and G. Vreugdenhil. Memory type which is cacheable yet

inaccessible by speculative instructions. US Patent App. 16/022,274. 2019.

  • K. Sun, R. Branco, and K. Hu. A New Memory Type Against Speculative Side

Channel Attacks. 2019.

  • M. Schwarz, M. Lipp, C. Canella, R. Schilling, F. Kargl, and D. Gruss. ConTExT:

A Generic Approach for Mitigating Spectre. In: NDSS. 2020.