An Introduction To Qubes OS
Alan: And that’s what I want to talk about today. Your team is working on something that gets us closer to perfect isolation, Qubes OS. How are you doing something different than what Microsoft, Apple, and Google have failed to do with their browsers?
Joanna: First of all, we try to keep the amount of trusted code (so, the code that enforces the isolation in our system) to an absolute minimum. To do this we use a thin, bare-metal hypervisor (Xen) to run many instances of virtual machines, or domains, separated from each other. But having a thin hypervisor (or a microkernel) is only part of the story.
Some people might argue that by using virtualization we're not really solving any problem—after all, a virtualized, insecure OS is still an insecure OS. Virtualization, they would argue, only introduces another layer of complexity, perhaps only making things worse!
Indeed, it is true that the mere fact we’re using virtualization (another buzzword!) doesn't automatically bring more security. But virtualization provides us with something else that is very useful: compatibility. It allows us to redesign the whole system completely, decompose the trusted computing base, e.g. by moving the networking drivers and stacks to an untrusted domain, moving USB drivers and stacks to another untrusted domain, redesign GUI multiplexing, etc., and at the same time still be able to run all the applications that have been created for a "normal" OS, and which have no idea that networking stacks are now in some separated domain. They don't need to know this, because they still run inside a normal OS, which is virtualized, and special front-end drivers we provide for this OS know where to find the networking services in our redesigned system.
Without virtualization, we would need to either write all of the applications and drivers from scratch (this is what some academic projects focused on microkernels attempt to do), or, at the very least, rebuild each application by relinking it with custom libraries (but we would still need to rewrite most of the drivers, which is hard to imagine in practice for anybody except Microsoft to do).
So, in short, virtualization doesn't bring any security advantage by itself, but it allows for a brave redesign of the OS and yet to reuse all the applications and drivers in this radically-changed design. And this is exactly what we do in Qubes.