  The widening availability of hardware-based trusted execution environments
(TEEs) has been accelerating the adaptation of new applications using TEEs.
Recent studies showed that a cloud application consists of multiple distributed
software modules provided by mutually distrustful parties. The applications use
multiple TEEs (enclaves) communicating through software-encrypted memory
channels. Such execution model requires bi-directional protection: protecting
the rest of the system from the enclave module with sandboxing and protecting
the enclave module from a third-part module and operating systems. However, the
current TEE model, such as Intel SGX, cannot efficiently represent such
distributed sandbox applications. To overcome the lack of hardware supports for
sandboxed TEEs, this paper proposes an extended enclave model called Stockade,
which supports distributed sandboxes hardened by hardware. Stockade proposes
new three key techniques. First, it extends the hardware-based memory isolation
in SGX to confine a user software module only within its enclave. Second, it
proposes a trusted monitor enclave that filters and validates systems calls
from enclaves. Finally, it allows hardware-protected memory sharing between a
pair of enclaves for efficient protected communication without software-based
encryption. Using an emulated SGX platform with the proposed extensions, this
paper shows that distributed sandbox applications can be effectively supported
with small changes of SGX hardware.
