Title
Vx32: lightweight user-level sandboxing on the x86
Abstract
Code sandboxing is useful for many purposes, but most sandboxing techniques require kernel modifications, do not completely isolate guest code, or incur substantial performance costs. Vx32 is a multipurpose user-level sandbox that enables any application to load and safely execute one or more guest plug-ins, confining each guest to a system call API controlled by the host application and to a restricted memory region within the host's address space. Vx32 runs guest code efficiently on several widespread operating systems without kernel extensions or special privileges; it protects the host program from both reads and writes by its guests; and it allows the host to restrict the instruction set available to guests. The key to vx32's combination of portability, flexibility, and efficiency is its use of x86 segmentation hardware to sandbox the guest's data accesses, along with a lightweight instruction translator to sandbox guest instructions. We evaluate vx32 using microbenchmarks and whole system benchmarks, and we examine four applications based on vx32: an archival storage system, an extensible public-key infrastructure, an experimental user-level operating system running atop another host OS, and a Linux system call jail. The first three applications export custom APIs independent of the host OS to their guests, making their plug-ins binary-portable across host systems. Compute-intensive workloads for the first two applications exhibit between a 30% slowdown and a 30% speedup on vx32 relative to native execution; speedups result from vx32's instruction translator improving the cache locality of guest code. The experimental user-level operating system allows the use of the guest OS's applications alongside the host's native applications and runs faster than whole-system virtual machine monitors such as VMware and QEMU. The Linux system call jail incurs up to 80% overhead but requires no kernel modifications and is delegation-based, avoiding concurrency vulnerabilities present in other interposition mechanisms.
Year
Venue
Keywords
2008
USENIX Annual Technical Conference
guest plug-ins,experimental user-level operating system,lightweight user-level,host application,guest os,linux system call jail,guest code,host program,host os,guest instruction,kernel modification,data access,storage system,operating system,virtual machine monitor,public key infrastructure
Field
DocType
Citations 
Address space,Sandbox (computer security),x86,Virtual machine,Concurrency,Instruction set,Computer science,Parallel computing,System call,Software portability,Operating system,Embedded system
Conference
71
PageRank 
References 
Authors
2.59
29
2
Name
Order
Citations
PageRank
Bryan Ford11573149.56
Russ Cox299661.40