Anh M. Nguyen, Nabil Schear, HeeDong Jung, Apeksha Godiyal, Samuel T.King University of Illionis at Urbana-Champaign Hai D. Nguyen Hanoi University of.

Slides:



Advertisements
Similar presentations
Virtualization Technology
Advertisements

Virtualisation From the Bottom Up From storage to application.
Secure In-VM Monitoring Using Hardware Virtualization Monirul Sharif, Wenke Lee, Weidong Cui, and Andrea Lanzi Presented by Tyler Bletsch.
Using VMX within Linux We explore the feasibility of executing ROM-BIOS code within the Linux x86_64 kernel.
XEN AND THE ART OF VIRTUALIZATION Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, lan Pratt, Andrew Warfield.
Bart Miller. Outline Definition and goals Paravirtualization System Architecture The Virtual Machine Interface Memory Management CPU Device I/O Network,
Disco Running Commodity Operating Systems on Scalable Multiprocessors.
OS Spring’03 Introduction Operating Systems Spring 2003.
1 Disco: Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine, and Mendel Rosenblum, Stanford University, 1997.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
Virtualization for Cloud Computing
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
Xen and the Art of Virtualization Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield.
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
CSE598C Virtual Machines and Their Applications Operating System Support for Virtual Machines Coauthored by Samuel T. King, George W. Dunlap and Peter.
Tanenbaum 8.3 See references
Computer Organization
Zen and the Art of Virtualization Paul Barham, et al. University of Cambridge, Microsoft Research Cambridge Published by ACM SOSP’03 Presented by Tina.
Author : Jiang Wang, Angelos Stavrou, and Anup Ghosh Conference: RAID 2010 Advisor: Yuh-Jye Lee Reporter: Yi-Hsiang Yang
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Jakub Szefer, Eric Keller, Ruby B. Lee Jennifer Rexford Princeton University CCS October, 2011 報告人:張逸文.
CS533 Concepts of Operating Systems Jonathan Walpole.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Benefits: Increased server utilization Reduced IT TCO Improved IT agility.
Xen I/O Overview. Xen is a popular open-source x86 virtual machine monitor – full-virtualization – para-virtualization para-virtualization as a more efficient.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Virtualization Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation is licensed.
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
An approach to on the fly activation and deactivation of virtualization-based security systems Denis Efremov Pavel Iakovenko
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
CS533 Concepts of Operating Systems Jonathan Walpole.
1 CSE 451 Section 2: Interrupts, Syscalls, Virtual Machines, and Project 1.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Introduction to virtualization
Full and Para Virtualization
Lecture 26 Virtual Machine Monitors. Virtual Machines Goal: run an guest OS over an host OS Who has done this? Why might it be useful? Examples: Vmware,
THAWAN KOOBURAT MICHAEL SWIFT UNIVERSITY OF WISCONSIN - MADISON 1 The Best of Both Worlds with On-Demand Virtualization.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Virtualizing a Multiprocessor Machine on a Network of Computers Easy & efficient utilization of distributed resources Goal Kenji KanedaYoshihiro OyamaAkinori.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Introduction to Operating Systems Concepts
Virtualization for Cloud Computing
Virtualization.
Virtual Machine Monitors
Virtualization Technology
Why VT-d Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing.
Presented by Yoon-Soo Lee
Chapter 1: Introduction
Chapter 2: System Structures
Lecture 24 Virtual Machine Monitors
Virtualization overview
Disco: Running Commodity Operating Systems on Scalable Multiprocessors
OS Virtualization.
Virtualization Techniques
Operating System Support for Virtual Machines
Computer Security: Art and Science, 2nd Edition
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
CSE 451: Operating Systems Winter 2007 Module 2 Architectural Support for Operating Systems Brian Bershad 562 Allen Center 1.
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Xen and the Art of Virtualization
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Presentation transcript:

Anh M. Nguyen, Nabil Schear, HeeDong Jung, Apeksha Godiyal, Samuel T.King University of Illionis at Urbana-Champaign Hai D. Nguyen Hanoi University of Technology

Outline  Introduction  MAVMM Design  Implementation  Evaluation  Related Work  Conclusion

Introduction  Goals Ability to extract useful data for malware analysis Minimum trust in the guest OS Simplicity and compactness for the VMM, which improves transparency and security

Introduction  Contributions We propose a more transparent and secure malware analysis architecture, using a purpose-built VMM and hardware virtualization support. We implement a prototype system, demonstrate that MAVMM can extract useful data, and that common VMM detection techniques are ineffective against it. We open the source code of our VMM and give other researchers access to it.

Outline  Introduction  MAVMM Design  Implementation  Evaluation  Related Work  Conclusion

MAVMM Design  Hardware Virtualization Technology Hardware virtualization provides faster virtualization performance. An additional CPU mode for the hypervisor, nested paging, address space identifiers(ASID), and IOMMU, and event interception and injection

MAVMM Design  Special Purpose Hypervisor Commodity VMMs, such as Xen, KVM or Vmware, their code bases are still too large and complex for our purpose.

MAVMM Design  Boot-strapping the Hypervisor MAVMM needs to start earlier and run at a higher CPU privilege level than the software under analysis. Thus, we decide to boot MAVMM directly from a boot loader.

MAVMM Design  Protecting Hypervisor Memory MAVMM uses nested paging table(NTP) to protect its memory from being tampered by the guest. By setting up NPT appropriately, MAVMM can redirect guest requests to access its memory region, and hide its existence. To keep our hypervisor from being tampered with by external device DMA, we use the IOMMU offered by hardware virtualization.

MAVMM Design  Feature Extraction Features ○ Support extraction of the following features from applications running inside the guest: Fine-grained execution trace Memory page System call Disk access Network access

MAVMM Design  Feature Extraction Getting Analysis Data ○ Use guest driver is not safe. ○ External USB drive and serial port communication as the preferred methods for extracting data. ○ Can use BIOS services to dump the data out. ○ Can also implement a simple driver to access serial port devices directly without using BIOS services.

MAVMM Design  Feature Extraction Selective Analysis ○ MAVMM has two operating modes: Compact -The hypervisor has most interceptions disabled and the monitored system runs without considerable performance overhead. Full -MAVMM intercepts and extracts all features. ○ Can selectively monitor specific processes and ignores other unimportant ones.

Outline  Introduction  MAVMM Design  Implementation  Evaluation  Related Work  Conclusion

Implementation  Hardware Virtualization Technology Use the AMD Secure Virtual Machine (SVM). AMD SVM natively support nested paging in hardware.

Implementation  Boot-strapping Use the GRUB boot loader to start our system. MAVMM sets the initial instruction pointer address of guest to 0x7c00, after it has finished setting up appropriate interceptions and protection mechanisms.

Implementation  Protecting Hypervisor Memory Create a nested page table and fill it with an identity mapping from guest physical address to host physical address for all memory pages available in system, excluding the pages used by MAVMM itself.

Implementation  Features Extraction System Call ○ Executing the interrupt (int) 0x80 assembly instruction Use the eax register to pass a system call number User mode process also finds return code in eax register AMD SVM allows us to intercept all software interrupts, but don’t provide info on witch specific vector number was called.

Implementation  Features Extraction System Call ○ Executing the sysenter instruction Intercepting sysenter/sysexit is not directly supported by ADM SVM. Modify the index in SYSENTER_CS_MSR to point to some unmapped segment, storing its original value in a safe place. When sysenter is called, the CPU will transfer control to this segment and create #GP fault. MAVMM intercepts this fault to get system call number and other arguments, then passes control back to the guest using original SYSENTER_CS_MSR value.

Implementation  Features Extraction Network & File Access ○ All network accesses are carried out by invoking sys_socketcall, which tackes two parameters: func args ○ File accesses can be monitored through tracking of sys_read and sys_write, and maintain a mapping from descriptor numbers of opened files to their pathnames, and update the map when intercepting returns of sys_open and sys_close.

Implementation  Features Extraction Getting Analysis Data ○ Use a serial port for sending out analysis data. Selective analysis ○ mavmm-u running inside the guest makes VMMCALLs to communicate with the hypervisor. ○ To track sub-processes, we intercept Linux’s execve system call, with is the backend of exec family of functions.

Implementation  Transparent Event Forwarding Hardware virtualization offers support for forwarding some types of events, such as interrupt and exception. MAVMM needs to intercepts IRET instruction and modification of CR3 to track system call return value and process switch accordingly.

Outline  Introduction  MAVMM Design  Implementation  Evaluation  Related Work  Conclusion

Evaluation  Simulates a machine with 900Mhz processor and 256MB of RAM using AMD Simnow simulator.  We ran Simnow on a 2.40GHZ Intel® Core™2 CPU with 2.5GB of RAM, on top of x86_64 Ubuntu Linux 8.04, kernel version

Evaluation  Functionality Fine-grained tracking ○ It can intercept every guest instruction, fetch and display the opcode, CPU registers and other states. ○ MAVMM can also be used as a universal unpacker.

Evaluation  Functionality High-level tracking ○ Monitor the booting process of tty Linux 8.0. ○ MAVMM intercepted a total of system calls. execve: 126, execute binary programs such as hotplug, chmod, cat, date, stty, mount and ifconfig. others: read, write, mmap2, ioctl, open and close. ○ Download malware from VXNetlux and used the latest version of ClamAV to remove known samples. ○ Track one of the remaining, named ‘Rootkit.Linux.Agent.30.Chsh’ due to its small size (138KB)

Evaluation

 Detectability & Security Evaluated MAVMM against well-known VMM detection techniques and compared the result with other VMMs such as VMWare, Virtual PC and Xen.

Evaluation  Detectability & Security Red Pill (IDT Check) LDT Check VMWare I/O Channel Virtual PC Special Inst. MSW Check Xen CPUID Check TLB profiling

Evaluation  Detectability & Security

Evaluation  Detectability & Security The size of trusted computing base is an important factor to consider when evaluating a system’s security. Our current implementation consists ○ Hypervisor (124KB after complie) 182 lines of assembly 3913 lines of C code ○ User control interface 75 lines of C code

Evaluation  Performance Overhead Measure execution time of different types of programs inside(in both compact mode and full mode), and outside our hypervisor. Run each program five times and show the average of all runs.

Evaluation  Performance Overhead Programs: ○ Two I/O intensive programs, one reads(read) and the other writes(write) one million bytes to the disk. ○ Make 1000 getpid() system calls and print out the result to the screen(syscall). ○ A CPU intensive program that execute one million add instructions(cpu).

Evaluation  Performance Overhead

Outline  Introduction  MAVMM Design  Implementation  Evaluation  Related Work  Conclusion

Related Works  VM introspection The process of examining a process inside a virtual machine from its VMM.  Ether Make use of Xen HVM and its support for Intel VT hardware virtualization technology for malware analysis.

Outline  Introduction  MAVMM Design  Implementation  Evaluation  Related Work  Conclusion

Conclusion  We proposed MAVMM, a lightweight VMM designed specially for malware analysis.  It can achieve higher accuracy than current state-of-the-art malware analysis platforms.  MAVMM make it easy for other researchers to add new functions to it, or modify it to serve their purposes.