The evolution of virtualization techniques in information technology has led to a variety of applications, from cloud-based computing to embedded systems in mobile phones. In general, virtualization obscures hardware characteristics of a computing platform and instead presents an abstract platform that can host other platforms, including complete operating systems. One popular virtualization technique is to deploy a hypervisor (also known as a virtual machine manager) that can allow guest software (including complete operating systems) to run concurrently on an abstract host platform. The hypervisor can provide a simulated computing environment, often referred to as a “virtual machine,” for its guest software. Thus, multiple disparate operating systems can run in separate virtual partitions under a hypervisor on a single chassis, for example.
However, virtual machines are likely to become more popular targets for malicious attacks as the number of deployed virtual machines increases. And while virtualization provides many advantages, it can also present unique security challenges. For example, external security software can receive notifications when events occur inside a virtual machine, and can retrieve memory contents and virtual processor state information from the virtual machine. However, existing techniques for enabling such notifications can adversely affect operating systems running on a virtual partition. Hence, many challenges remain for providing a secure virtualization platform.