Virtual machine hypervisors have grown from programs designed to emulate an environment for running Operating Systems into full fledged operating systems themselves that manage large numbers of virtual machines using increasingly complex configurations and policy mechanisms. As a result of these increases in complexity and code size, exploits that target the hypervisor are growing in number and usage. Successful exploits against the hypervisor are disastrous as attackers gain complete access to the machine. In this work, we aim to develop both software and hardware approaches to guarantee the integrity of hypervisor code and data. There are two different approaches we intend to investigate. First, we will create a security micro-kernel that is in charge of setting memory permissions, verifying static code and data integrity, and interceding on security related hypervisor actions. The goal will be to create a small, verifiable kernel that can be used to enhance the security of existing, monolithic-design hypervisors. Second, we will create a stream-based hypervisor integrity verifier that validates dynamic data structures against a set of policies that express legal uses of these structures. This component will allow the detection of complex attacks that target dynamic hypervisor data structures. In addition, we will investigate hardware modifications that will enhance both the security and performance of our system.