Verifying enclave systems with Serval
Luke Nelson
w/ James Bornholt, Ronghui Gu, Andrew Baumann, Emina Torlak, Xi Wang University of Washington, Columbia University, Microsoft Research
1
Open Source Enclave Workshop July 2019 Berkeley, CA
Verifying enclave systems with Serval Luke Nelson w/ James - - PowerPoint PPT Presentation
Open Source Enclave Workshop July 2019 Berkeley, CA Verifying enclave systems with Serval Luke Nelson w/ James Bornholt, Ronghui Gu, Andrew Baumann, Emina Torlak, Xi Wang University of Washington, Columbia University, Microsoft Research 1
w/ James Bornholt, Ronghui Gu, Andrew Baumann, Emina Torlak, Xi Wang University of Washington, Columbia University, Microsoft Research
1
Open Source Enclave Workshop July 2019 Berkeley, CA
○ Low-level bugs: e.g., buffer overflow or division-by-zero ○ Logic bugs: implementation does something unintended ○ Design bugs: intended design of the system is not secure
2
3
4
5
previously manually verified using Coq and Dafny
○ https://git.kernel.org/linus/1e692f09e091 ○ https://git.kernel.org/linus/46dd3d7d287b ○ https://git.kernel.org/linus/68a8357ec15b ○ https://git.kernel.org/linus/6fa632e719ee
in Keystone
6
7
8
Rosette Symbolic evaluation Symbolic profiling Symbolic reflection Inputs System implementation System specification Serval Automated verifiers Symbolic
Solver Satisfiability checking Counterexample generation
9
C program LLVM IR + UBsan checks Clang Serval LLVM verifier
10
Abstraction function
Monitor call RISC-V instructions from GCC Monitor call specification
visible state
enclave secrets
11
OS Enclave 1 Enclave 2 Monitor
12
13
low-level systems
14