Secure Tera-scale Data Crunching with a Small TCB Bruno Vavala Nuno - - PowerPoint PPT Presentation

secure tera scale data crunching with a small tcb
SMART_READER_LITE
LIVE PREVIEW

Secure Tera-scale Data Crunching with a Small TCB Bruno Vavala Nuno - - PowerPoint PPT Presentation

Secure Tera-scale Data Crunching with a Small TCB Bruno Vavala Nuno Neves Peter Steenkiste UL / CMU UL CMU 47th IEEE/IFIP International Conference on Dependable Systems and Networks (DSN17) Goal delivering security guarantees for


slide-1
SLIDE 1

Secure Tera-scale Data Crunching with a Small TCB

Bruno Vavala Nuno Neves Peter Steenkiste

UL / CMU UL CMU

47th IEEE/IFIP International Conference on Dependable Systems and Networks (DSN’17)

slide-2
SLIDE 2

delivering security guarantees for generic and large-scale data processing on untrusted hosts

delivering security guarantees for large-scale data processing

  • n untrusted hosts with a small TCB

Goal

2

slide-3
SLIDE 3

3

delivering security guarantees for large-scale data processing

  • n untrusted hosts with a small TCB

trusted HW based data integrity

slide-4
SLIDE 4

4

delivering security guarantees for large-scale data processing

  • n untrusted hosts with a small TCB

1 TB

slide-5
SLIDE 5

5

delivering security guarantees for large-scale data processing

  • n untrusted hosts with a small TCB

small code small interface No HW devices

slide-6
SLIDE 6

Some use cases

6

public cloud service provider

slide-7
SLIDE 7

Some use cases

computational genomics

7

public cloud service provider

0.3TB per genome

slide-8
SLIDE 8

…more generally…

slide-9
SLIDE 9

Model

trusted hardware module

S V P

9

slide-10
SLIDE 10

Model

  • 1. provide state authentication data
  • 2. outsource

large state

S V P

10

slide-11
SLIDE 11

Model

  • 3. send 


request

S V P

  • 1. provide state authentication data
  • 2. outsource

large state

11

slide-12
SLIDE 12

Model

  • 3. send 


request

  • 4. execute


command

S V P

  • 1. provide state authentication data
  • 2. outsource

large state

12

slide-13
SLIDE 13

Model

  • 3. send 


request

  • 5. receive


authenticated reply

S V P

  • 1. provide state authentication data
  • 2. outsource

large state

  • 4. execute


command

13

slide-14
SLIDE 14

Outline

  • Goal
  • Previous Work
  • Our solution: key ideas and
  • verview
  • Evaluation
slide-15
SLIDE 15

Outline

  • Goal
  • Previous Work
  • Our solution: key ideas and
  • verview
  • Evalution
slide-16
SLIDE 16

Haven

(OSDI’14) picoprocess host OS enclave service libOS

interface

— designed for Intel SGX — large TCB (due to libOS) — 10s of new interface calls + works with 
 unmodified applications

VHD

16

slide-17
SLIDE 17

VC3

(IEEE S&P’15) process host OS enclave map & reduce functions job execution protocol

narrow interface

— designed for Intel SGX — specific for Hadoop + small TCB + data confidentiality + can run unmodified
 Hadoop applications

17

slide-18
SLIDE 18

small TCB Large State Interface calls App Specific Trusted Computing arch. Haven

(OSDI’14)

No Yes tens No SGX

VC3

(S&P’15)

Yes Yes

MapReduce workloads

R,W Yes SGX

XMHF- TrustVisor


(S&P’13,’10)

Yes No none

(but Minibox has tens)

No TPM / TXT

LaStGT

Yes Yes zero! No TV&SGX

A Niche in the State of the Art

18

slide-19
SLIDE 19

Outline

  • Goal
  • Previous Work
  • Our solution: key ideas and
  • verview
  • Evalution
slide-20
SLIDE 20

untrusted env. trusted env.

20

Scenario: two execution environments

slide-21
SLIDE 21

untrusted env. trusted env.

app’s execution flow

21

the service code is running

slide-22
SLIDE 22

untrusted env. trusted env.

access data in block bi is bi in memory?

app’s execution flow

22

the service code accesses data in memory

slide-23
SLIDE 23

untrusted env. trusted env.

access data in block bi is bi in memory?

app’s execution flow keep going

yes

23

when data is available, there are no interruptions

slide-24
SLIDE 24

untrusted env. trusted env.

access data in block bi is bi in memory?

app’s execution flow

handle page fault load data

keep going

yes no

24

  • therwise, the service is interrupted and


data memory pages are loaded

slide-25
SLIDE 25

untrusted env. trusted env.

access data in block bi is bi in memory?

app’s execution flow

handle page fault load data validate data

keep going

yes no

25

data is validated inside trusted environment,
 independently from service execution

slide-26
SLIDE 26

untrusted env. trusted env.

access data in block bi is bi in memory?

app’s execution flow

handle page fault load data validate data

keep going

yes no resume

26

service is resumed and


  • nly if data is valid, service can make progress
slide-27
SLIDE 27

…in practice…

slide-28
SLIDE 28

trusted
 untrusted

Untrusted address space

Hardware SGX/TPM

Architecture

  • ther

untrusted services

Trusted address space

state handler service code SMM

(State map manager)

OS

Supervisor

28

slide-29
SLIDE 29

untrusted
 untrusted

Untrusted address space

Hardware SGX/TPM

Architecture

  • ther

untrusted services

Trusted address space

state handler service code SMM

(State map manager)

OS

Supervisor

29

  • n TrustVisor, Supervisor is trusted
  • n SGX, Supervisor is untrusted
slide-30
SLIDE 30

LaStGT in 5 steps

  • Offline data protection at the source
  • State registration
  • Data processing
  • Lazy loading from memory & disk
  • Execution verification

4

slide-31
SLIDE 31
  • Offline data protection at the

source

  • State registration
  • Data processing
  • Lazy loading from memory & disk
  • Verification

1

slide-32
SLIDE 32

0 1 0 0 0 1 1 1 1 0 1 0 0 0

Data protection

Hierarchical

  • Incremental as 


data is created
 
 Made for:

  • Incremental validation

as data is loaded

  • Fast verification
  • Single hash tree is

unsuitable

210 220 230 240 220 225 230 235 240

Tree size (bytes) State size (bytes)

bytes/block 210 215 220 225 230

0 1 0 0 0 1 1 1 1 0 1 0 0 0

32

slide-33
SLIDE 33

State Hierarchy

files blocks

chunk chunk

chunks

masterchunk

master chunks

directory

directory

state root

root

33

slide-34
SLIDE 34

State Hierarchy

34

state root directory masterchunk chunk chunk masterchunk chunk chunk

  • components are

loaded separately

  • unneeded components

not loaded in memory

  • state root (1 hash)

allows state validation

slide-35
SLIDE 35
  • Offline data protection at the source
  • State registration
  • Data processing
  • Lazy loading from memory & disk
  • Verification

2

slide-36
SLIDE 36

Untrusted address space

Trusted address space

SMM

(State map manager)

OS

Supervisor

state handler service code

When the trusted execution environment is created, only the code is available inside

36

slide-37
SLIDE 37

Untrusted address space

Trusted address space

SMM

(State map manager)

OS

Supervisor

state handler service code

grab root from disk

37

slide-38
SLIDE 38

Untrusted address space

Trusted address space

SMM

(State map manager)

OS

Supervisor

state handler service code

grab root from disk register state

  • registration is

the first execution

  • state handler

installs root

  • root is trusted

38

slide-39
SLIDE 39

Untrusted address space

Trusted address space

SMM

(State map manager)

OS

Supervisor

state handler service code state root

39

  • state root is available 


before service code runs


slide-40
SLIDE 40
  • Offline data protection at the source
  • State registration
  • Data processing
  • Lazy loading from memory & disk
  • Verification

3

slide-41
SLIDE 41
  • service code has view of entire state
  • state not readily available: inefficient loading it upfront

pages NOT available pages available

OS

Supervisor

Untrusted address space

Trusted address space

SMM

41

state handler service code state root data

slide-42
SLIDE 42

page hit on access

  • Service code execution begins
  • Service accesses data in memory
  • Data retrieval is fast if data is already available

OS

Supervisor

Untrusted address space

Trusted address space

SMM

42

state handler service code state root data

slide-43
SLIDE 43

page miss on access

OS

Supervisor

  • Service code may access data 

  • n missing pages

Untrusted address space

Trusted address space

SMM

43

state handler service code state root data

slide-44
SLIDE 44
  • A page fault is triggered
  • Execution is interrupted,

seamlessly waiting to continue

OS

Supervisor

page fault!

Untrusted address space

Trusted address space

SMM

44

state handler service code state root data

slide-45
SLIDE 45
  • Offline data protection at the source
  • State registration
  • Data processing
  • Lazy loading from memory & disk
  • Verification

4

slide-46
SLIDE 46

Untrusted address space

Trusted address space

SMM OS

Supervisor

page fault!

46

state handler service code state root data

slide-47
SLIDE 47

Untrusted address space

Trusted address space

OS

Supervisor

page fault!

page address grab state component from disk

  • Let SMM handle missing data
  • SMM loads data from disk

SMM

47

state handler service code state root data

slide-48
SLIDE 48

Untrusted address space

Trusted address space

OS

Supervisor

page fault!

SMM data

validate data

  • in TrustVisor, validate in place
  • in SGX, copy, validate, copy

48

state handler service code state root data

slide-49
SLIDE 49

Untrusted address space

Trusted address space

OS

Supervisor

page fault!

SMM data

data is valid

  • If Supervisor is trusted,


invalid data => no resume 
 (e.g.: TrustVisor)


  • If Supervisor is untrusted


invalid data => no accept,
 so no access (e.g.: SGX)

49

state handler service code state root data

slide-50
SLIDE 50

Untrusted address space

Trusted address space

OS

Supervisor

SMM data

page hit on access resume

fault solved, data accessible on resume, continue…

50

state handler service code state root data

slide-51
SLIDE 51
  • Offline data protection at the source
  • State registration
  • Data processing
  • Lazy loading from memory & disk
  • Execution verification 5
  • HW-based attestation of code identity,


including input request, state root, 


  • utput reply, nonce
  • Client checks validity of attestation


and intended identities/hashes

slide-52
SLIDE 52

Outline

  • Goal
  • Previous Work
  • Our solution: key ideas and
  • verview
  • Implemention(s)
  • Evaluation
slide-53
SLIDE 53

TCB size

VC3 Haven LaStGT

hypervisor library SQLite
 (example)

KSLoC


(lines of code x 1000)

9.2 O(103) 17 7.7 92.6 library is small compared to real service SGX-based TPM/TXT based

53

slide-54
SLIDE 54

load&hash data upfront LaStGT entry/exit & block validation

Comparison

XMHF-TrustVisor vs. LaStGT

2 4 6 8 10 12

MB 128 MB 256 MB 384 MB 512 MB

seconds TrustVisor LaSt-GT

LaStGT is Incremental, Faster & Scalable

LaStGT chunk loading

54

slide-55
SLIDE 55

SQLite on LaStGT

0.0 0.2 0.4 128 MB 256 MB 512 MB 1 GB 2 GB ... 0.25 TB 3.2 3.4 3.6 seconds

5 10 15 20 1 MB 2 MB 4 MB 8 MB 16 MB 32 MB 64 MB 128 MB 256 MB 512 MB 1 GB 2 GB ... 0.25 TB seconds

  • First large-scale

experiment on hypervisor


  • Data I/O can be
  • ptimized

through state hierarchy


  • SGX expected

to improve substantially

55

slide-56
SLIDE 56

Conclusions

  • Security for large-scale data processing can

be guaranteed with a small TCB

  • Virtual memory-based data handling 


=> zero interface

  • No change to source code


=> easy integration

  • One design can fit diverse HW & SW
slide-57
SLIDE 57

Secure Tera-scale Data Crunching with a Small TCB

Bruno Vavala1,2, Nuno Neves1, Peter Steenkiste2

1LaSIGE, Faculdade de Ciˆ

encias, Universidade de Lisboa, Portugal

2CSD, Carnegie Mellon University, U.S.

Abstract—Outsourcing services to third-party providers comes with a high security cost—to fully trust the providers. Us- ing trusted hardware can help, but current trusted execution environments do not adequately support services that process very large scale datasets. We present LASTGT, a system that bridges this gap by supporting the execution of self-contained services over a large state, with a small and generic trusted computing base (TCB). LASTGT uses widely deployed trusted hardware to guarantee integrity and verifiability of the execution

  • n a remote platform, and it securely supplies data to the

service through simple techniques based on virtual memory. As a result, LASTGT is general and applicable to many scenarios such as computational genomics and databases, as we show in our experimental evaluation based on an implementation of LASTGT on a secure hypervisor. We also describe a possible implementation on Intel SGX.

support the execution of either small pieces of code and data [10], or large code bases [11], or specific software like database engines [12] or MapReduce applications [13]. Recent work [14] has shown how to support unmodified services. However, since ”the interface between modern applications and operating systems is so complex” [30], it relies on a considerable TCB that includes a library OS. In addition, the above systems are specific for TPMs [10], [15], secure coprocessors [12], or Intel SGX [13]. Hence, porting them to alternative architectures (e.g., the upcoming AMD Secure Memory Encryption and Secure Encrypted Virtualization [36], [37]) requires significant

  • effort. Clearly, it is desirable to design a generic system “not

relying on idiosyncratic features of the hardware” [16]. We present LASTGT, a system that can handle a LArge STate on a Generic Trusted component with a small TCB.

ad maiora.

IEEE/IFIP DSN’17 Bruno Vavala, UL / CMU, bvavala@cs.cmu.edu

slide-58
SLIDE 58

(blank)

58

slide-59
SLIDE 59

Steve Wozniak

“Never trust a computer you can’t throw out the window.”

59

slide-60
SLIDE 60

(excerpt from)

Intel’s Legal Desclaimer

“No computer system can be absolutely secure.”

60