Toward the Verification of a Simple Hypervisor

Virtualization promises significant benefits in security, efficiency, dependability, and cost. Achieving these benefits depends upon the reliability of the underlying virtual machine monitors (hypervisors). This paper describes an ongoing project to develop and verify MinVisor, a simple but function...

Full description

Bibliographic Details
Main Authors: Mike Dahlin, Ryan Johnson, Robert Bellarmine Krug, Michael McCoyd, William Young
Format: Article
Language:English
Published: Open Publishing Association 2011-10-01
Series:Electronic Proceedings in Theoretical Computer Science
Online Access:http://arxiv.org/pdf/1110.4672v1
id doaj-8e752ebe9a574dd2b899aab2b06401fb
record_format Article
spelling doaj-8e752ebe9a574dd2b899aab2b06401fb2020-11-24T21:19:00ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802011-10-0170Proc. ACL2 2011284510.4204/EPTCS.70.3Toward the Verification of a Simple HypervisorMike DahlinRyan JohnsonRobert Bellarmine KrugMichael McCoydWilliam YoungVirtualization promises significant benefits in security, efficiency, dependability, and cost. Achieving these benefits depends upon the reliability of the underlying virtual machine monitors (hypervisors). This paper describes an ongoing project to develop and verify MinVisor, a simple but functional Type-I x86 hypervisor, proving protection properties at the assembly level using ACL2. Originally based on an existing research hypervisor, MinVisor provides protection of its own memory from a malicious guest. Our long-term goal is to fully verify MinVisor, providing a vehicle to investigate the modeling and verification of hypervisors at the implementation level, and also a basis for further systems research. Functional segments of the MinVisor C code base are translated into Y86 assembly, and verified with respect to the Y86 model. The inductive assertions (also known as "compositional cutpoints") methodology is used to prove the correctness of the code. The proof of the code that sets up the nested page tables is described. We compare this project to related efforts in systems code verification and outline some useful steps forward.http://arxiv.org/pdf/1110.4672v1
collection DOAJ
language English
format Article
sources DOAJ
author Mike Dahlin
Ryan Johnson
Robert Bellarmine Krug
Michael McCoyd
William Young
spellingShingle Mike Dahlin
Ryan Johnson
Robert Bellarmine Krug
Michael McCoyd
William Young
Toward the Verification of a Simple Hypervisor
Electronic Proceedings in Theoretical Computer Science
author_facet Mike Dahlin
Ryan Johnson
Robert Bellarmine Krug
Michael McCoyd
William Young
author_sort Mike Dahlin
title Toward the Verification of a Simple Hypervisor
title_short Toward the Verification of a Simple Hypervisor
title_full Toward the Verification of a Simple Hypervisor
title_fullStr Toward the Verification of a Simple Hypervisor
title_full_unstemmed Toward the Verification of a Simple Hypervisor
title_sort toward the verification of a simple hypervisor
publisher Open Publishing Association
series Electronic Proceedings in Theoretical Computer Science
issn 2075-2180
publishDate 2011-10-01
description Virtualization promises significant benefits in security, efficiency, dependability, and cost. Achieving these benefits depends upon the reliability of the underlying virtual machine monitors (hypervisors). This paper describes an ongoing project to develop and verify MinVisor, a simple but functional Type-I x86 hypervisor, proving protection properties at the assembly level using ACL2. Originally based on an existing research hypervisor, MinVisor provides protection of its own memory from a malicious guest. Our long-term goal is to fully verify MinVisor, providing a vehicle to investigate the modeling and verification of hypervisors at the implementation level, and also a basis for further systems research. Functional segments of the MinVisor C code base are translated into Y86 assembly, and verified with respect to the Y86 model. The inductive assertions (also known as "compositional cutpoints") methodology is used to prove the correctness of the code. The proof of the code that sets up the nested page tables is described. We compare this project to related efforts in systems code verification and outline some useful steps forward.
url http://arxiv.org/pdf/1110.4672v1
work_keys_str_mv AT mikedahlin towardtheverificationofasimplehypervisor
AT ryanjohnson towardtheverificationofasimplehypervisor
AT robertbellarminekrug towardtheverificationofasimplehypervisor
AT michaelmccoyd towardtheverificationofasimplehypervisor
AT williamyoung towardtheverificationofasimplehypervisor
_version_ 1726007285984002048