Breaking Up is Hard to Do: Security and Functionality in a Commodity Hypervisor - Colp, Patrick; Nanavati, Mihir; Zhu, Jun; Aiello, William; Coker, George; Deegan, Tim; Loscocco, Pete; Warfield, Andrew (SOSP'11, 2011)
Cloud computing uses virtualization to lease small slices of largescale datacenter facilities to individual paying customers. These multi-tenant environments, on which numerous large and popular web-based applications run today, are founded on the belief that the virtualization platform is sufﬁciently secure to prevent breaches of isolation between different users who are co-located on the same host. Hypervisors are believed to be trustworthy in this role because of their small size and narrow interfaces. We observe that despite the modest footprint of the hypervisor itself, these platforms have a large aggregate trusted computing base (TCB) that includes a monolithic control VM with numerous interfaces exposed to VMs. We present Xoar, a modiﬁed version of Xen that retroﬁts the modularity and isolation principles used in microkernels onto a mature virtualization platform. Xoar breaks the control VM into single-purpose components called service VMs. We show that this componentized abstraction brings a number of beneﬁts: sharing of service components by guests is conﬁgurable and auditable, making exposure to risk explicit, and access to the hypervisor is restricted to the least privilege required for each component. Micro-rebooting components at conﬁgurable frequencies reduces the temporal attack surface of individual components. Our approach incurs little performance overhead, and does not require functionality to be sacriﬁced or components to be rewritten from scratch.