Swivel: Hardening WebAssembly against Spectre

02/25/2021
by   Shravan Narayan, et al.
0

We describe Swivel, a new compiler framework for hardening WebAssembly (Wasm) against Spectre attacks. Outside the browser, Wasm has become a popular lightweight, in-process sandbox and is, for example, used in production to isolate different clients on edge clouds and function-as-a-service platforms. Unfortunately, Spectre attacks can bypass Wasm's isolation guarantees. Swivel hardens Wasm against this class of attacks by ensuring that potentially malicious code can neither use Spectre attacks to break out of the Wasm sandbox nor coerce victim code-another Wasm client or the embedding process-to leak secret data. We describe two Swivel designs, a software-only approach that can be used on existing CPUs, and a hardware-assisted approach that uses extension available in Intel 11th generation CPUs. For both, we evaluate a randomized approach that mitigates Spectre and a deterministic approach that eliminates Spectre altogether. Our randomized implementations impose under 10.3 Wasm-compatible subset of SPEC 2006, while our deterministic implementations impose overheads between 3.3 Swivel's overhead is still between 9x and 36.3x smaller than existing defenses that rely on pipeline fences.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset