Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX
This work addresses the need for multitasking in secure enclaves for legacy applications, offering a solution that is both secure and efficient, with significant performance gains over prior methods.
The paper tackles the problem of enabling secure and efficient multitasking in Intel SGX enclaves, which existing library operating systems (LibOSes) fail to support. It presents Occlum, a system that achieves this by implementing processes as SFI-Isolated Processes with a novel SFI scheme, resulting in performance improvements of up to 6,600X on micro-benchmarks and up to 500X on application benchmarks compared to the state-of-the-art SGX LibOS.
Intel Software Guard Extensions (SGX) enables user-level code to create private memory regions called enclaves, whose code and data are protected by the CPU from software and hardware attacks outside the enclaves. Recent work introduces library operating systems (LibOSes) to SGX so that legacy applications can run inside enclaves with few or even no modifications. As virtually any non-trivial application demands multiple processes, it is essential for LibOSes to support multitasking. However, none of the existing SGX LibOSes support multitasking both securely and efficiently. This paper presents Occlum, a system that enables secure and efficient multitasking on SGX. We implement the LibOS processes as SFI-Isolated Processes (SIPs). SFI is a software instrumentation technique for sandboxing untrusted modules (called domains). We design a novel SFI scheme named MPX-based, Multi-Domain SFI (MMDSFI) and leverage MMDSFI to enforce the isolation of SIPs. We also design an independent verifier to ensure the security guarantees of MMDSFI. With SIPs safely sharing the single address space of an enclave, the LibOS can implement multitasking efficiently. The Occlum LibOS outperforms the state-of-the-art SGX LibOS on multitasking-heavy workloads by up to 6,600X on micro-benchmarks and up to 500X on application benchmarks.