disentangle secure enclave
play

Disentangle Secure-Enclave Hardware from Software Andrew Ferraiuolo, - PowerPoint PPT Presentation

Komodo: Using Verification to Disentangle Secure-Enclave Hardware from Software Andrew Ferraiuolo, Andrew Baumann, Chris Hawblitzel, Bryan Parno* Microsoft Research, Cornell University, Carnegie Mellon University* 1 Secure Remote


  1. Komodo: Using Verification to Disentangle Secure-Enclave Hardware from Software Andrew Ferraiuolo†, Andrew Baumann, Chris Hawblitzel, Bryan Parno* Microsoft Research, Cornell University†, Carnegie Mellon University* 1

  2. Secure Remote Computation Application + Secrets Application/Data Owner OS, Hypervisor, Other SW CPU Memory Remote Machine 2

  3. Intel SGX EnclaveEntry: mov fs:[Tcs],rbx Secret mov fs:[CSSA],eax cmp eax, 0 jne ExceptionEntry Data mov r10,fs:[ResAdr] cmp r10,0 je @F jmp r10 @@:mov rcx, r8 mov rdx, r9 mov r8, rbx Enclave Memory encryption Remote attestation Reference SGX instructions Monitor Implement a reference monitor OS Memory (untrusted) 3

  4. SGX Limitations – Slow to Evolve Software developers must wait for Intel to make changes Change is necessary ◦ SGX1 had no support for dynamic memory management ◦ SGX2 was announced in 2014. Still no implementation! SGX instructions are primarily microcode ◦ Software at the slow pace of hardware! Software Development Time Hardware 4

  5. SGX Limitations – Root of Trust? SGX is complex ◦ Approaching a microkernel in hardware Hardware is no more trustworthy than software ◦ Hardware vulnerabilities: f00f, cache poisoning, VT-D vuln., others ◦ Purely axiomatic basis for trust SGX vulnerabilities have already been found (CVE-2017-569) 5

  6. Komodo Enclave management in software Evolve independently of hardware Trust through formal verification 6

  7. Komodo Architecture Komodo monitor software: Enclave proc. User ◦ Mimics SGX instructions ◦ Minimal hardware requirements ◦ Supported by commercial processors Komodo Untrusted OS monitor CPU / HW Attest. key Hardware Requirements: Mem isolation ◦ Isolated memory ◦ Encryption (Intel/AMD), partitioning (ARM) ◦ Key-generation for attestation ◦ Trusted Platform Module (many processors) ◦ Protection modes for enclave, monitor ◦ Machine mode (RISC-V), TrustZone (ARM) 7

  8. Prototype on ARM TrustZone Normal world Secure world User mode: User apps Enclaves Privileged modes: Untrusted OS Komodo Monitor Secure-world memory is isolated from normal world. 8

  9. OS Monitor Calls: Creation INIT_ADDRSPACE() PageDB INIT_L2PT() Entry Context MAP_SECURE() / (PC) MAP_INSECURE() INIT_THREAD() L1PT: FINALISE() State: Final Init L2PT Measurement Data 9

  10. OS Monitor Calls: Entry ENTER() / RESUME() PageDB Interrupt/ CPU: Exception Entry Context PC (PC) GPRs L1PT L1PT: State: Final 10

  11. Enclave Execution Compute on data in its secure pages Communicate with outside world ◦ Read/write insecure pages ◦ Register arguments/return values Komodo enclave API ◦ Create/verify attestations ◦ Secure source of randomness ◦ Map/unmap spare pages ◦ Exit thread 11

  12. Verification Implementation 1) Prove Komodo conforms to specification of correct execution ◦ Simpler, more abstract Correctness Specification 2) Prove that correctness spec enforces security properties Security Properties 12

  13. Security Properties Enclaves are protected from an OS + malicious enclave adversary: ◦ Confidentiality – enclave secret state cannot leak to adversary ◦ Integrity – adversary cannot tamper with enclave trusted contents Formalized as noninterference – adversarially-observable outputs are purely determined by adversarially-controlled inputs Declassified to OS: exception type, dynamic allocation, return values, and insecure memory ◦ Precisely captures what information is released 13

  14. Verification Approach Trusted Komodo implementation Untrusted Komodo (annotated assembly) abstract spec (~2k LOC) Supporting ARMv7 ISA proofs model (~1.5k LOC) code proof Dafny, Z3 ✓ komodo.S 14

  15. Microbenchmark results Operation Cycles Null SMC 123 Enter 496 Resume 625 Enter + Exit 738 Prototype on Raspberry Pi 2. ◦ Bootloader: loads monitor into secure world memory + sets exception vectors cf. SGX: ~7100 cycles for enter + exit [Eleos, Eurosys’17] ◦ In part because RasPi has a slower clock rate (900MHz vs 2GHz+ ) 15

  16. Performance: Notary Application 80 70 60 50 Time (ms) 40 30 20 10 Komodo enclave Linux process 0 4 8 16 32 64 128 256 512 Input size (kB) 16

  17. Verification Effort Total verification effort – 2 person-years Source lines of code : Spec Impl Proof Total 4,446 2,710 18,655 Security 175 Correctness 795 ARM 1,174 Other 2,302 17

  18. Adaptability Motivation: software can evolve more quickly than hardware SGX2 extends SGX1 with dynamic memory management ◦ Specified three years ago . Still no implementation We extended Komodo with dynamic memory in 6 person-months! ◦ Three weeks to re-establish security proofs 18

  19. Related Work CertiKOS / seL4 ◦ Implement fully-featured microkernels ◦ Prove correctness, security properties ◦ Komodo is a simpler system, supports attestation Sanctum ◦ Proposes RISC-V-based hardware that meets the needs of Komodo 19

  20. Lessons Learned A small code base is not a substitute for verification. ◦ Verification caught real bugs in our implementation Trusted components require extra diligence ◦ We found bugs in trusted/unverified components Verification tools can still improve ◦ Timeouts / proof instability 20

  21. Conclusion SGX defends against a powerful threat-model, but it has limitations: ◦ Slow to change ◦ Requires axiomatic trust Komodo improves evolvability and security ◦ Implemented in software with minimal hardware requirements ◦ First formally-verified implementation of attested enclaves Verification of software enclaves is tractable, permits evolution ◦ 2 person-years worth of total effort ◦ 6 person-months to add SGX2-like dynamic memory management https://github.com/Microsoft/Komodo 21

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend