1 Outspect: Unified Memory Forensic Toolset for Virtual Machines AVTokyo, 31-10/2009 Nguyen Anh Quynh, Kuniyasu Suzaki, Ruo Ando.

Slides:



Advertisements
Similar presentations
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Advertisements

A Complete Tool For System Penetration Testing Presented By:- Mahesh Kumar Sharma B.Tech IV Year Computer Science Roll No. :- CS09047.
Efficient VM Introspection in KVM and Performance Comparison with Xen
Introduction to Virtualization
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
Information Networking Security and Assurance Lab National Chung Cheng University F.I.R.E. Forensics & Incident Response Environment.
OPERATING SYSTEMS Introduction
2004, Jei F.I.R.E. Forensics & Incident Response Environment Information Networking Security and Assurance Lab National Chung Cheng University.
Automated Malware Analysis
Tanenbaum 8.3 See references
Programming mobile devices Part II Programming Symbian devices with Symbian C++
Real Security for Server Virtualization Rajiv Motwani 2 nd October 2010.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
1 CS503: Operating Systems Part 1: OS Interface Dongyan Xu Department of Computer Science Purdue University.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
ITE 1 Chapter 5. Chapter 5 is a Large Chapter It has a great deal of useful information about operating systems. You will find this VERY helpful when.
The Semantic Gap Challenge Stealthy Malware Detection Through VMM-Based “Out-of-the-Box” Semantic View Reconstruction November 2007 ACM: Association for.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Stealthy Malware Detection Through VMM-based “Out-of-the-Box” Semantic View Reconstruction CCS’07, Alexandria, VA, Oct 29 – Nov 2, 2007 Xuxian Jiang, Xinyuan.
Ether: Malware Analysis via Hardware Virtualization Extensions Author: Artem Dinaburg, Paul Royal, Monirul Sharif, Wenke Lee Presenter: Yi Yang Presenter:
Digital Forensics Dr. Bhavani Thuraisingham The University of Texas at Dallas Lecture #8 Computer Forensics Data Recovery and Evidence Collection September.
Monnappa KA  Info Security Cisco  Member of SecurityXploded  Reverse Engineering, Malware Analysis, Memory Forensics 
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
CS533 Concepts of Operating Systems Jonathan Walpole.
Malware Analysis Jaimin Shah & Krunal Patel Vishal Patel & Shreyas Patel Georgia Institute of Technology School of Electrical and Computer Engineering.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
CE Operating Systems Lecture 3 Overview of OS functions and structure.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
COEN 250 Computer Forensics Windows Life Analysis.
Contents Introduction Available OSF Solutions for VM UFO Design Implementation Evaluation Discussion Conclusions References.
Operating Systems Security
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Page 1 Printing & Terminal Services Lecture 8 Hassan Shuja 11/16/2004.
Shellcode Development -Femi Oloyede -Pallavi Murudkar.
Security Vulnerabilities in A Virtual Environment
Basic UNIX Concepts. Why We Need an Operating System (OS) OS interacts with hardware and manages programs. A safe environment for programs to run is required.
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,
CSE 466 – Fall Introduction - 1 User / Kernel Space Physical Memory mem mapped I/O kernel code user pages user code GPLR virtual kernel C
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
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).
Week 4 - Friday.  What did we talk about last time?  Some extra systems programming stuff  Scope.
Security-Enhanced Linux Stephanie Stelling Center for Information Security Department of Computer Science University of Tulsa, Tulsa, OK
Mastering Windows Network Forensics and Investigation Chapter 6: Live Analysis Techniques.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
OPERATING SYSTEMS DO YOU REQUIRE AN OPERATING SYSTEM IN YOUR SYSTEM?
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Find – used to find files corresponding to a certain criteria find starting_dir matching_criteria [options] Examples: find /usr –name startx find /usr.
VMware Recovery Software RECOVER DATA FROM CORRUPT VMDK FILE.
Introduction to Operating Systems Concepts
Virtualization.
Virtual Machine Monitors
Common Operating System Exploits
OS Virtualization.
Chapter 3. Basic Dynamic Analysis
Operating Systems Chapter 5: Input/Output Management
CS703 - Advanced Operating Systems
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating Systems Lecture 3.
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Following Malware Execution in IDA
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Presentation transcript:

1 Outspect: Unified Memory Forensic Toolset for Virtual Machines AVTokyo, 31-10/2009 Nguyen Anh Quynh, Kuniyasu Suzaki, Ruo Ando

2 Who am I? Nguyen Anh Quynh, a researcher of a research institute in Japan. National Institute of Advanced Industrial Science & Technology (AIST), Japan A member of Vnsecurity.net Interests: Operating System, Virtualization, Trusted computing, IDS, malware, digital forensic,...

3 Agenda Live memory forensic problems Live memory forensic for Virtual Machine (VM) → Outspect Outspect architecture/design/implementation Focus on Windows (as guest VM) Demo on detecting malware with Outspect Conclusions

4 Live memory forensic problems

5 Digital forensic & incident response Despite a lot of defense layers, finally systems still got hacked! Accept the fact, and ready to perform incident response when bad thing happen Digital forensic: Ttry to understand the intrusion Trying to fix/recover compromised system if possible

6 Memory forensic Advanced malware only exists in memory, but never write down to disk Effective method to evade malware scanner Off-line forensic Online forensic

7 Live memory forensic tools Tool to inspect live systems Capture live memory (for offline inspection) Analyze live memory Extract out system objects to understand what is happening Find evidences of intrusion

8 Problems of live memory forensic Erase evidences in the memory Inconsistency memory problem Captured data process can be easily tampered by existent malware Kernel malware

9 I dream a dream... A perfect forensic/incident response tool? Never erase evidences in the memory No inconsistency memory problem Cannot be, (or very hard to be), tampered by malware Even if malware run at OS level

10 Outspect: live memory toolset for Virtual Machines

11 Virtual Machine concept Running multiple virtual systems on a physical machine at the same time Multiple Operating Systems are supported Windows, Linux, BSD, MacOSX,...

12 Approach Put the forensic and incident response tool outside of protected VM Let it access to the VM memory to perform the job from outside Scan memory to retrieve information Can also manipulate memory (i.e write to) to disable malware & recover system if desired

13 Protect Virtual System Run the forensic/IR tools in the privileged VM Access to protected VM thanks to VM interface Focus on Windows guest VM in this talk

14 A dream comes true! Satisfy all the dreamed requirements, and even more Never erase evidences No more consistency memory problem Pause VM before inspecting Work on memory snapshot, but not ”real” VM's memory Cannot be tampered, or disabled by malware Guaranteed by design Get the right information, even if malware run at Operating System level Invisible to malware Can effectively disable malware from outside

15 Challenges Analyzing raw memory to understand internal context of protected system (1) Understanding virtual memory We have only physical memory access in Xen (2) Retrieve OS-semantic objects Require excellent understandings on target OS internals

16 Multiple-layer Frameworks Architecture Understanding virtual memory AnyDoor framework Retrieve OS-semantic objects EaglEye framework

17 Outspect full architecture

18 AnyDoor Architecture

19 AnyDoor Framework Access to physical memory of protected system OS independence Target independence Xen, KVM, QEMU supported so far VMWare support is trivial, provided VMSafe API is public Provide access to virtual memory Play a role of Memory-management-unit (MMU) Software-based MMU Must be able to understand all the memory mode (legacy/2MB pages/PAE,...) Provide access to registers of protected system

20 Sample AnyDoor API /* */ /* Read data from memory of a process running inside a target. */ int anydoor_read_user(anydoor_t h, unsigned long pgd, unsigned long vaddr, void *buf, unsigned int size); /* Write data into memory of a process running inside a target. */ int anydoor_write_user(anydoor_t h, unsigned long pgd, unsigned long addr, void *buf, unsigned int size); /* Read data from a target's physical memory. */ int anydoor_read_pa(anydoor_t h, unsigned long paddr, void *buf, unsigned int size); /* Write data into a target's physical memory. */ int anydoor_write_pa(anydoor_t h, unsigned long paddr, void *buf, unsigned int size);

21 EaglEye Architecture

22 EaglEye framework Use the service provided by AnyDoor to access to virtual/physical memory of protected system Retrieve OS-objects Focus on important objects, especially which usually exploited by malware, or can disclose their residence Network ports, connections Processes Kernel modules....

23 Eagleye locate OS's objects Kernel modules Processes/threads System handles Open files Registries DLLs Network connections/ports Drivers, symbolic links,...

24 EaglEye: retrieve objects Separate API for each kind of objects Designed so it is hard to be abused or tampered by guest VM Get first object in the list of objects Usually the head of object list must be located Or by scanning the pool memory Using pattern-matching technique Get next objects One by one, until done

25 Sample EaglEye API (1) /* */ output value, pointed the the kernel memory keep task info */ int ee_get_task_first(ee_t h, unsigned long *task); output value, pointed the the kernel memory keep task info */ int ee_get_task_next(ee_t h, unsigned long *task); /* get the pointer to the process struct, given the process's pid. int ee_get_task_pid(ee_t h, unsigned long pid, unsigned long *task); /* get the first open dll file of a task with a given process id. * on return, dll points to the userspace memory that keeps dll info */ int ee_get_task_dll_first(ee_t h, unsigned long pid, unsigned long *dll); /* get the next open dll file of a task with a given process id. int ee_get_task_dll_next(ee_t h, unsigned long *dll);

26 Outspect architecture

27 Outspect toolset A range of command-line tools to gather and investigate information Ready to script them for automation information collection A shell to connect them all: oshell Same syntax, same bahaviour Use the same code that is refactored out to work for both shell and separate commands Convenient to use System shell, system command Redirect output to other commands, or pipe them to other system commands Optimization for speed Cache frequently-used data

28 Outspect toolset (2) Gather information that can prove the existence of malware pe: PE file analyzing view: View memory in hex/string format dump: Dump memory out (physical or process or kernel) write: Write to memory search: Searching (pattern matching, regex,...) ps/pstree: Processes dlls: DLLs, registry: Registries, files: Open files, vad: VADs kmod: Kernel modules address: Attributes of a memory address connection: Open network connections, socket: open sockets disasm: Disassemble memory range register: Show all the registers

29

30 Metasploit

31 Metasploit payloads 3 types of payloads Inject new process Inject Dynamic Link Library (DLL) Inject DLL 2 (Reflective Meterpreter)

32 Virtual address descriptor (VAD) Windows organizes process memory in VADs Set of memory chunks Tree-like organized Always updated Chunk attributes Start - End address Read / Write / Execute....

33 Related Works Volatility A great open-source memory forensic tool/framework Written in Python More forensic oriented Only support memory-dump files Other works on Windows kernel internals Thanks to great works done by various reversers giving excellent insights into Windows OS kernels!

34 Acknowledgement Thanks to METI (Japan) for partly sponsoring this project in the ”Next Generation Info- Security R&D” program.

35 Conclusions Put the forensic and IR tool outside of protected VM has some significant advantages Zero-cost on deployment Never erase evidences in memory No more inconsitent memory problem Tamper resistant to malware inside the VM Invisible to malware

36 Outspect: Unified Memory Forensic Toolset for Virtual Machine Q & A Nguyen Anh Quynh gmail.com