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)
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
Bruno Vavala Nuno Neves Peter Steenkiste
UL / CMU UL CMU
47th IEEE/IFIP International Conference on Dependable Systems and Networks (DSN’17)
2
3
4
5
6
7
0.3TB per genome
S V P
9
large state
S V P
10
request
S V P
large state
11
request
command
S V P
large state
12
request
authenticated reply
S V P
large state
command
13
interface
VHD
16
narrow interface
17
small TCB Large State Interface calls App Specific Trusted Computing arch. Haven
(OSDI’14)
VC3
(S&P’15)
MapReduce workloads
XMHF- TrustVisor
(S&P’13,’10)
(but Minibox has tens)
LaStGT
18
20
Scenario: two execution environments
app’s execution flow
21
the service code is running
access data in block bi is bi in memory?
app’s execution flow
22
the service code accesses data in memory
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
access data in block bi is bi in memory?
app’s execution flow
handle page fault load data
keep going
yes no
24
data memory pages are loaded
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
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
trusted untrusted
Untrusted address space
Hardware SGX/TPM
untrusted services
Trusted address space
state handler service code SMM
(State map manager)
OS
28
untrusted untrusted
Untrusted address space
Hardware SGX/TPM
untrusted services
Trusted address space
state handler service code SMM
(State map manager)
OS
29
0 1 0 0 0 1 1 1 1 0 1 0 0 0
Hierarchical
data is created Made for:
as data is loaded
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
chunk chunk
masterchunk
directory
state root
33
34
state root directory masterchunk chunk chunk masterchunk chunk chunk
loaded separately
not loaded in memory
allows state validation
Untrusted address space
Trusted address space
SMM
(State map manager)
OS
state handler service code
When the trusted execution environment is created, only the code is available inside
36
Untrusted address space
Trusted address space
SMM
(State map manager)
OS
state handler service code
grab root from disk
37
Untrusted address space
Trusted address space
SMM
(State map manager)
OS
state handler service code
grab root from disk register state
the first execution
installs root
38
Untrusted address space
Trusted address space
SMM
(State map manager)
OS
state handler service code state root
39
before service code runs
pages NOT available pages available
OS
Untrusted address space
Trusted address space
SMM
41
state handler service code state root data
page hit on access
OS
Untrusted address space
Trusted address space
SMM
42
state handler service code state root data
page miss on access
OS
Untrusted address space
Trusted address space
SMM
43
state handler service code state root data
seamlessly waiting to continue
OS
Untrusted address space
Trusted address space
SMM
44
state handler service code state root data
Untrusted address space
Trusted address space
SMM OS
page fault!
46
state handler service code state root data
Untrusted address space
Trusted address space
OS
page fault!
page address grab state component from disk
SMM
47
state handler service code state root data
Untrusted address space
Trusted address space
OS
page fault!
SMM data
validate data
48
state handler service code state root data
Untrusted address space
Trusted address space
OS
page fault!
SMM data
data is valid
invalid data => no resume (e.g.: TrustVisor)
invalid data => no accept, so no access (e.g.: SGX)
49
state handler service code state root data
Untrusted address space
Trusted address space
OS
SMM data
page hit on access resume
fault solved, data accessible on resume, continue…
50
state handler service code state root data
including input request, state root,
and intended identities/hashes
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
load&hash data upfront LaStGT entry/exit & block validation
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
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
experiment on hypervisor
through state hierarchy
to improve substantially
55
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
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
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.
IEEE/IFIP DSN’17 Bruno Vavala, UL / CMU, bvavala@cs.cmu.edu
58
Steve Wozniak
59
(excerpt from)
Intel’s Legal Desclaimer
60