Overview of System Virtualization: The most powerful platform for program analysis and system security. Zhiqiang Lin

Similar documents
Introduction to Virtual Machines. Carl Waldspurger (SB SM 89 PhD 95) VMware R&D

Virtualization. Pradipta De

Virtualization and Cloud Computing. Sorav Bansal

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Virtual Machines. To do. q VM over time q Implementation methods q Hardware features supporting VM q Next time: Midterm?

Module 1: Virtualization. Types of Interfaces

W4118: virtual machines

Virtualization. Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Nested Virtualization and Server Consolidation

Virtualization. Application Application Application. MCSN - N. Tonellotto - Distributed Enabling Platforms OPERATING SYSTEM OPERATING SYSTEM

Advanced Operating Systems (CS 202) Virtualization

references Virtualization services Topics Virtualization

Chapter 5 C. Virtual machines

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

CSE 120 Principles of Operating Systems

Virtual Machines. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)

Virtualization. Adam Belay

Background. IBM sold expensive mainframes to large organizations. Monitor sits between one or more OSes and HW

COMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy

Virtual Machine Monitors!

Virtualization and Virtual Machines. CS522 Principles of Computer Systems Dr. Edouard Bugnion

OS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.

CSCE 410/611: Virtualization!

CS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives

CSC 5930/9010 Cloud S & P: Virtualization

Operating Systems 4/27/2015

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

Concepts. Virtualization

Virtual Machine Monitors (VMMs) are a hot topic in

Virtual Machines. Part 2: starting 19 years ago. Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

CSCE 410/611: Virtualization

Introduction to Virtual Machines. Michael Jantz

Virtualization. Dr. Yingwu Zhu

Virtualization. Virtualization

CS370 Operating Systems

Lecture 5: February 3

Linux and Xen. Andrea Sarro. andrea.sarro(at)quadrics.it. Linux Kernel Hacking Free Course IV Edition

Pre-virtualization internals

System Virtual Machines

A Survey on Virtualization Technologies

CprE Virtualization. Dr. Yong Guan. Department of Electrical and Computer Engineering & Information Assurance Center Iowa State University

Virtual Virtual Memory

Virtualization. Part 1 Concepts & XEN

[537] Virtual Machines. Tyler Harter

An overview of virtual machine architecture

CLOUD COMPUTING IT0530. G.JEYA BHARATHI Asst.Prof.(O.G) Department of IT SRM University

System Virtual Machines

CS 550 Operating Systems Spring Introduction to Virtual Machines

Lecture 7. Xen and the Art of Virtualization. Paul Braham, Boris Dragovic, Keir Fraser et al. 16 November, Advanced Operating Systems

Distributed Systems COMP 212. Lecture 18 Othon Michail

Introduction to Cloud Computing and Virtualization. Mayank Mishra Sujesha Sudevalayam PhD Students CSE, IIT Bombay

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

Multiprocessor Scheduling. Multiprocessor Scheduling

Xen and the Art of Virtualization. Nikola Gvozdiev Georgian Mihaila

Virtualization and memory hierarchy

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016

Background. IBM sold expensive mainframes to large organiza<ons. Monitor sits between one or more OSes and HW

Πποχωπημένη Κατανεμημένη Υπολογιστική

Virtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018

Background. IBM sold expensive mainframes to large organiza<ons. Monitor sits between one or more OSes and HW

Performance Aspects of x86 Virtualization

1 Virtualization Recap

COS 318: Operating Systems. Virtual Machine Monitors

Virtual Machine Security

LIA. Large Installation Administration. Virtualization

Introduction Construction State of the Art. Virtualization. Bernhard Kauer OS Group TU Dresden Dresden,

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

Virtual Machines. Virtual Machines

Cloud Computing Virtualization

Introduction to Virtualization

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

Server Virtualization Approaches

CS-580K/480K Advanced Topics in Cloud Computing. VM Virtualization II

Micro VMMs and Nested Virtualization

The Future of Virtualization

CS 571 Operating Systems. Final Review. Angelos Stavrou, George Mason University

Cross-architecture Virtualisation

Fairness Issues in Software Virtual Routers

Darek Mihocka, Emulators.com Stanislav Shwartsman, Intel Corp. June

CS 5600 Computer Systems. Lecture 11: Virtual Machine Monitors

Dan Noé University of New Hampshire / VeloBit

Xen and the Art of Virtualization

Lecture 3 Memory Virtualization Larry Rudolph

Virtual Machine Systems

Introduction to Virtual Machines

Chapter 5 B. Large and Fast: Exploiting Memory Hierarchy

T Jarkko Turkulainen, F-Secure Corporation

Virtualization Introduction

LINUX Virtualization. Running other code under LINUX

Optimizing and Enhancing VM for the Cloud Computing Era. 20 November 2009 Jun Nakajima, Sheng Yang, and Eddie Dong


SERVE. -Priyal Lokhandwala

Advanced Computer Architecture

A Review On optimization technique in Server Virtualization

CHAPTER 16 - VIRTUAL MACHINES

Types of Virtualization. Types of virtualization

Virtual Machines and Dynamic Translation: Implementing ISAs in Software

Transcription:

CS 6V81-05: System Security and Malicious Code Analysis Overview of System Virtualization: The most powerful platform for program analysis and system security Zhiqiang Lin Department of Computer Science University of Texas at Dallas April 4 th, 2012

Outline 1 Background 2 Virtualization Types 3 Key Techniques 4 Summary

Outline 1 Background 2 Virtualization Types 3 Key Techniques 4 Summary

Why virtualization? Why not virtualize? Today s data center Cloud computing Virtual resource pool Fault resist Cost Effect Easy to maintain

What is Virtualization What is Virtualization Linux Linux (devel) XP Vista MacOS Virtual Machine Monitor Hardware

Virtualization Properties Isolation Encapsulation Interposition

Isolation Fault Isolation Fundamental property of virtualization Performance Isolation Accomplished through scheduling and resource allocation

Encapsulation All VM state can be captured into a file Operate on VM by operating on file mv, cp, rm Complexity Proportional to virtual HW model Independent of guest software configuration

Interposition All guest actions go through monitor Monitor can inspect, modify, deny operations Example: Compression Encryption Profiling Translation

Why Not the OS? It about interfaces VMMs operate at the hardware interface Hardware interface are typically smaller, better defined than software interfaces Disadvantages of being in the monitor Low visibility into what the guest is doing

Virtualization benefits Increased resource utilization: Mobility Server consolidation Multiplexing Enhanced Security Test and Deployment...

Virtualization: server consolidation Virtualization: server consolidation Physical Servers Virtual Server Host Virtual Machines Guests

Mobility: load balance (Migration) Mobility: load balance Server 1 CPU Utilization = Server 2 CPU Utilization = 90% 50% VM Guest 1 VM Guest 2 VM Guest 3 VM Guest 4 VM Guest 5 None VM Guest 6 VM Guest 7

Mobility: load balance (Migration) Mobility: load balance Server 1 CPU Utilization = Server 2 70% CPU Utilization = 70% VM Guest 1 VM None Guest 2 VM Guest 3 VM Guest 4 VM Guest 5 None VM Guest 2 VM Guest 6 VM Guest 7

Enhanced Security Enhanced Security Conventional VM Secure VM Firewall VMM

Testing and Deployment Production VM Production VM Development VM QA VM Production VM Production VM Develop Test Deploy

Outline 1 Background 2 Virtualization Types 3 Key Techniques 4 Summary

Types of Virtualization Process Virtualization Language construction Java,.NET Cross-ISA emulation Apple s 68000-PowerPC to Intel X86 Transition Application virtualization Sandboxing, mobility

Types of Virtualization Process Virtualization Language construction Java,.NET Cross-ISA emulation Apple s 68000-PowerPC to Intel X86 Transition Application virtualization Sandboxing, mobility System Virtualization VMware Xen Microsoft s Viridian

Taxonomy Taxonomy Process VMs System VMs Same ISA Different ISA Same ISA Different ISA Multiprogrammed Systems Dynamic Translators Classic-System VMs Whole-System VMs Dynamic Binary Optimizers HLL VMs Hosted VMs Co-designed VMs

System Virtual Machine Monitor Architectures Traditional Hosted Hybrid VMware Workstation VMware ESX Xen Hypervisor

Traditional What is Virtualization Linux Linux (devel) XP Vista MacOS Virtual Machine Monitor Hardware Examples: IBM VM/370, Stanford DISCO

Hosted Virtual Machines Goal: Why Run Virtual Machines as an application on an existing Operating System (QEMU, VirtualPC, VirtualBox, VMware-workstation) Application continuity Reuse existing device drivers Leverage OS support File system CPU Scheduler VM management platform

Hosted Monitor Architecture (VirtualBox) Hosted Monitor Architecture User App Guest OS (Linux) World Switch Kernel Module Host OS (Window XP) Virtual Machine Monitor Hardware

Hosted Monitor Architecture (VirtualBox) Hosted Monitor Architecture User App Guest OS (Linux) Kernel Module Host OS (Window XP) Virtual Machine Monitor CPU / Memory Virtualization Hardware

Hosted Monitor Architecture (VirtualBox) Hosted Monitor Architecture User App Guest OS (Linux) Kernel Module Host OS (Window XP) Device I/O Network, Disk, Display, Keyboard, Timer, USB Virtual Machine Monitor Hardware

Hosted Monitor Architecture (VirtualBox) Hosted Monitor Architecture User App Guest OS (Linux) Kernel Module Host OS (Window XP) Interrupts Virtual Machine Monitor Hardware

Hosted Monitor Scheduling (VirtualBox) Hosted Monitor Scheduling User App User App Guest OS (Linux) Guest OS (Vista) Kernel Module Host OS (Window XP) Virtual Machine Monitor Virtual Machine Monitor Hardware

Hosted Monitor Scheduling (VirtualBox) Hosted Monitor Scheduling 3 User App User App Guest OS (Linux) Guest OS (Vista) 1 CPU Scheduler 2 Kernel Module Host OS (Window XP) Virtual Machine Monitor Virtual Machine Monitor Hardware

Hosted Monitor Scheduling (VirtualBox) Hosted Monitor Scheduling User App User App Guest OS (Linux) Guest OS (Vista) 5 CPU Scheduler Kernel Module Host OS (Window XP) 4 Virtual Machine Monitor Virtual Machine Monitor Hardware

Hosted Monitor Scheduling (VirtualBox) Hosted Monitor Scheduling 8 User App User App Guest OS (Linux) Guest OS (Vista) 6 CPU Scheduler 7 Kernel Module Host OS (Window XP) Virtual Machine Monitor Virtual Machine Monitor Hardware

Hosted Architecture Tradeoffs Positives Installs like an application No disk partitioning needed Virtual disk is a file on host file system No host reboot needed Runs like an application Uses host schedulers

Hosted Architecture Tradeoffs Positives Installs like an application No disk partitioning needed Virtual disk is a file on host file system No host reboot needed Runs like an application Negatives Uses host schedulers I/O path is slow Requires world switch Relies on host scheduling May not be suitable for intensive VM workloads

VMware ESX 2.0 Source: http://www.vmware.com/pdf/esx2_performance_implications.pdf

Hybrid Ex 2 - Xen 3.0 Para -virtualization Linux Guest Hardware-supported virtualization Unmodified Windows Isolated Device Drivers Source: Ottawa Linux Symposium 2006 presentation. http://www.cl.cam.ac.uk/netos/papers/

Hypervisor Hardware-supported Hardware-supported single-use single-use monitor monitor Characteristics Characteristics Small size Small size Runs in a special Runs in a special hardware mode hardware mode Guest OS runs in Guest OSnormal runs in privileged level normal Uses privileged level Uses Security System management Security Fault tolerance System management Fault tolerance Hypervisor Operating System Hypervisor Hardware User Mode Kernel Mode Monitor Mode

Outline 1 Background 2 Virtualization Types 3 Key Techniques 4 Summary

Key Techniques to implement Virtualization Instruction Interpretation Binary Translation Trap-and-emulate Para-virtualization (hardware virtualization)

I Instruction Interpretation Emulate Fetch/Decode/Execute pipeline in software Positives Easy to implement Minimal complexity Negatives Slow! Bochs: http://bochs.sourceforge.net/

Example: CPUState static struct { uint32 GPR[16]; uint32 LR; uint32 PC; int IE; int IRQ; } CPUState; void CPU_CLI(void) { CPUState.IE = 0; } void CPU_STI(void) { CPUState.IE = 1; }

Example: Virtualizing the Interrupt Flag w/ Instruction Interpreter void CPU_Run(void) { while (1) { inst = Fetch(CPUState.PC); CPUState.PC += 4; switch (inst) { case ADD: CPUState.GPR[rd] = GPR[rn] + GPR[rm]; break;... case CLI: CPU_CLI(); break; case STI: CPU_STI(); break; } if (CPUState.IRQ && CPUState.IE) { CPUState.IE = 0; CPU_Vector(EXC_INT); } } } void CPU_CLI(void) { CPUState.IE = 0; } void CPU_STI(void) { CPUState.IE = 1; } void CPU_Vector(int exc) { CPUState.LR = CPUState.PC; CPUState.PC = distab[exc]; }

II. Binary Translator Binary Translator Guest Code Translator TC Index Translation Cache Callouts CPU Emulation Routines

Basic Blocks Guest Code Basic Blocks vpc mov ebx, eax cli and ebx, ~0xfff mov ebx, cr3 sti ret Straight-line code Control flow Basic Block

Binary Translator Binary Translation Guest Code Translation Cache vpc mov ebx, eax cli and ebx, ~0xfff mov ebx, cr3 sti ret mov ebx, eax call HANDLE_CLI and ebx, ~0xfff mov [CO_ARG], ebx call HANDLE_CR3 call HANDLE_STI jmp HANDLE_RET start

Unprivileged Privileged III. Trap and Emulate Trap and Emulate Guest OS + Applications Page Fault Undef Instr virq MMU Emulation CPU Emulation I/O Emulation Virtual Machine Monitor

Software VMM Software VMM Direct Exec (user) Faults, syscalls, interrupts Guest Kernel Execution VMM Translated Code (guest kernel) IRET, sysret Traces, faults, interrupts, I/O

IV. Hardware virtualization, Para-virtualization (e.g., Xen) Modify operating systems to let OS to cooperate with VMM Let OS runs in Ring1 and user apps run in Ring3 Change sensitive instructions to explicit calls to the VMM No need to trap and emulate

Traditional Address Spaces Traditional Address Spaces 0 4GB Process Virtual Address Space Background Process Operating System Background Process Operating System 0 4GB Current Process Operating System Virtual Address Space 0 4GB RAM Frame Buffer Devices ROM Physical Address Space

Shadow Page Tables Sol: Shadow Page Tables Virtual CR3 Guest Page Table Guest Page Table Guest Page Table Real CR3 Shadow Page Table Shadow Page Table Shadow Page Table

Guest Write to CR3 Guest Write to CR3 Virtual CR3 Guest Page Table Guest Page Table Guest Page Table Real CR3 Shadow Page Table Shadow Page Table Shadow Page Table

Guest Write to CR3 Guest Write to CR3 Virtual CR3 Guest Page Table Guest Page Table Guest Page Table Real CR3 Shadow Page Table Shadow Page Table Shadow Page Table

Outline 1 Background 2 Virtualization Types 3 Key Techniques 4 Summary

Summary Virtualization (or virtualisation), in computing, is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system, storage device, or network resources Impacts Cloud computing Data centers Provides greater opportunities to security

References Xen and the art of virtualization Memory resource management for Vmware Esx Server http://en.wikipedia.org/wiki/virtualization http://labs.vmware.com/courseware (great virtualization resources) CPU Virtualization- Basic Virtualization http://labs.vmware.com/download/76/ Memory Virtualization http://labs.vmware.com/download/77/