# HyperIO: A Hypervisor-Based Framework for Secure IO
###### Abstract  
Malware often attempts to steal input and output through human interface devices to obtain confidential information. We propose to use a thin hypervisor, called \"HyperIO\", to realize a secure path between input and output devices using a partial implementation of device drivers. We apply our approach using two security systems built on HyperIO: FireSafe and ClipCrypt. FireSafe is a web browser extension which allows a remote web server to display and receive sensitive user information securely. ClipCrypt enables the user to securely enter and view their confidential information in commodity Windows applications.  
t rusted path; virtualization; system security; browser security; malware protection +
Footnote †: journal: Applied  
relies on a thin hypervisor called \"XMHF\" [12]. Historically, BitVisor [13] was the first attempt to use virtualization for securing a hardware device. Specifically, BitVisor is a thin hypervisor that intercepts the communication between the operating system and a hard disk to implement full disk encryption transparently.  
Following BitVisor's approach, we propose using a thin hypervisor, which we call \"HyperIO\", to secure users' sensitive information. HyperIO realizes a secure path between input and output devices by partially implementing device drivers by leveraging these devices' usually unused functionality. This approach allows us to achieve a small trusted code base (TCB) and a negligible performance overhead.  
HyperIO intercepts the communication between the operating system and the keyboard. The keyboard's scroll lock LED [14] acts as a security indicator. HyperIO can block attempts to turn on the scroll lock LED from the operating system. In addition, HyperIO uses the display adapter's text mode to display sensitive information to the user. The hypervisor protects the memory region containing the displayed characters from malicious access. Because the text mode and associated memory region are not in use during normal execution of the operating system, HyperIO can freely utilize this resource to secure sensitive information while displaying it.  
HyperIO is a framework for constructing systems with secure IO paths. We demonstrate the usefulness of HyperIO through two use cases. Both use cases demonstrate the ability to display and receive sensitive information from the user safely. The first use case is an extension for the Firefox web browser, which allows a remote web server to display information securely or receive sensitive user input. The second use case allows user-mode applications written for the Windows operating system to display and input sensitive information.  
The main contributions of this paper are as follows:  
* We present a novel thin hypervisor with a minimal TCB, which implements a secure IO path.
* We demonstrate our approach's applicability by describing the implementation of two security systems built using our hypervisor.
* We discuss the usability and security of HyperIO and compare it with previous works.
* We evaluate the performance of HyperIO and verify its effectiveness against popular keyloggers and screen-capturing software.