Virtualization Detection: New Strategies and Their Effectiveness
|
|
|
- Phyllis Booker
- 9 years ago
- Views:
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 Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Introduction u Have
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
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
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
Virtualization. Pradipta De [email protected]
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
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
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/
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
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;
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,
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
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
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
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
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
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
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.
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.
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
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)
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
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
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
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
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
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
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.
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
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
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.
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
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
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
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
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,
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
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
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
KVM: A Hypervisor for All Seasons. Avi Kivity [email protected]
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
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
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
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
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
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
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
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
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
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,
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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:
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
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
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
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,
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
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:
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
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
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
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
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
Distributed Systems. Virtualization. Paul Krzyzanowski [email protected]
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
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
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%
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
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
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
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
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.
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
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)
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,
