scattercache: thwarting cache attacks via cache …scattercache: thwarting cache attacks via cache...

27
S CATTER C ACHE: Thwarting Cache Attacks via Cache Set Randomization Werner , Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15, 2019 Graz University of Technology

Upload: others

Post on 30-Jun-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE: Thwarting Cache Attacksvia Cache Set Randomization

Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard

August 15, 2019

Graz University of Technology

Page 2: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

What is SCATTERCACHE? www.tugraz.at

• Alternative design for n-way set associative caches• Designed as countermeasures against cache attacks

• Breaks the fixed link between addresses and cache sets• Increases the number of possible cache sets• IDs to change the mapping between security domains→ Exploitation of side channel information is much harder

• Reuses established concepts• Skewed caches [Sez93]• Low latency cryptography (e.g., QARMA-64 [Ava17])

• Still similar to existing cache designs (usability, hardware)

1 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 3: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Motivation and Background

Page 4: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

CPU Cache www.tugraz.at

printf("%d", i);

printf("%d", i);

printf("%d", i);Cache

miss

printf("%d", i);

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

Cache hit

printf("%d", i);Cache

miss Request

Responsei

printf("%d", i);

Cache hit

No DRAM access,

much faster

DRAM access,slow

2 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 5: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Memory Access Latency www.tugraz.at

50 100 150 200 250 300 350 4000

1

2

3·106

Latency [Cycles]

Num

bero

fAcc

esse

sCache Hits Cache Misses

generated using the CTA calibration tool [GSM15] on my i5-4200U laptop

3 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 6: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Regular 2-way Set Associative Cache www.tugraz.at

Memory Address Cache

Tag Datab bitsn bits

Cache Index

2n cache setsf

Way 2 Tag Way 2 DataWay 1 Tag Way 1 Data

=?

=?Tag

Data

4 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 7: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Prime+Probe www.tugraz.at

AttackerAddress Space Cache

VictimAddress Space

loads data

loads data

fast access

slow access

5 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 8: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Why should we care? www.tugraz.at

• Cache attacks are powerful and break isolation boundaries• Many attacking techniques

• FLUSH+RELOAD, EVICT+RELOAD, FLUSH+FLUSH

• PRIME+PROBE, EVICT+TIME

• Numerous attack scenarios• Extracting cryptographic keys• Keyloggers• Breaking of ASLR• Collection of private information

• Often used building block for further microarchitectural attacks

6 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 9: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE

Page 10: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Idea www.tugraz.at

Set 0 Set 1 Set 2 Set 3

Addr. ADomain XAddr. A

Domain Y

Addr. B

Addr. A

Addr. B @DAC [Tri+18], @MICRO [Qur18]

7 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 11: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

How can we build such a SCATTERCACHE?

Page 12: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Naive Concept www.tugraz.at

IDF

cache line address

key

idx0-3

idx0 idx2 idx1 idx3

SDID offsettag index

(nways·2bindices+nways−1nways

)possible cache sets

512 KiB (32 B lines), nways = 8,bindices = 11→ 296.7 sets

• Index Derivation Function (IDF)takes an address and returns acache set

• Depends on hardware key andoptional Security Domain ID(SDID)

• → Unique combination of cachelines for each address

− Potential index collisions

− One nways multi-port memory

8 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 13: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Concept www.tugraz.at

We want something that is closer to a traditional cache!

instead of this:

offse

t

set[idx+2]

set[idx-2]

set[idx-1]

set[idx+1]

way 0 way 1 way 2 way 3

inde

xta

g

let’s do this:

offse

t

idx0

way 3

inde

xta

g

IDF

cache lineaddr.

key

idx1

idx2

idx3

way 1 way 2way 0SDID

9 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 14: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Concept www.tugraz.atoff

set

idx0

way 3

inde

xta

g

IDF

cache lineaddr.

key

idx1

idx2

idx3

way 1 way 2way 0SDID

2bindices·nways possible cache sets

512 KiB (32 B lines), nways = 8,bindices = 11→ 288 sets

• Skewed cache [Sez93] (i.e.,traditional cache with additionaladdressing logic) and an IDF

• Similar to building larger cachesfrom smaller cache slices

• We use random replacementpolicy (for now)

10 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 15: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Selecting the IDF www.tugraz.at

• Inputs: cache line address, SDID, key

• Outputs: nways indices with bindices bits

• Reuse concepts and existing cryptographic primitives• SCv1: hashing variant

• Block ciphers (e.g., PRINCE [Bor+12])• Tweakable block ciphers (e.g., QARMA [Ava17])• Permutation-based primitives (e.g., Keccak-p [Ber+11])

• SCv2: permutation variant• Prevents birthday-bound index collisions• No off-the-shelf primitives

11 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 16: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

System Integration

Page 17: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - System Integration www.tugraz.at

• SCATTERCACHE as last level cache• Hardware managed key

• Randomly generated at boot time• Rekeying with full cache flush• Potential for iterative rekeying→ concurrently developed CEASER-S @ISCA [Qur19]

• SDID management via page table (indirection)• x86: Page Attribute Tables (PATs)• ARM: Memory Attribute Indirection Register (MAIRs)

12 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 18: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Software Support www.tugraz.at

• SCATTERCACHE requires no software support, default SDID = 0

• But - OS support enables page-wise security domains→ shared read-only pages can be private in the cache!

• OS can define domains as needed(pages, processes, containers, VMs, . . . )

• Software-based page “rekeying” by changing the SDID

13 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 19: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Security and Evaluation

Page 20: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Applicable Cache Attacks www.tugraz.at

• Unshared memory has no shared (physical) addresses→ No FLUSH+RELOAD, EVICT+RELOAD, FLUSH+FLUSH

→ Specialized PRIME+PROBE is possible

• Shared, read-only memory→ Like unshared memory given OS support→ Otherwise, eviction-based attacks are hindered

• Shared, writable memory can’t be separated→ Eviction-based attacks are hindered

14 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 21: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - PRIME+PROBE www.tugraz.at

• No end-to-end attack yet→ Simplified setting: perfect control, single access, no noise→ Investigate the building blocks in simulation and analytically

• Finding congruent addresses (nways = 8,bindices = 11)• Full collisions are unlikely→ use partial collisions• Approach in the paper: ≈ 225 profiled victim accesses• Generalized by Purnal and Verbauwhede [PV19]: ≈ 210

• Evicting one set with 99% needs 275 addresses• Two PRIME+PROBE variants (nways = 8,bindices = 12)

• 99 % confidence: 35 to 152 victim accesses (repetitions)• Between 9870 and 1216 congruent addresses

• Investigate the effect of noise (coupon collector problem)

15 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 22: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE - Performance www.tugraz.at

• Micro benchmarks using the gem5 full system simulator (ARM)• Poky Linux from Yocto 2.5 (kernel version 4.14.67)• GAP, MiBench, lmbench, scimark2

• SPEC CPU 2017 on custom cache simulator

• Cache hit rate always at or above levels of set-associativecache with random replacement

• Typically 2%− 4% below LRU on micro benchmarks, 0%− 2%

for SPEC

16 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 23: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Conclusion www.tugraz.at

• SCATTERCACHE builds upon skewed caches and low latencycryptographic primitives• Breaks the fixed link between addresses and cache sets• Removes the rigid assignment of cache lines to sets• Enables software control over the cache congruencies via SDIDs

• Comparable performance to contemporary caches

• Harder to attack even in very strong attack models

• Attacks are probabilistic and demand new approaches

• Still, more analysis is required in more realistic models todetermine if and how often rekeying is needed

17 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 24: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

Acknowledgements - We want to thank ... www.tugraz.at

• the anonymous USENIX reviewers.

• our shepherd Yossi Oren.

• Antoon Purnal and Ingrid Verbauwhede from KU Leuven for their analysis.• Our funding partners:

• European Research Council (ERC)Horizon 2020 grant agreement No 681402

• Intel

18 Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard — Graz University of Technology

Page 25: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

SCATTERCACHE: Thwarting Cache Attacksvia Cache Set Randomization

Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard

August 15, 2019

Graz University of Technology

Page 26: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

References i www.tugraz.at

References

[Ava17] Roberto Avanzi. “The QARMA Block Cipher Family. Almost MDS Matrices Over Rings With ZeroDivisors, Nearly Symmetric Even-Mansour Constructions With Non-Involutory Central Rounds,and Search Heuristics for Low-Latency S-Boxes”. In: IACR Trans. Symmetric Cryptol. (2017),pp. 4–44. DOI: 10.13154/tosc.v2017.i1.4-44.

[Ber+11] Guido Bertoni, Joan Daemen, Michael Peeters, and Gilles Van Assche. The KECCAK reference.https://keccak.team/files/Keccak-reference-3.0.pdf. 2011.

[Bor+12] Julia Borghoff et al. “PRINCE - A Low-Latency Block Cipher for Pervasive Computing Applications- Extended Abstract”. In: Advances in Cryptology – ASIACRYPT. 2012, pp. 208–225. DOI:10.1007/978-3-642-34961-4\_14.

[GSM15] Daniel Gruss, Raphael Spreitzer, and Stefan Mangard. Cache Template Attacks Repository.https://github.com/IAIK/cache_template_attacks. 2015.

Page 27: ScatterCache: Thwarting Cache Attacks via Cache …SCATTERCACHE: Thwarting Cache Attacks via Cache Set Randomization Werner, Unterluggauer, Giner, Schwarz, Gruss, Mangard August 15,

References ii www.tugraz.at

[PV19] Antoon Purnal and Ingrid Verbauwhede. “Advanced profiling for probabilistic Prime+Probe attacksand covert channels in ScatterCache”. In: arXiv abs/1508.03619 (2019). URL:http://arxiv.org/abs/1908.03383.

[Qur18] Moinuddin K. Qureshi. “CEASER: Mitigating Conflict-Based Cache Attacks viaEncrypted-Address and Remapping”. In: IEEE/ACM International Symposium onMicroarchitecture – MICRO. 2018, pp. 775–787. DOI: 10.1109/MICRO.2018.00068.

[Qur19] Moinuddin K. Qureshi. “New attacks and defense for encrypted-address cache”. In: InternationalSymposium on Computer Architecture – ISCA. 2019, pp. 360–371. DOI:10.1145/3307650.3322246.

[Sez93] Andre Seznec. “A Case for Two-Way Skewed-Associative Caches”. In: International Symposiumon Computer Architecture – ISCA. 1993, pp. 169–178. DOI: 10.1145/165123.165152.

[Tri+18] David Trilla, Carles Hernandez, Jaume Abella, and Francisco J. Cazorla. “Cache side-channelattacks and time-predictability in high-performance critical real-time systems”. In: DesignAutomation Conference – DAC. 2018, 98:1–98:6. DOI: 10.1145/3195970.3196003.