Christopher Bolin, McAfee's EVP & CTO blogged an interesting perspective on utilizing virtualization technology to instantiate security functionality in an accompanying VM on a host to protect one or more VM's on the same host. This approach differs than the standard approach of placing host-based security controls on each VM or the intra-VS IPS models from companies such as Reflex (blogged about that here.)
I want to flush out some of these concepts with a little more meat attached
He defines the concept of running security software alongside the operating system it is protecting as "the sentinel":
In this approach, the security software itself resides in its own virtual machine outside and parallel to the system it is meant to protect, which could be another virtual machine running an operating system such as Windows. This enables the security technology to look omnisciently into the subject OS and its operation and take appropriate action when malware or anomalous behavior is detected.
Understood so far...with some caveats, below.
The security software would run in an uncompromised environment monitoring in real-time, and could avoid being disabled, detected or deceived (or make the bad guys work a lot harder.)
While this supposedly uncompromised/uncompromisable OS could exist, how are you going to ensure that the underlying "routing" traffic flow control actually forces the traffic through the Sentinel VM in the first place? If the house of cards rests on this design element, we'll be waiting a while...and adding latency. See below.
This kind of security is not necessarily a one-to-one relationship between sentinel and OSs. One physical machine can run several virtual machines, so one virtual sentinel could watch and service many virtual machines.
I think this is a potentially valid and interesting alternative to deploying more and more host-based security products (which seems odd coming from McAfee) or additional physical appliances, but there are a couple of issues with this premise, some of which Bolin points out, others I'll focus on here:
- Unlike other applications which run in a VM and just require a TCP/IP stack, security applications are extremely topology sensitive. The ability to integrate sentinels in a VM environment with other applications/VM's at layer 2 is extremely difficult, especially if these security applications are to act "in-line."
Virtualizing transport while maintaining topology context is difficult and when you need to then virtualize the policies based upon this topology, it gets worse. Blade servers have this problem; they have integrated basic switch/load balancing modules, but implementing policy-driven "serialization" and "parallelization" (which is what we call it @ Crossbeam) is very, very hard.
- The notion that the sentinel can "...look
omnisciently into the subject OS and its operation and take appropriate
action when malware or anomalous behavior is detected" from a network perspective is confusing. If you're outside the VM/Hypervisor, I don't understand the feasibility of this approach. This is where Blue Lane's VirtualShiel ESX plug-in kicks ass -- it plugs into the Hypervisor and protects not only directed traffic to the VM but also intra-VM traffic with behavioral detection, not just signatures.
- Resource allocation of the sentinel security control as a VM poses a threat vector inasmuch as one could overwhelm/DoS the Sentinel VM and security/availability of the entire system could be compromised; the controls protecting the VMs are competing for the same virtualized resources that the resources are after.
- As Bolin rightfully suggests, a vulnerability in the VM/VMM/Chipsets could introduce a serious set of modeling problems.
I maintain that securing virtualization by virtualizing security is nascent at best, but as Bolin rightfully demonstrates, there are many innovative approaches being discussed to address these new technologies.