Top Banner
CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution in Enclaves Meni Orenbach (Technion), Yan Michalevsky (Anjuna), Christof Fetzer (TU Dresden, Scone), Mark Silberstein (Technion) Published in USENIX ATC’19
24

CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Jul 06, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

CoSMIX: A Compiler-based System for Secure Memory Instrumentation

and Execution in Enclaves

Meni Orenbach (Technion), Yan Michalevsky (Anjuna), Christof Fetzer (TU Dresden, Scone), Mark Silberstein (Technion)

Published in USENIX ATC’19

Page 2: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Speaker bio• Yan Michalevsky

• Co-founder and CTO of Anjuna Security (www.anjuna.io)

• Phd from Stanford University (applied security and cryptography)

• B.Sc from Technion (EE)

• Speaker at BlackHat, RSA Conference

• Research featured in BBC, Wired, Engadget, ArsTechnica and more

Page 3: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Enclaves• Confidentiality

• Integrity

• Assume an untrusted operating system

• Recent advancements in Library OS and unikernel-based approaches enable execution of entire applications

Enclave

OS

Page 4: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Motivation: missing OS abstractions, performance and side-channel protection

• Features

• Memory-mapping

• Performance

• Secure User-managed Virtual Memory (SUVM) [Orenbach et al. ’17 (Eleos)]

• Side-channel protection

• Transparent Oblivious RAM for enclaved applications protects against controlled side-channel attacks

• And much more (custom memory backends…)

Page 5: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Memory-mapping: missing construct in enclaves

Page 6: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Page-fault handling with SGX

6x the latency of signal handling without SGX

Page 7: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Prior work• Sidestep the lack of secure page faults by customizing

applications

• Eleos (SUVM) [Orenbach et al. ’17]

• ZeroTrace (ORAM) [Sasy et al. ’18]

• Require specialized handling of memory accesses

• Reference implementations are language-specific

• Eleos implementation is not suitable for high-level languages

Page 8: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

CoSMIX• Compiler + runtime

• Automatic and transparent customization of memory accesses and page-fault handling

• Automatic inference of pointer types via pointer-analysis

• Locality-optimized translation caching

• Selective instrumentation of memory accesses

• Guided by annotations of memory allocation

• Automatic inference of related memory accesses

Page 9: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Memory Store (mStore)• mStore — a software abstraction of

memory access behavior

• An additional virtual memory layer on top of a backing store

• Handles

• Allocation

• Deallocation

• Address translation

• Paging

mStoreaddress

Backing-storeaddress

Page 10: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Direct-access memory store

Page 11: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Cached memory store

Page 12: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Use-case: Secure User-managed Virtual Memory (SUVM)

• Proposed by Orenbach et al. ’17 (Eleos)

• Motivation: avoid costly enclave transitions to handle demand paging

• Provides the same confidentiality and integrity guarantees as the EPC

• Caches pages in the EPC

• Can boost performance by ~2x compared to regular execution in SGX

Page 13: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Use case: Oblivious RAM (ORAM)

Controlled side-channel attacks can recover quite a bit of information by examining memory access patterns

[Xu et al. 2015]

Page 14: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Use case: Oblivious RAM (ORAM)

• Preserves I/O behavior

• Obfuscates memory access patterns

Page 15: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

CoSMIX end-to-end

Page 16: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

CoSMIX end-to-end

Annotate memory

allocations with memory stores to use

Page 17: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

CoSMIX end-to-end

Annotate memory

allocations with memory stores to use

Proper memory access instrumentation is inferred based on

allocation annotations

Page 18: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Stacking mStore-s

ORAM SUVM

SUVM ORAM

Page 19: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Evaluation

Fetching a 4 KB page

Workloads

Page 20: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Memcached600 MB dataset

Random access to 1KB objects. 90% get / 10% set

Page 21: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Memcached600 MB dataset

Random access to 1KB objects. 90% get / 10% set

Page 22: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

ORAM SUVM

Page 23: CoSMIX: A Compiler-based System for Secure Memory … › open-source-enclaves... · 2019-09-06 · CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution

Summary• Compiler-based approach to memory instrumentation and

SW page-fault handling

• Conveniently addresses

• Lacking functionality

• Performance

• Security against certain side-channels

• Extensible