Virtual Machine Technology

Similar documents
Introduction to Virtual Machines

Cloud Computing #6 - Virtualization

Virtual Machines. Virtual Machines

Virtualization. Types of Interfaces

Virtualization. Pradipta De

Virtual Machines. Adapted from J.S. Smith and R. Nair, VIRTUAL MACHINES, Morgan-Kaufmann Teodor Rus.

COS 318: Operating Systems. Virtual Machine Monitors

COM 444 Cloud Computing

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

Virtualization. Jukka K. Nurminen

CS 695 Topics in Virtualization and Cloud Computing. Introduction

IOS110. Virtualization 5/27/2014 1

Virtualization. Dr. Yingwu Zhu

Distributed and Cloud Computing

Full and Para Virtualization

Virtualization. Jia Rao Assistant Professor in CS

CS 695 Topics in Virtualization and Cloud Computing and Storage Systems. Introduction

The Art of Virtualization with Free Software

Virtual Machines and Their Architecture

12. Introduction to Virtual Machines

A Unified View of Virtual Machines

Cloud Computing. Up until now

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

Virtualization in a Carrier Grade Environment

An Overview of Virtual Machine Architectures

Analysis of Virtualization Tools and Techniques

Virtual Machines.

nanohub.org An Overview of Virtualization Techniques

Introduction to Virtual Machines

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

Introduction to Virtualization & KVM

Introduction to Virtualization

Virtualization for Cloud Computing

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

Virtual Computing and VMWare. Module 4

Virtualization and Other Tricks.

Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT,

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation

Cloud Computing CS

9/26/2011. What is Virtualization? What are the different types of virtualization.

Hypervisors and Virtual Machines

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

System Virtual Machines

Multi-core Programming System Overview

Virtualization Technologies (ENCS 691K Chapter 3)

Compromise-as-a-Service

Virtualization Technologies

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

Virtualization and the U2 Databases

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

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Virtual Hosting & Virtual Machines

Basics of Virtualisation

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies. Virtualization of Clusters and Data Centers

General Introduction

System Structures. Services Interface Structure

Chapter 2 Addendum (More on Virtualization)

COS 318: Operating Systems. Virtual Machine Monitors

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

Virtualization Technology. Zhiming Shen

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Enabling Technologies for Distributed Computing

Suh yun Ki m (KIS T) (KIS suhyunk@.com

Enabling Technologies for Distributed and Cloud Computing

Hypervisor Software and Virtual Machines. Professor Howard Burpee SMCC Computer Technology Dept.

Chapter 5 Cloud Resource Virtualization

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

An Overview of Virtual Machine Architectures

Models For Modeling and Measuring the Performance of a Xen Virtual Server

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Virtual Machines. Virtualization

12/8/2010. Koen De Bosschere Ghent University Belgium JVM. Process. .NET Virtualization. Virtualization types. Xen. Paravirtualization.

Distributed Systems. Virtualization. Paul Krzyzanowski

Virtual Machine Security

Installing & Using KVM with Virtual Machine Manager COSC 495

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

CSE 501 Monday, September 09, 2013 Kevin Cleary

What is virtualization

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

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

How To Virtualize A Computer System

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

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

Data Centers and Cloud Computing

Server and Storage Virtualization

x86 ISA Modifications to support Virtual Machines

Virtualization. Michael Tsai 2015/06/08

Virtual Machines Fact Sheet

Virtualization and Disaster Recovery

RPM Brotherhood: KVM VIRTUALIZATION TECHNOLOGY

Some Future Challenges of Binary Translation. Kemal Ebcioglu IBM T.J. Watson Research Center

Operating System Structures

Server and Storage Virtualization. Virtualization. Overview. 5 Reasons to Virtualize

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

Virtualization with Windows

ROLE OF VIRTUAL MACHINE IN OPERATING SYSTEM

White Paper on NETWORK VIRTUALIZATION

Evading Android Emulator

Transcription:

Virtual Machine Technology Wei Wang 1

Why Virtual Machine for this course? To protect you from your own attacks Your VM is your victim We use Linux as our main system You probably use a different one Tool of the trade for computer security research A controlled environment to study viruses Widely adopted for virus detection Isolation and encapsulation, more secure Also used by virus to avoid detection and defy analysis 2

Outline History Key concepts Terminology Virtual machine basics Virtual machine taxonomy 3

History of Virtual Machines 4

1960s and 1970s Hardware utilization IBM VM/370 operating system (1972) Companies and other organizations required to run multiple OSes. Hypervisor (control program) creates virtual machine environment Each user has own virtual machine with guest OS, own address space, virtual devices, etc. Official Name: Virtual Machine Monitor or Hypervisor 5

1980s and 1990s VMs decline in popularity Poor performance Client-server applications Inexpensive PCs Distributed computing 6

Late 1990s Renewed Interest Improved CPU performance renewed interest in virtual machine Improve Infrastructure Utilization Multiple VMs share hardware improve utilization Reduce installation and operational cost Old business: web hosting New business: Cloud computing Failover, Security and Disaster Protection Isolated Environments Encapsulation Flexibility We are in an era of mixed environments: SW and HW, need the ability to go cross-platform Easy for system testing 7

Key Concepts aka. The Source of Virtual Machine s Power 8

Key Concepts Levels of abstraction Well-defined interfaces Virtualization 9

Levels of Abstraction Allow implementation details at lower levels of a design to be ignored or simplified Arranged in a hierarchy Lower levels Hardware Physical components with real properties Higher levels Software Logical components 10

Levels of Abstraction: HW/SW Interface Application Algorithms High Level Language (HLL) Assembly Language Operating System Instruction Set Architecture (ISA) Digital Logic Electronics (transistors etc.) 11

Levels of Abstraction: HW/SW Interface Application Data Strutures/Operations Algorithms HLL Specifications High Level Language (HLL) Assembly Specifications Assembly Language System Calls / Linking Spec Operating System Instructions Set Instruction Set Architecture (ISA) Digital Signals Digital Logic 0/1, Voltage etc. Electronics (transistors etc.) 12

Well-defined interfaces: Challenges Reduced interoperability Processors support limited instruction sets IA-32 vs. PowerPC Different operating systems Windows vs. Linux Application binaries Dependent on OS and instruction set Hardware resource dependency OS Applications 13

Virtualization Formally: Virtualization involves the construction of an isomorphism that maps a virtual guest system to a real host. (Popek and Goldberg, 1974) 14

Virtualization cont d Function V maps guest state to the host state For a sequence of operations e that modify the guest state, a corresponding e in the host modify the host state V(Si) Si Si e(si) GUEST e (Si ) HOST Sj Sj V(Sj) 15

Virtualization cont d Abstractions and Well-defined Interfaces allows the introduction of a new virtualization layer Virtualization helps mitigate the reduced interoperability and hardware dependency problems of layers and well-defined interfaces 16

Virtualization cont d Mapping of virtual resources or state to real resources on underlying machine E.g., registers, memory, files Emulation of the virtual machine ABI or ISA Use of real machine instructions and/or system calls to carry out actions specified by virtual machine instructions and/or system calls 17

Terminology 18

Terminology Computer architecture Functionality and appearance of a computer or subsystem Implementation Actual embodiment of an architecture Architectures may have several implementations E.g., high-performance or low-power 19

Terminology (cont d) Implementation layers Correspond to levels of abstraction in a computer system each layers is essentially a state-machine Application Algorithms High Level Language (HLL) Assembly Language Operating System Instruction Set Architecture (ISA) Digital Logic Electronics (transistors etc.) 20

ISA, ABI and API Instruction Set Architecture (ISA) User ISA + Sys ISA Application Binary Interface (ABI) Sys call + User ISA Application Programming Interface Defined with high level language Standard libraries Applications API Libraries (c-runtime etc.) ABI/Sys call OS Sys ISA Hardware (CPUs etc.) ABI/User ISA 21

Terminology: Virtual Machine (VM) An emulation of a particular computer system Any layer is a system itself Almost any layer can be emulated: hardware, OS, libraries Remember each layer is a (state-) machine itself VM provides an implementation for each (state-) machine (layer) 22

Terminology Machine Matter of perspective Host process: OS and underlying user-level hardware OS: underlying hardware with ISA as the interface Underlying platform Guest Software that runs in the VM environment 23

Process VM vs System VM Process VM Simulates ABI (sys call & user ISA) and API System VM (VMM) Simulates full ISA Guest Applications Applications Proc. VM Virtual Machine (E.g., JVM) OS Guest HOST OS Hardware Virtual Machine (E.g., VMWare) Hardware or Another OS Sys VM HOST 24

Process VM Example 1 Multiprogramming Each user process given the illusion of having complete machine to itself OS supporting multiple user processes Guest Proc. VM HOST Applicatio n/process 1 Process Scheduler OS Hardware or Another OS Applicatio n/process 2 25

Process VM Example 2 Emulators and Diff- ISA Dynamic Binary Translator Emulate one instruction set on hardware with another instruction set Example: QEMU Guest Proc. VM HOST Application with ARM instructions QEMU: Translate from ARM to x86 OS X86 Processor 26

Process VM Example 3 Same-ISA Dynamic Binary Translator Same ISA Translate code block to another code block with the same functions but, Performance: Dynamo Security: Strata Guest Proc. VM HOST Application with x86 instructions Dynamo (Performance) or Strata (Security) or Pin (Analysis) Analysis: Pin X86 Processor OS 27

Process VM Example 4 High-level language VMs Cross platform portability Minimize hardwarespecific and OSspecific features Example: Java VM Guest Proc. VM HOST Jave Application w/. Java Byte Code JIT Compiler: Byte Code to x86 insn JRE JVM OS Hardware 28

Process VM Example 5 Libraries Emulation Emulation the APIs of another operating system Supporting cross-os portability Same ISA Example: Wine Guest Proc. VM HOST Windows Applications Winehq: Provides Windows APIs Linux Hardware 29

Process VM Example 6 VM-based Obfuscator Code Obfuscation: make code hard to understand to defy analysis Obfuscation techniques: junk instructions, complex logic, custom ISA, etc. Commonly used by virus as antidetection and anti-analysis techniques Also employed to protect private software Guest Proc. VM HOST Obfuscated Virus Code using special ISA VM Obfuscator: convert special ISA to x86 ISA Windows Hardware Example: VM Protect, Themida Hardware 30

Process VM vs System VM Process VM Simulates ABI (sys call & user ISA) and API System VM (VMM) Simulates full ISA Guest Applications Applications Proc. VM Virtual Machine (E.g., JVM) OS Guest HOST OS Hardware Virtual Machine (E.g., VMWare) Hardware or Another OS Sys VM HOST 31

System VM Example 1 Classic system VM directly on hardware, e.g., VMWare ESX, Xen, KVM Applications Hosted VM VM on host operating system, e.g., VMWare Workstation, VirutalBox Applications Guest Guest OS Guest OS Guest Sys VM HOST VMWare ESX Hardware VirtualBox Host OS Hardware Sys VM HOST 32

System VM Example 2 Codesigned VMs (Hardware optimization) No native applications. VM software is part of hardware implementation AMD Processors Modern Intel Processors x86 Applications x86 OS x86 to Berkeley RISC decoder AMD K5 Processor: Berkeley RISC Guest Sys VM HOST 33

System VM Example 3 Whole System VMs (Emulation) Complete software system (OS and applications) supported on a host system running a different ISA and OS VirtualPC (Windows on Mac) Applications Windows Virtual PC Mac OS X PowerPC Guest Sys VM HOST 34

Full Virtualization vs Para-Virtualization Full Virtualization Provide same functions as real hardware Allows unmodified guest OS Example: VMware Para-Virtualization Provide similar, but no identical functions as real hardware May need to modified guest OS Example: Xen (both full and para) 35

Taxonomy Process vs. system Same ISA vs. different ISA 36

37