haven: shielding applications from an untrusted …. e. porter, s. boyd-wickizer, ... shielding...

43
Haven AndrewBaumann Marcus Peinado Galen Hunt Microsoft Research Shielding applications from an untrusted cloud

Upload: dinhanh

Post on 16-Apr-2018

233 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Haven

Andrew Baumann Marcus Peinado Galen Hunt

Microsoft Research

Shielding applications from an untrusted cloud

Page 2: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Application

Operating system

In the old days…

2

Page 3: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Trust…?

In the cloud

Cloud platform

3

Application

Operating system

Page 4: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Hypervisor vulnerabilities are real

• November ’13: Privilege escalation in Hyper-V

• October ’14: Xen guest may read other VM’s data

• May ’15: “Venom” privilege escalation in Xen, KVM

• …

4

Page 5: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Our goals for Haven

Secure, private execution

of unmodified applications

(bugs and all)

in an untrusted cloud

on commodity hardware

(Intel SGX)

5

Page 6: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Can you trust the cloud?

• Huge trusted computing base • Privileged software

Hypervisor, firmware, ...

• Management stack

• Staff Sysadmins, cleaners, security, …

• Law enforcement

• Hierarchical security model • Observe or modify any data

• Even if encrypted on disk / net

Application

Hypervisor

Operating system

Firmware/bootloader

… People

Management tools

Tru

st

6

Page 7: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Current approaches

7

Page 8: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Hardware Security Modules

• Dedicated crypto hardware • Expensive

• Limited set of APIs • Key storage

• Crypto operations

• Protects the “crown jewels”, not general-purpose

8

Page 9: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Trusted hypervisors

• Hardware root of trust (e.g., TPM or TrustZone)

• Small, secure, hypervisor • Multiplexes hardware

• Ensures basic security, such as strong isolation

Problem #1: system administrators

Problem #2: physical attacks (e.g. memory snooping)

Problem #3: tampering with hypervisor ✓

9

Page 10: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Remote attestation

• For example, using a TPM chip

• Basic idea: • Signed measurement (hash) of privileged software

• Remote user checks measurement

• Incorrect attestation → compromised software

• Problem: what is the expected measurement? • Cloud provider applies patches and updates

• Must trust provider for current hash value

10

Page 11: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

What do we really want?

11

Page 12: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Secure colo provides: • Power and cooling • Network access

Raw resources

Untrusted I/O

12

Page 13: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Shielded execution

• Protection of specific program from rest of system • cf. protection, isolation, sandboxing, etc.

• New term (older concept)

• Program unmodified, naïve to threats

• Confidentiality and integrity of: • The program

• Its intermediate state, control flow, etc.

→ Input and output may be encrypted

• Host may deny service, cannot alter behaviour

13

Page 14: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Threat model

• We assume a malicious cloud provider • Convenient proxy for real threats

• All the provider’s software is malicious • Hypervisor, firmware, management stack, etc.

• All hardware besides the CPU is untrusted • DMA attacks, DRAM snooping, cold boot

• We do not prevent: • Denial-of-service (don’t pay!) • Side-channel attacks (open problem)

14

Page 15: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Background: Intel SGX

15

Page 16: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Intel SGX

• Hardware isolation for an enclave • New instructions to

establish, protect

• Call gate to enter

• Remote attestation Application (untrusted)

Enclave

Secret Data

EnclaveEntry: mov fs:[Tcs],rbx mov fs:[CSSA],eax cmp eax, 0 jne ExceptionEntry mov r10,fs:[ResAdr] cmp r10,0 je @F jmp r10 @@:mov rcx, r8 mov rdx, r9 mov r8, rbx

Operating system (untrusted)

16

Page 17: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Enclave Memory

• Processor designates physical memory range as EPC memory

• Specified by BIOS at boot time.

• EPC RAM is encrypted and integrity protected.

• Applied by processor as cache lines travel between the LLC and RAM

• RAM and memory buses are now outside the HW TCB.

• SGX access controls protect enclave memory inside the processor.

• Only code running in an enclave can access this enclave’s memory.

17

Processor Package

Memory Encryption engine

RAM EPC

Cache

SGX access control

Page 18: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Building an Enclave

18

virtual address space physical address space

EPC

1. ECREATE(range)

SECS

2. EADD(page)

ENCLAVE HASH

Unprotected code or data

code or data

code or data

Protected mapping

3. EEXTEND(page)

4. EINIT(page)

• Untrusted code can tamper with enclave creation

• But any tampering will be recorded in the enclave hash

Page 19: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Executing an Enclave

• EENTER: jumps to a fixed enclave address • Defined during enclave construction

• EEXIT: jumps to any address outside the enclave

• Asynchronous exit due to interrupts, exceptions etc. • Save and scrub processor state

• ERESUME: Resume enclave execution after an asynchronous exit.

19

Page 20: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Other features

• Sealed storage • EGETKEY: Enclave can obtain persistent keys as a

function of its enclave hash or author

• Attestation • EPID group signature scheme

• Implemented in a special “Quoting Enclave”

20

Page 21: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

SGX: what’s new? (over prior trusted hardware)

• Doesn’t rely on any trusted software • Untrusted OS performs scheduling/multiplexing

• Paging support

• (Practically) unlimited number of distrusting enclaves

• Hardware TCB = CPU package • Encrypted and integrity-protected RAM

• CPU-based attestation

• High level of physical security

21

Page 22: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Haven Design

22

Page 23: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Enclave

Operating system

Design challenge: Iago attacks

Application System calls

23

Page 24: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Iago attacks

• malloc() returns pointer to user’s stack

• Scheduler allows two threads to race in a mutex

• System has 379,283 cores and -42MB of RAM

• read() fails with EROFS

• …

Our approach: • Don’t try to check them all

• Admit OS into trusted computing base

24

Page 25: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Picoprocess (protects host from guest)

Untrusted interface

Enclave (protects guest from host)

Windows 8 API

Drawbridge ABI

Drawbridge ABI & SGX priv ops

Windows kernel

Untrusted runtime

Application

Shield module

Drawbridge host SGX driver Mu

tual

d

istr

ust

• Shields LibOS from Iago attacks

• Includes typical kernel functionality

• Scheduling, VM, file system

• Untrusted interface with host

Haven

• Unmodified binaries

Library OS (Drawbridge)

• Subset of Windows, enlightened to run in-process

25

Page 26: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Untrusted interface

• Host/guest mutual distrust

• Policy/mechanism with a twist • Virtual resource policy in guest

Virtual address allocation, threads

• Physical resource policy in host Physical pages, VCPUs

• ~20 calls, restricted semantics

Picoprocess

Untrusted interface

Enclave

Windows 8 API

Drawbridge ABI

Drawbridge ABI & SGX priv ops

Untrusted runtime

Application

Library OS

Shield module

Windows kernel

Drawbridge host SGX driver

26

Page 27: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Untrusted interface

Upcalls:

ExceptionDispatch(ExceptionInfo)

ThreadEntry()

Downcalls:

AsyncCancel(AsyncHandle)

AsyncPoll(AsyncHandle) → Results

DebugStringPrint(Message)

EventClear(EventHandle)

EventSet(EventHandle)

ObjectClose(Handle)

ObjectsWaitAny(Num, Handles, Timeout) → Idx

ProcessExit(ExitCode)

StreamAttributesQueryByHandle(StreamHandle) → Attrs

StreamFlush(StreamHandle)

StreamGetEvent(StreamHandle, EventId) → EventHandle

StreamOpen(URI, Options) → StreamHandle

StreamRead(StreamHandle, Off, Sz, Bf) → AsyncHandle

StreamWrite(StreamHandle, Off, Sz, Bf) → AsyncHandle

SystemTimeQuery() → Time

ThreadCreate(Tcs) → ThreadHandle

ThreadExit()

ThreadInterrupt(ThreadHandle)

ThreadYieldExecution()

VirtualMemoryCommit(Addr, Size, Prot)

VirtualMemoryFree(Addr, Size)

VirtualMemoryProtect(Addr, Size, Prot)

27

Page 28: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Picoprocess

Shield module

• Memory allocator, region manager • Host commits/protects specific pages • No address allocation

• Private file system • Encrypted, integrity-protected VHD

• Scheduler • Don’t trust host to schedule threads

• Exception handler • Emulation of some instructions

• Sanity-check of untrusted inputs • Anything wrong → panic!

• 23 KLoC (half in file system)

Untrusted interface

Enclave

Windows 8 API

Drawbridge ABI

Drawbridge ABI & SGX priv ops

Untrusted runtime

Application

Library OS

Windows kernel

Drawbridge host SGX driver

Shield module

28

Page 29: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

1. Dynamic memory allocation and protection • New instructions needed

2. Exception handling • SGX doesn’t report page faults or GPFs to the enclave

3. Permitted instructions • RDTSC/RDTSCP needed, for practicality and performance

4. Thread-local storage • Can’t reliably switch FS and GS

Good news! These are fixed in SGX v2

SGX limitations

29

Page 30: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Performance evaluation

• Implemented and tested using SGX emulator • Thanks, Intel!

• Problem: no SGX implementation yet

• Solution: model for SGX performance

1. TLB flush on Enclave crossings 2. Variable spin-delay for critical SGX instructions

• Enclave crossings • Dynamic memory allocation, protection

3. Penalty for access to encrypted memory • Slow overall system DRAM clock

30

Page 31: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Performance summary

• Depends on model parameters, details in paper

• 35% (Apache) – 65% (SQL Server) slowdown vs. VM • Assumes 10k+ cycles SGX instructions, 30% slower RAM

• … and you don’t have to trust the cloud!

31

Page 32: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

SGX wish-list

• Exception handling overhead is high • IRET, ERESUME require enclave exits

• A single application exception (e.g. stack growth) results in two exceptions and eight enclave crossings

• Demand loading • Fixed in spec (EACCEPTCOPY), but we haven’t tested it

• Shielded VMs • Everybody wants this

• Not trivial: can’t trap-and-emulate in hypervisor

32

Page 33: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

What’s next for Haven?

• Rollback of persistent storage • Requires more hardware, or more communication

• Untrusted time • Network time sync, RDTSC

• Cloud management • Suspend / migrate applications [Lorch et al, NSDI 2015]

• Encrypted VLANs

• Side-channel defences • Open problem [Xu et al, IEEE Security & Privacy 2015]

33

Page 34: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Conclusion

• Haven is closer to a true “utility computing” model • Utility provides raw resources

• Doesn’t care what you do with them

• Hope that SGX will be the first step in widespread hardware support for shielded execution

34

Page 35: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Backup

35

Page 36: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Related work

• TPM-based systems [Flicker, TrustVisor, Credo, Nexus, MiniBox]

• Vulnerable to simple physical attacks • Typically relies on trusted hypervisor • Prohibitively expensive otherwise [Flicker]

• Protecting user memory from the OS [Overshadow, SP³, CloudVisor, SecureME, InkTag, Virtual Ghost]

• Relies on trusted hypervisor or compiler [Virtual Ghost]

• Vulnerable to Iago attacks at syscall interface

• Homomorphic encryption No hardware in the TCB Suitable for some applications [CryptDB, Cipherbase, MrCrypt]

• Intolerable overheads for general-purpose computation

36

Page 37: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Background: Drawbridge

• Secure isolation of existing Windows applications

• Picoprocess for confinement • Secure isolation container

• Low overhead (vs. a VM)

• Library OS for compatibility • Enlightened Windows

• Strong app compatibility

D. E. Porter, S. Boyd-Wickizer, J. Howell, R. Olinsky, G. C. Hunt, Rethinking the library OS from the top down, Proc. ASPLOS’11

Windows kernel

Platform adaptation layer

ntoskrnl.dll

win32k

RDP server

rdpvdd

LSASS RPCSS

SCM

http

ntdll user32 gdi32

… advapi32

kernel32

afd ksecdd

Win32 API

Application

Drawbridge ABI (45 calls)

Drawbridge driver

37

Page 38: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Provisioning

Req

uest

App user

Cloud host

Sensitive code/data (encrypted VHD)

Bare enclave

Shield module

Config

Trust decision

Shield module

Boots LibOS & runs app

Shield module

Config

38

Page 39: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Performance: SQL Server

0

20

40

60

80

100

120

140

160

Native Hyper-V Drawbridge Haven (Host FS) Haven (VHD) Haven (Enc. VHD)

tpsE

39

Page 40: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Performance: Apache/MediaWiki

0

10

20

30

40

50

60

70

Native Hyper-V Drawbridge Haven (Host FS) Haven (VHD) Haven (Enc. VHD)

Thro

ugh

pu

t (r

eq/s

)

40

Page 41: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Sensitivity to SGX cost: SQL Server

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50

tpsE

Simulated delay (kcycles)

Memory allocation

Enclave crossing

41

Page 42: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Sensitivity to SGX cost: Apache

0

10

20

30

40

50

0 10 20 30 40 50

Thro

ugh

pu

t (r

eq/s

)

Simulated delay (kcycles)

Memory allocation

Enclave crossing

42

Page 43: Haven: Shielding Applications from an Untrusted …. E. Porter, S. Boyd-Wickizer, ... Shielding Applications from an Untrusted Cloud ... Haven: Shielding Applications from an Untrusted

Sensitivity to memory slowdown

• Hard to simulate: not many options

• Scaled down overall DRAM bandwidth and latencies by 33% • SQL Server TPC-E throughput reduced by 21%

• Apache / MediaWiki throughput reduced by 7%

• Over-estimate: some accesses would be outside the enclave

43