Virtualization Detection: New Strategies and Their Effectiveness

Size: px
Start display at page:

Download "Virtualization Detection: New Strategies and Their Effectiveness"

Transcription

1 Virtualization Detection: New Strategies and Their Effectiveness Christopher Thompson Maria Huntley Chad Link ABSTRACT Previous methods for detecting execution within a virtual machine monitor have typically focused on specific anomalies of the implementation [4][14], have required running in kernel mode [5], or have been mitigated by newer versions of processor virtualization extensions [16]. We analyze a a basic non-privileged loop benchmarking test against MAVMM, a VMM designed for transparency [11]. We also implement and analyze the counter-based timing method discussed in [6][16], and a low-level cache interaction test using the sensitive unprivileged instruction CPUID. All of our implementations focus on detection from within the VMM, and without privileged instructions. Our results show that even virtual machine monitors specially designed to maximize their transparency and to prevent detection are susceptible to simple timing benchmarks. Additionally, we find that counter-based timing methods and low-level cache effects methods can distinguish execution in a virtual machine monitor from native execution. We also discuss how cache-flushing based methods are more complicated than previous work has suggested. Categories and Subject Descriptors C.0 [General]: Hardware/software interface; C.4 [Performance of systems]: Performance attributes; D.4.7 [Operating Systems]: Organization and design General Terms Algorithms, Performance, Experimentation, Security. Keywords Virtualization; Virtual Machine Monitor; x86; 1. INTRODUCTION A virtual machine monitor has three goals, as established by Popek and Goldberg in 1974 [12]: 1. Fidelity. Execution on the VMM must be identical to execution on native hardware, except for timing effects. 2. Performance. The VMM must intervene on only a small fraction of the guest's instructions. 3. Safety. All hardware resources are managed by the VMM. In order to maintain the safety of the system, a virtual machine monitor must trap and handle any sensitive instruction (ones that might affect the state of system resources). In the x86 architecture, there exist sensitive instructions that are not privileged [15]. Various methods have been developed to ensure that a VMM traps all sensitive instructions. Due to the existence of sensitive instructions, there can exist timing variations between native executions and executions within a VMM. Whatever method a VMM uses to ensure sensitive instructions are trapped, after it is trapped the VMM must expend additional time handling the instruction in a safe manner. In the x86 architecture, even with processor virtualization extensions, the shadow state must be acted on separately from true hardware state [1]. Thus the VMM code that handles the trapped instruction will add overhead, which can have effects on the actual state of the system. The most direct effect would be on the CPU time-stamp counter (TSC), which tracks processor clock cycles. Some VMMs account for overhead of the sensitive instructions by modifying the TSC by some skew value before returning control to the guest. TLB flushing can be prevented in the latest versions of the AMD-V and Intel-VT virtualization extensions [7]. Other effects on the system, as investigated in this paper, are possibly unpreventable barring extensive reworking of the x86 architecture. These timing and system state effects, as well as specific artifacts of individual implementations of VMMs make the detection of VMMs possible. There are many applications for detecting execution within a VMM. Malware that can detect a VMM can execute alternative code paths to avoid analysis. Some commercial software is packed with such code to avoid reverse engineering. And virtual machine based rootkits have been the topic of much research [9][16] anti-malware programs might one day detect if your machine has been migrated into a VMM without your knowledge. Previous methods for detecting execution within a virtual machine monitor have typically focused on specific artifacts of the implementation, such as hardware naming, guest-to-host communication systems, or memory addresses, among others [4][14]; have required running in kernel mode [5]; or have been mitigated by newer versions of processor virtualization extensions [16]. Our primary technical contributions are: (1) a simple break in the transparency of the MAVMM system using the TSC; (2) experimental analysis of previously discussed techniques and novel variations that have not previously been implemented and analyzed; and (3) the beginning of an analysis on the effects of a VMM on the x86 memory model. The rest of this paper is organized as follows. In Section 2 we test the timing effects in MAVMM, which claims to be transparent to detection methods. In Section 3 we look at counter-based timing methods and test and analyze such a method against various

2 VMMs. In Section 4 we look at cache-effects based methods, testing a new variation of the method against various VMMs. In Section 5 we look at related work. In Section 6 we present the conclusions we have gathered from our results. In Section 7 we discuss possible future work. All of our implementations (source and instructions) are available for download DETECTING TRANSPARENT VIRTUAL MACHINE MONITORS The research in VMM detection has played out as an arms race, not dissimilar to the problem of virus detection. Special purpose VMMs have been designed, and MAVMM [11] is an example of a VMM particularly designed to be transparent to detection. MAVMM was developed as a possible platform for malware analysis, specifically with strong introspection facilities and a focus on transparency over other factors. We wanted to verify the transparency of the MAVMM system. To do so, we created a simple timing benchmarking program. This consisted of timing using the rdtsc instruction, and a loop of instructions that only operated on registers. An excerpt of this loop is shown in Figure 1. rdtsc mov $121072, %edi loop: xorl %eax, %eax addl %ebx, %ebx movl %ecx, %ecx... sub $1, %edi jnz loop rdtsc Figure 1. Excerpt of the assembly code loop used in the simple timing benchmark. This is a variation on the trace cache loop in [Fuzzy Detection]. Because MAVMM is currently designed to run inside AMD's SimNow hardware simulator [2], we tested our detector on a Linux installation inside SimNow, and on a Linux installation inside MAVMM inside SimNow. The detector was run with loop lengths of 2000 to instructions. The results of our tests are shown in Figure 2. We saw that on average MAVMM took 436 more processor cycles to run the detector program than on baremetal. For most of the loop lengths the difference is noticeable at a 0.05 significance level. Thus we can see that even a VMM designed for transparency betrays significant timing discrepancies. 3. COUNTER-BASED TIMING The method of counter-based timing has been previously discussed, and proof-of-concept code mentioned [5][6][16], but no analysis of its effectiveness is currently available. Counter-based timing is of particular note because it is not dependent on any time source, inside or outside the target system. Because a VMM can skew results from internal timers (processor time-stamp counters, etc.), and network timing introduces fuzziness from latency and other factors, being able to performing timing without an actual time source is particularly interesting. Figure 2. A comparison of the CPU cycles used by the detector in MAVMM and on baremetal in SimNow. The means of 12 trials are shown along with 95% confidence intervals for those means. Counter-based timing races two threads running on a multi-core system (so that they are in roughly equal contention for processor cycles). One thread executes a continuous loop of NOP instructions. The other thread executes a continuous loop of CPUID instructions. Since CPUID is a sensitive unprivileged instruction [6], it must be trapped by the VMM (therefore incurring additional latency), but we can call it from user space. 3.1 Implementation We implemented a multi-threaded counter-based timing program in C using the POSIX threads library. Although this particular method requires a machine with multiple execution cores, there are other potentially sources of concurrency that could be used to create similar execution races. An additional thread was used with a signal timer to log the running counts in each of the looping threads at even intervals. This program let us compare how many CPUID instructions a core can execute over a time interval versus how many NOP instructions another core can execute over that same time interval, without needing to using explicit timing. If we were concerned about the accuracy of the signal timer in the status thread, we could instead run one of the looping threads until a predetermined count, and then stop both looping threads and compare their counts at that time. 3.2 Experimental Analysis We tested our counter-based timing implementation on baremetal, QEMU [13], VMWare Workstation [17], and KVM [10]. Each system had two processor cores, simulated or real, and was running Ubuntu Linux with a 2.6 series Linux kernel. For each system, we gathered three runs of the detector over at least 50,000 msec per run. Counts were logged every 500 msec. 1

3 KVM is notable as it displays a much greater disparity in the speed of a NOP to a CPUID than any of the other VMMs. In this case, the hardware VMM added its overhead to the already expensive CPUID instruction. Figure 4 shows that the means of the ratios for each system are statistically distinguishable to a 0.05 significance level. Thus, given a baseline understanding regarding how much longer a CPUID instruction should take to execute compared to a NOP instruction, this technique is immediately useful as a method for detecting virtualization. Figure 3. Comparison of NOP count to CPUID count over time for a baremetal system, QEMU, VMWare, and KVM. Figure 3 compares the ratio of the running count of NOP instructions executed to the running count of CPUID instructions executed over time for each system. VMWare Workstation, in full system virtualization mode using dynamic binary translation, showed a fairly small, but still detectable difference in its behavior from the tests on baremetal. Dynamic binary translation most likely allows VMWare to never have to trap for this instruction at all, substituting its own routine and modifying the registers accordingly instead. The results from the tests in QEMU show that a CPUID instruction takes a comparable amount of time to a NOP---a ratio of counts near As a full system emulator, QEMU most likely has a simplified implementation of CPUID and can immediately complete the instruction (without ever executing a CPUID on the host CPU), where on a native system the processor might take upward of 200 processor cycles to execute it. Figure 4. Comparison of the means and distribution of the ratio of NOPs executed to CPUIDs executed. 4. CACHE-EFFECTS When a VMM traps an instruction, a context-switch to VMM code must occur. On a typical machine, this means that registers, page tables, etc. of the process that trapped are saved, to be restored when it is context-switched back. However, certain parts of system state are not, or can not, be saved in this manner. Previous detection methods have taken advantage of the fact that the Translation Lookaside Buffer is one such part of system state [16]. On context-switch, the TLB would be flushed. By filling the TLB and forcing a context-switch to the VMM, a detector could compare timing information before and after to determine if such a flush occurred, and thus a VMM was present. Since then, both AMD-V and Intel-VT virtualization extensions have brought support for tagging entries in the TLB by process, and not explicitly flushing the entire TLB on context-switch [7]. Strategically filling the entire TLB and testing if any entries were overwritten could still be used to detect whether VMM code was executed, but it is much less effective than when the entire TLB was flushed. While the TLB can be controlled through fairly simple modifications to the virtualization extensions, lower level elements of the x86 memory model are much less controllable. These elements of the memory model are abstracted by the processor, and often vary greatly in their actual implementation and behavior [3]. For our experiment, we focused on the level 1 and level 2 processor instruction caches. While these caches are much more difficult to fill (due to typically being 8-way set associative and much more volatile), they are equally difficult for the VMM to control. 4.1 Implementation A simple Python script served as a wrapper of the compilation process. First, a C program was compiled that profiled how many CPU cycles one execution of the CPUID instruction takes on the target platform. Then, the cycle count is used to create two loops: one with a leading CPUID (the dirty loop) and one with a loop of NOP instructions to account for the overhead of the CPUID (the clean loop). Thus, the difference in the execution time between a CPUID and a NOP are mitigated for each platform. For example, on KVM, a typical CPUID instruction might take 2500 cycles, while on baremetal it might only take 250 cycles. The CPUID instruction [7] serves as both a serializing instruction and as our sensitive unprivileged instruction to cause a context-switch to the VMM (if present). Each loop has 10 instructions that only affect the CPU registers. This creates a total loop size that can readily fit inside the processor instruction caches.

4 While both loops will be occasionally context-switched by the process scheduler, we would expect the dirty loop to be switched significantly more often than the clean loop when inside a VMM, as it forces a context-switch every time it executes the CPUID instruction. 4.2 Experimental analysis We gathered 150 trials of the detector on each system. Each trial consisted of 1000 executions of the clean loop and 1000 executions of the dirty loop, which were then used to calculate an average number of processor cycles used for each loop in each trial. In each case, either only one virtual processor was made available in the VMM, or processor affinity was forced to increase the accuracy of readings of the CPU time-stamp counter. Figure X shows the results we gathered when testing our detector on a baremetal system and on KVM, QEMU, and VMWare Workstation. The distributions appear to be at least approximately normal around the mean. Figure 5. The distributions for each system of the ratio of cycles for the dirty loop to cycles for the clean loop. Baremetal shows a roughly even ratio, while the VMMs show significantly lower ratios. From our results we see that each of the VMMs show a much lower ratio than on baremetal. We actually that the dirty loop is taking less CPU cycles when in a VMM than the clean loop---opposite of our expected behavior. As shown in Section 3, QEMU appears to have a streamlined implementation of the CPUID instruction. However, we might have expected the initial profiling of the system to compensate for this. VMMs are able to offset the time-stamp counter in order to account for overhead. We may be seeing an over-correction for perceived overhead by the VMMs. 5. RELATED WORK Individual implementations of VMMs often introduce small bugs, or have features that are detectable from the guest. Peter Ferrie surveyed many such detectable anomalies, ranging from the location of the system Descriptor Tables to guest-to-host communication mechanisms [4]. Our work focuses on more general timing and system state introduced by the presence of a VMM instead of effects specific to any one implementation. Virtual machine-based rootkits (VMBRs) take advantage of the isolation of the host and guest provided by a virtual machine to hide rootkit code. Some systems, such as BluePill [16], can even migrate a live system into a malicious VMM. If VMBRs become prevalent in malware, anti-malware software may need to employ generic heuristic detection, such as the method we analyzed in this paper, alongside signature based detection, in order to detect such infections. In our work we focus only on a passive VMM. An active VMM or debugger modifies a running program to disable the code paths responsible for detection. Progress has been made on using dynamic analysis of a program to disable such detection routines [8]. Research has been done on using a remote detector machine to avoid the issues with local timing. A generic approach to this style of detection is analyzed in [5]. This work requires a remote machine, and code running in kernel space on the target. Our methods can detect a VMM from inside the guest, and require no privileged instructions. 6. CONCLUSION The timing effects that can be introduced by a VMM seem to be ever present. Even VMMs that have explicit goals of transparency (such as MAVMM) are still susceptible to leaking their presence through simple VMM overhead. We have shown the effectiveness of counter-based timing methods and cache-effects based detection methods. The differences in execution on native hardware is highly significantly different from execution inside a VMM for both methods. We have also demonstrated that the complexity and volatility of low level machine state can have a strong effect on the execution of programs inside a VMM. The inaccessibility of these low level parts of the x86 memory model will make it difficult for a VMM to prevent its effects. 7. FUTURE WORK There are many avenues we may pursue as further analysis of our methods. Extending our methods to use other sensitive, unprivileged instructions may yield additional insight into how overhead is created for different VMM actions. For the counter-based timing methods, there may be useful information in the trends of the ratios over time. In our results, KVM appears to have an upward trend, while the baremetal system appears to have a downward trend. More testing and analysis would be required to see if this is meaningful. For the cache-effects based methods, actively investigating the effects that can be produced on individual components of the low level memory model would be an interesting direction to pursue. There are some naïve assumptions about how these components act, but the cache architecture of x86 CPUs is becoming increasingly complex [3]. Also, are there any ways around these low level effects other than extremely specialized hardware? As virtualization extends to include standard desktop machines, we must also look into what this means for detecting virtualization. Nestable VMMs are currently available [16]. Are there any effects that are magnified by the number of VMMs being nested?

5 8. REFERENCES [1] Adams, K., and Agesen, O A comparison of software and hardware techniques for x86 virtualization. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems (2006), ACM, pp [2] AMD SimNow. Pages/default.aspx/. [3] Drepper, U What every programmer should know about memory. cpumemory.pdf. [4] Ferrie, P Attacks on more virtual machine emulators. Symantec Technology Exchange. [5] Franklin, J., Luk, M., McCune, J., Seshadri, A., Perrig, A., and Doorn, L Towards sound detection of virtual machines. Botnet Detection (2008), [6] Garfinkel, T., Adams, K., Warfield, A., and Franklin, J Compatibility is not transparency: VMM detection myths and realities. In Proceedings of the 11th USENIX workshop on Hot topics in operating systems (2007), USENIX Association, pp [7] Intel 64 and IA-32 Architectures Software Developer s Manual. [8] Kang, M., Yin, H., Hanna, S., McCamant, S., and Song, D Emulating emulation-resistant malware. In Proceedings of the 1st ACM workshop on Virtual machine security (2009), ACM, pp [9] King, S., Chen, P., Wang, Y., Verbowski, C., Wang, H., and Lorch, J SubVirt: Implementing malware with virtual machines. IEEE Symposium on Security and Privacy (May 2006). [10] KVM. [11] Nguyen, A., Schear, N., Jung, H., Godiyal, A., King, S., and Nguyen, H MAVMM: Lightweight and Purpose Built VMM for Malware Analysis In 2009 Annual Computer Security Applications Conference (2009), [12] Popek, G. and Goldberg, R Formal requirements for virtualizable third generation architectures. Communications of the ACM 17, 7 (1974), 421. [13] QEMU. [14] Quist, D. and Smith, V Further Down the VM Spiral. [15] Robin, J. and Irvine, C Analysis of the Intel Pentium s ability to support a secure virtual machine monitor. In Proceedings of the 9th conference on USENIX Security Symposium-Volume 9 (2000), USENIX Association, 10. [16] Rutkowska, J. and Tereshkin, A IsGameOver () Anyone. Black Hat, USA (2007). [17] VMWare Workstation. workstation/.

COS 318: Operating Systems. Virtual Machine Monitors

COS 318: Operating Systems. Virtual Machine Monitors COS 318: Operating Systems Virtual Machine Monitors Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Introduction u Have

More information

Implementation of a Purely Hardware-assisted VMM for x86 Architecture

Implementation of a Purely Hardware-assisted VMM for x86 Architecture Implementation of a Purely Hardware-assisted VMM for x86 Architecture Saidalavi Kalady, Dileep P G, Krishanu Sikdar, Sreejith B S, Vinaya Surya, Ezudheen P Abstract Virtualization is a technique for efficient

More information

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines: Virtual Machines Uses for Virtual Machines Virtual machine technology, often just called virtualization, makes one computer behave as several computers by sharing the resources of a single computer between

More information

Machine Virtualization: Efficient Hypervisors, Stealthy Malware

Machine Virtualization: Efficient Hypervisors, Stealthy Malware Machine Virtualization: Efficient Hypervisors, Stealthy Malware Muli Ben-Yehuda Technion & Hypervisor Technologies and Consulting Ltd Muli Ben-Yehuda (Technion & Hypervisor) Efficient Hypervisors, Stealthy

More information

Virtualization. Pradipta De [email protected]

Virtualization. Pradipta De pradipta.de@sunykorea.ac.kr Virtualization Pradipta De [email protected] Today s Topic Virtualization Basics System Virtualization Techniques CSE506: Ext Filesystem 2 Virtualization? A virtual machine (VM) is an emulation

More information

Full and Para Virtualization

Full and Para Virtualization Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels

More information

Detecting the Presence of Virtual Machines Using the Local Data Table

Detecting the Presence of Virtual Machines Using the Local Data Table Detecting the Presence of Virtual Machines Using the Local Data Table Abstract Danny Quist {[email protected]} Val Smith {[email protected]} Offensive Computing http://www.offensivecomputing.net/

More information

Virtualization. Dr. Yingwu Zhu

Virtualization. Dr. Yingwu Zhu Virtualization Dr. Yingwu Zhu What is virtualization? Virtualization allows one computer to do the job of multiple computers. Virtual environments let one computer host multiple operating systems at the

More information

CS 695 Topics in Virtualization and Cloud Computing. More Introduction + Processor Virtualization

CS 695 Topics in Virtualization and Cloud Computing. More Introduction + Processor Virtualization CS 695 Topics in Virtualization and Cloud Computing More Introduction + Processor Virtualization (source for all images: Virtual Machines: Versatile Platforms for Systems and Processes Morgan Kaufmann;

More information

Virtualization. Jukka K. Nurminen 23.9.2015

Virtualization. Jukka K. Nurminen 23.9.2015 Virtualization Jukka K. Nurminen 23.9.2015 Virtualization Virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms,

More information

Virtual machines and operating systems

Virtual machines and operating systems V i r t u a l m a c h i n e s a n d o p e r a t i n g s y s t e m s Virtual machines and operating systems Krzysztof Lichota [email protected] A g e n d a Virtual machines and operating systems interactions

More information

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University Virtual Machine Monitors Dr. Marc E. Fiuczynski Research Scholar Princeton University Introduction Have been around since 1960 s on mainframes used for multitasking Good example VM/370 Have resurfaced

More information

COS 318: Operating Systems. Virtual Machine Monitors

COS 318: Operating Systems. Virtual Machine Monitors COS 318: Operating Systems Virtual Machine Monitors Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Introduction Have been around

More information

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor? Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor? Mr. Jacob Torrey February 26, 2014 Dartmouth College 153 Brooks Road, Rome, NY 315.336.3306 http://ainfosec.com @JacobTorrey

More information

Enabling Technologies for Distributed Computing

Enabling Technologies for Distributed Computing Enabling Technologies for Distributed Computing Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF Multi-core CPUs and Multithreading Technologies

More information

Virtualization. Types of Interfaces

Virtualization. Types of Interfaces Virtualization Virtualization: extend or replace an existing interface to mimic the behavior of another system. Introduced in 1970s: run legacy software on newer mainframe hardware Handle platform diversity

More information

Survey On Hypervisors

Survey On Hypervisors Survey On Hypervisors Naveed Alam School Of Informatics and Computing Indiana University Bloomington [email protected] ABSTRACT Virtual machines are increasing in popularity and are being widely adopted.

More information

Chapter 5 Cloud Resource Virtualization

Chapter 5 Cloud Resource Virtualization Chapter 5 Cloud Resource Virtualization Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. Performance and security isolation. Architectural support for virtualization.

More information

Introduction to Virtual Machines

Introduction to Virtual Machines Introduction to Virtual Machines Carl Waldspurger (SB SM 89, PhD 95), VMware R&D 2010 VMware Inc. All rights reserved Overview Virtualization and VMs Processor Virtualization Memory Virtualization I/O

More information

Full System Emulation:

Full System Emulation: Full System Emulation: Achieving Successful Automated Dynamic Analysis of Evasive Malware Christopher Kruegel Lastline, Inc. [email protected] 1 Introduction Automated malware analysis systems (or sandboxes)

More information

kvm: Kernel-based Virtual Machine for Linux

kvm: Kernel-based Virtual Machine for Linux kvm: Kernel-based Virtual Machine for Linux 1 Company Overview Founded 2005 A Delaware corporation Locations US Office Santa Clara, CA R&D - Netanya/Poleg Funding Expertise in enterprise infrastructure

More information

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits: Hypervisors Credits: P. Chaganti Xen Virtualization A practical handbook D. Chisnall The definitive guide to Xen Hypervisor G. Kesden Lect. 25 CS 15-440 G. Heiser UNSW/NICTA/OKL Virtualization is a technique

More information

OS Virtualization. CSC 456 Final Presentation Brandon D. Shroyer

OS Virtualization. CSC 456 Final Presentation Brandon D. Shroyer OS Virtualization CSC 456 Final Presentation Brandon D. Shroyer Introduction Virtualization: Providing an interface to software that maps to some underlying system. A one-to-one mapping between a guest

More information

The Xen of Virtualization

The Xen of Virtualization The Xen of Virtualization Assignment for CLC-MIRI Amin Khan Universitat Politècnica de Catalunya March 4, 2013 Amin Khan (UPC) Xen Hypervisor March 4, 2013 1 / 19 Outline 1 Introduction 2 Architecture

More information

Virtual Machines. COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361

Virtual Machines. COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361 s COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361 1 Virtualization! Create illusion of multiple machines on the same physical hardware! Single computer hosts multiple virtual machines

More information

Virtualization. Jia Rao Assistant Professor in CS http://cs.uccs.edu/~jrao/

Virtualization. Jia Rao Assistant Professor in CS http://cs.uccs.edu/~jrao/ Virtualization Jia Rao Assistant Professor in CS http://cs.uccs.edu/~jrao/ What is Virtualization? Virtualization is the simulation of the software and/ or hardware upon which other software runs. This

More information

Architecture of the Kernel-based Virtual Machine (KVM)

Architecture of the Kernel-based Virtual Machine (KVM) Corporate Technology Architecture of the Kernel-based Virtual Machine (KVM) Jan Kiszka, Siemens AG, CT T DE IT 1 Corporate Competence Center Embedded Linux [email protected] Copyright Siemens AG 2010.

More information

matasano Hardware Virtualization Rootkits Dino A. Dai Zovi

matasano Hardware Virtualization Rootkits Dino A. Dai Zovi Hardware Virtualization Rootkits Dino A. Dai Zovi Agenda Introductions Virtualization (Software and Hardware) Intel VT-x (aka Vanderpool ) VM Rootkits Implementing a VT-x based Rootkit Detecting Hardware-VM

More information

Virtualization Technologies

Virtualization Technologies 12 January 2010 Virtualization Technologies Alex Landau ([email protected]) IBM Haifa Research Lab What is virtualization? Virtualization is way to run multiple operating systems and user applications on

More information

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want. Virtual machines Virtual machine systems can give everyone the OS (and hardware) that they want. IBM s VM provided an exact copy of the hardware to the user. Virtual Servers Virtual machines are very widespread.

More information

CPU performance monitoring using the Time-Stamp Counter register

CPU performance monitoring using the Time-Stamp Counter register CPU performance monitoring using the Time-Stamp Counter register This laboratory work introduces basic information on the Time-Stamp Counter CPU register, which is used for performance monitoring. The

More information

Virtualization. Clothing the Wolf in Wool. Wednesday, April 17, 13

Virtualization. Clothing the Wolf in Wool. Wednesday, April 17, 13 Virtualization Clothing the Wolf in Wool Virtual Machines Began in 1960s with IBM and MIT Project MAC Also called open shop operating systems Present user with the view of a bare machine Execute most instructions

More information

Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...

Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization... Contents Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...3 The Challenges of x86 Hardware Virtualization...3 Technique 1 - Full Virtualization using Binary Translation...4 Technique

More information

CERIAS Tech Report 2015-9 Basic Dynamic Processes Analysis of Malware in Hypervisors Type I & II by Ibrahim Waziri Jr, Sam Liles Center for Education

CERIAS Tech Report 2015-9 Basic Dynamic Processes Analysis of Malware in Hypervisors Type I & II by Ibrahim Waziri Jr, Sam Liles Center for Education CERIAS Tech Report 2015-9 Basic Dynamic Processes Analysis of Malware in Hypervisors Type I & II by Ibrahim Waziri Jr, Sam Liles Center for Education and Research Information Assurance and Security Purdue

More information

Hypervisors and Virtual Machines

Hypervisors and Virtual Machines Hypervisors and Virtual Machines Implementation Insights on the x86 Architecture DON REVELLE Don is a performance engineer and Linux systems/kernel programmer, specializing in high-volume UNIX, Web, virtualization,

More information

Virtual Machines. www.viplavkambli.com

Virtual Machines. www.viplavkambli.com 1 Virtual Machines A virtual machine (VM) is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software

More information

Enabling Technologies for Distributed and Cloud Computing

Enabling Technologies for Distributed and Cloud Computing Enabling Technologies for Distributed and Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF Multi-core CPUs and Multithreading

More information

VMkit A lightweight hypervisor library for Barrelfish

VMkit A lightweight hypervisor library for Barrelfish Masters Thesis VMkit A lightweight hypervisor library for Barrelfish by Raffaele Sandrini Due date 2 September 2009 Advisors: Simon Peter, Andrew Baumann, and Timothy Roscoe ETH Zurich, Systems Group Department

More information

KVM: A Hypervisor for All Seasons. Avi Kivity [email protected]

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com KVM: A Hypervisor for All Seasons Avi Kivity [email protected] November 2007 Virtualization Simulation of computer system in software Components Processor: register state, instructions, exceptions Memory

More information

Virtualization Technology

Virtualization Technology Virtualization Technology A Manifold Arms Race Michael H. Warfield Senior Researcher and Analyst [email protected] 2008 IBM Corporation Food for Thought Is Virtual Reality an oxymoron or is it the

More information

OS Virtualization Frank Hofmann

OS Virtualization Frank Hofmann OS Virtualization Frank Hofmann OP/N1 Released Products Engineering Sun Microsystems UK Overview Different approaches to virtualization > Compartmentalization > System Personalities > Virtual Machines

More information

x86 ISA Modifications to support Virtual Machines

x86 ISA Modifications to support Virtual Machines x86 ISA Modifications to support Virtual Machines Douglas Beal Ashish Kumar Gupta CSE 548 Project Outline of the talk Review of Virtual Machines What complicates Virtualization Technique for Virtualization

More information

System Virtual Machines

System Virtual Machines System Virtual Machines Introduction Key concepts Resource virtualization processors memory I/O devices Performance issues Applications 1 Introduction System virtual machine capable of supporting multiple

More information

In-Band Methods of Virtual Machine Detection

In-Band Methods of Virtual Machine Detection GRADUATE OPERATING SYSTEMS 1 In-Band Methods of Virtual Machine Detection Estefan Ortiz & Cory Hayes University of Notre Dame {eortiz, chayes3}@nd.edu Abstract In a proof of concept paper, the authors

More information

WHITE PAPER. AMD-V Nested Paging. AMD-V Nested Paging. Issue Date: July, 2008 Revision: 1.0. Advanced Micro Devices, Inc.

WHITE PAPER. AMD-V Nested Paging. AMD-V Nested Paging. Issue Date: July, 2008 Revision: 1.0. Advanced Micro Devices, Inc. Issue Date: July, 2008 Revision: 1.0 2008 All rights reserved. The contents of this document are provided in connection with ( AMD ) products. AMD makes no representations or warranties with respect to

More information

Cloud Computing #6 - Virtualization

Cloud Computing #6 - Virtualization Cloud Computing #6 - Virtualization Main source: Smith & Nair, Virtual Machines, Morgan Kaufmann, 2005 Today What do we mean by virtualization? Why is it important to cloud? What is the penalty? Current

More information

Cloud Computing CS 15-319

Cloud Computing CS 15-319 Cloud Computing CS 15-319 Virtualization Case Studies : Xen and VMware Lecture 20 Majd F. Sakr, Mohammad Hammoud and Suhail Rehman 1 Today Last session Resource Virtualization Today s session Virtualization

More information

Multi-core Programming System Overview

Multi-core Programming System Overview Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,

More information

VMware Server 2.0 Essentials. Virtualization Deployment and Management

VMware Server 2.0 Essentials. Virtualization Deployment and Management VMware Server 2.0 Essentials Virtualization Deployment and Management . This PDF is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights reserved.

More information

Virtualization. ! Physical Hardware. ! Software. ! Isolation. ! Software Abstraction. ! Encapsulation. ! Virtualization Layer. !

Virtualization. ! Physical Hardware. ! Software. ! Isolation. ! Software Abstraction. ! Encapsulation. ! Virtualization Layer. ! Starting Point: A Physical Machine Virtualization Based on materials from: Introduction to Virtual Machines by Carl Waldspurger Understanding Intel Virtualization Technology (VT) by N. B. Sahgal and D.

More information

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE Sudha M 1, Harish G M 2, Nandan A 3, Usha J 4 1 Department of MCA, R V College of Engineering, Bangalore : 560059, India [email protected] 2 Department

More information

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition Chapter 16: Virtual Machines Silberschatz, Galvin and Gagne 2013 Chapter 16: Virtual Machines Overview History Benefits and Features Building Blocks Types of Virtual Machines and Their Implementations

More information

Nested Virtualization

Nested Virtualization Nested Virtualization State of the art and future directions Bandan Das Yang Z Zhang Jan Kiszka 2 Outline Introduction Changes and Missing Features for AMD Changes and Missing Features for Intel Working

More information

kvm: the Linux Virtual Machine Monitor

kvm: the Linux Virtual Machine Monitor Avi Kivity Qumranet [email protected] kvm: the Linux Virtual Machine Monitor Uri Lublin Qumranet [email protected] Yaniv Kamay Qumranet [email protected] Dor Laor Qumranet [email protected] Anthony

More information

Dynamic resource management for energy saving in the cloud computing environment

Dynamic resource management for energy saving in the cloud computing environment Dynamic resource management for energy saving in the cloud computing environment Liang-Teh Lee, Kang-Yuan Liu, and Hui-Yang Huang Department of Computer Science and Engineering, Tatung University, Taiwan

More information

A Hypervisor IPS based on Hardware assisted Virtualization Technology

A Hypervisor IPS based on Hardware assisted Virtualization Technology A Hypervisor IPS based on Hardware assisted Virtualization Technology 1. Introduction Junichi Murakami ([email protected]) Fourteenforty Research Institute, Inc. Recently malware has become more

More information

Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation

Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation Satish Narayanasamy, Cristiano Pereira, Harish Patil, Robert Cohn, and Brad Calder Computer Science and

More information

Virtualization in Linux KVM + QEMU

Virtualization in Linux KVM + QEMU CS695 Topics in Virtualization and Cloud Computing KVM + QEMU Senthil, Puru, Prateek and Shashank 1 Topics covered KVM and QEMU Architecture VTx support CPU virtualization in KMV Memory virtualization

More information

Introduction to Virtual Machines

Introduction to Virtual Machines Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity

More information

Development of Type-2 Hypervisor for MIPS64 Based Systems

Development of Type-2 Hypervisor for MIPS64 Based Systems Development of Type-2 Hypervisor for MIPS64 Based Systems High Performance Computing and Networking Lab Al-Khwarizmi Institute of Computer Science University of Engineering & Technology Lahore Pakistan

More information

Virtual Machines Fact Sheet

Virtual Machines Fact Sheet Terms Virtual Machines Fact Sheet T1: Host The underlying hardware systems that runs a virtual machine. T2: Virtual Machine Manager (VMM) Also known as a hypervisor, the VMM provides an interface that

More information

Masters Project Proposal

Masters Project Proposal Masters Project Proposal Virtual Machine Storage Performance Using SR-IOV by Michael J. Kopps Committee Members and Signatures Approved By Date Advisor: Dr. Jia Rao Committee Member: Dr. Xiabo Zhou Committee

More information

Basics of Virtualisation

Basics of Virtualisation Basics of Virtualisation Volker Büge Institut für Experimentelle Kernphysik Universität Karlsruhe Die Kooperation von The x86 Architecture Why do we need virtualisation? x86 based operating systems are

More information

Using Hardware Performance Events for Instruction-Level Monitoring on the x86 Architecture

Using Hardware Performance Events for Instruction-Level Monitoring on the x86 Architecture Using Hardware Performance Events for Instruction-Level Monitoring on the x86 Architecture Sebastian Vogl Department of Computer Science Technische Universität München Munich, Germany {vogls,eckertc}@in.tum.de

More information

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool Outline CS 6V81-05: System Security and Malicious Code Analysis Overview of System ization: The most powerful platform for program analysis and system security Zhiqiang Lin Department of Computer Science

More information

nanohub.org An Overview of Virtualization Techniques

nanohub.org An Overview of Virtualization Techniques An Overview of Virtualization Techniques Renato Figueiredo Advanced Computing and Information Systems (ACIS) Electrical and Computer Engineering University of Florida NCN/NMI Team 2/3/2006 1 Outline Resource

More information

ARM Virtualization: CPU & MMU Issues

ARM Virtualization: CPU & MMU Issues ARM Virtualization: CPU & MMU Issues Prashanth Bungale, Sr. Member of Technical Staff 2010 VMware Inc. All rights reserved Overview Virtualizability and Sensitive Instructions ARM CPU State Sensitive Instructions

More information

A Survey on Virtual Machine Security

A Survey on Virtual Machine Security A Survey on Virtual Machine Security Jenni Susan Reuben Helsinki University of Technology [email protected] Abstract Virtualization plays a major role in helping the organizations to reduce the operational

More information

Red Hat Linux Internals

Red Hat Linux Internals Red Hat Linux Internals Learn how the Linux kernel functions and start developing modules. Red Hat Linux internals teaches you all the fundamental requirements necessary to understand and start developing

More information

Compromise-as-a-Service

Compromise-as-a-Service ERNW GmbH Carl-Bosch-Str. 4 D-69115 Heidelberg 3/31/14 Compromise-as-a-Service Our PleAZURE Felix Wilhelm & Matthias Luft {fwilhelm, mluft}@ernw.de ERNW GmbH Carl-Bosch-Str. 4 D-69115 Heidelberg Agenda

More information

Virtualisation Without a Hypervisor in Cloud Infrastructures: An Initial Analysis

Virtualisation Without a Hypervisor in Cloud Infrastructures: An Initial Analysis Virtualisation Without a Hypervisor in Cloud Infrastructures: An Initial Analysis William A. R. de Souza and Allan Tomlinson Information Security Group Royal Holloway, University of London Egham Hill,

More information

GUEST OPERATING SYSTEM BASED PERFORMANCE COMPARISON OF VMWARE AND XEN HYPERVISOR

GUEST OPERATING SYSTEM BASED PERFORMANCE COMPARISON OF VMWARE AND XEN HYPERVISOR GUEST OPERATING SYSTEM BASED PERFORMANCE COMPARISON OF VMWARE AND XEN HYPERVISOR ANKIT KUMAR, SAVITA SHIWANI 1 M. Tech Scholar, Software Engineering, Suresh Gyan Vihar University, Rajasthan, India, Email:

More information

Xen and the Art of Virtualization

Xen and the Art of Virtualization Xen and the Art of Virtualization Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauery, Ian Pratt, Andrew Warfield University of Cambridge Computer Laboratory, SOSP

More information

The Microsoft Windows Hypervisor High Level Architecture

The Microsoft Windows Hypervisor High Level Architecture The Microsoft Windows Hypervisor High Level Architecture September 21, 2007 Abstract The Microsoft Windows hypervisor brings new virtualization capabilities to the Windows Server operating system. Its

More information

KVM Architecture Overview

KVM Architecture Overview KVM Architecture Overview 2015 Edition Stefan Hajnoczi 1 Introducing KVM virtualization KVM hypervisor runs virtual machines on Linux hosts Mature on x86, recent progress on ARM and

More information

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself How do Users and Processes interact with the Operating System? Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI,

More information

Virtualization Technology. Zhiming Shen

Virtualization Technology. Zhiming Shen Virtualization Technology Zhiming Shen Virtualization: rejuvenation 1960 s: first track of virtualization Time and resource sharing on expensive mainframes IBM VM/370 Late 1970 s and early 1980 s: became

More information

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies Kurt Klemperer, Principal System Performance Engineer [email protected] Agenda Session Length:

More information

Virtual Machines. Virtualization

Virtual Machines. Virtualization Virtual Machines Marie Roch Tanenbaum 8.3 contains slides from: Tanenbaum 3 rd ed. 2008 1 Virtualization Started with the IBM System/360 in the 1960s Basic concept simulate multiple copies of the underlying

More information

Virtualization and Other Tricks.

Virtualization and Other Tricks. Virtualization and Other Tricks. Pavel Parízek, Tomáš Kalibera, Peter Libič DEPARTMENT OF DISTRIBUTED AND DEPENDABLE SYSTEMS http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and

More information

ELEC 377. Operating Systems. Week 1 Class 3

ELEC 377. Operating Systems. Week 1 Class 3 Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation

More information

Performance monitoring with Intel Architecture

Performance monitoring with Intel Architecture Performance monitoring with Intel Architecture CSCE 351: Operating System Kernels Lecture 5.2 Why performance monitoring? Fine-tune software Book-keeping Locating bottlenecks Explore potential problems

More information

Distributed System Monitoring and Failure Diagnosis using Cooperative Virtual Backdoors

Distributed System Monitoring and Failure Diagnosis using Cooperative Virtual Backdoors Distributed System Monitoring and Failure Diagnosis using Cooperative Virtual Backdoors Benoit Boissinot E.N.S Lyon directed by Christine Morin IRISA/INRIA Rennes Liviu Iftode Rutgers University Phenix

More information

Distributed Systems. Virtualization. Paul Krzyzanowski [email protected]

Distributed Systems. Virtualization. Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Virtualization Paul Krzyzanowski [email protected] Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Virtualization

More information

Reverse Engineering by Crayon: Game Changing Hypervisor and Visualization Analysis

Reverse Engineering by Crayon: Game Changing Hypervisor and Visualization Analysis Reverse Engineering by Crayon: Game Changing Hypervisor and Visualization Analysis Game Changing Hypervisor Based Malware Analysis and Visualization Danny Quist Lorie Liebrock New Mexico Tech Computer

More information

Virtualization. Michael Tsai 2015/06/08

Virtualization. Michael Tsai 2015/06/08 Virtualization Michael Tsai 2015/06/08 What is virtualization? Let s first look at a video from VMware http://bcove.me/x9zhalcl Problems? Low utilization Different needs DNS DHCP Web mail 5% 5% 15% 8%

More information

Knut Omang Ifi/Oracle 19 Oct, 2015

Knut Omang Ifi/Oracle 19 Oct, 2015 Software and hardware support for Network Virtualization Knut Omang Ifi/Oracle 19 Oct, 2015 Motivation Goal: Introduction to challenges in providing fast networking to virtual machines Prerequisites: What

More information

Virtualization Concepts And Applications. Yash Jain DA-IICT (DCOM Research Group)

Virtualization Concepts And Applications. Yash Jain DA-IICT (DCOM Research Group) Virtualization Concepts And Applications Yash Jain DA-IICT (DCOM Research Group) Virtualization Virtualization is a framework or methodology of dividing the resources of a computer into multiple execution

More information

The MIPS architecture and virtualization

The MIPS architecture and virtualization The MIPS architecture and virtualization Simply put, virtualization makes one physical device appear as one or more virtual devices. Virtualization can be implemented at the processor level (e.g. CPU or

More information

Detecting Computer Worms in the Cloud

Detecting Computer Worms in the Cloud Detecting Computer Worms in the Cloud Sebastian Biedermann and Stefan Katzenbeisser Security Engineering Group Department of Computer Science Technische Universität Darmstadt {biedermann,katzenbeisser}@seceng.informatik.tu-darmstadt.de

More information

Analyzing PAPI Performance on Virtual Machines. John Nelson

Analyzing PAPI Performance on Virtual Machines. John Nelson Analyzing PAPI Performance on Virtual Machines John Nelson I. OVERVIEW Over the last ten years, virtualization techniques have become much more widely popular as a result of fast and cheap processors.

More information

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation Cloud Architecture and Virtualisation Lecture 4 Virtualisation TOC Introduction to virtualisation Layers and interfaces Virtual machines and virtual machine managers Hardware support Security 2 Virtualisation

More information

Intel Virtualization Technology Overview Yu Ke

Intel Virtualization Technology Overview Yu Ke Intel Virtualization Technology Overview Yu Ke SSG System Software Division Agenda Virtualization Overview Intel Virtualization Technology 2 What is Virtualization VM 0 VM 1 VM n Virtual Machines (VMs)

More information

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Microkernels, virtualization, exokernels. Tutorial 1 CSC469 Microkernels, virtualization, exokernels Tutorial 1 CSC469 Monolithic kernel vs Microkernel Monolithic OS kernel Application VFS System call User mode What was the main idea? What were the problems? IPC,

More information