EXTERIOR: Using A Dual-VM Based External Shell for Guest-OS - - PowerPoint PPT Presentation

exterior using a dual vm based external shell for guest
SMART_READER_LITE
LIVE PREVIEW

EXTERIOR: Using A Dual-VM Based External Shell for Guest-OS - - PowerPoint PPT Presentation

Overview Our Approach Evaluations Conclusion EXTERIOR: Using A Dual-VM Based External Shell for Guest-OS Introspection, Configuration, and Recovery Yangchun Fu , Zhiqiang Lin Department of Computer Science The University of Texas at Dallas


slide-1
SLIDE 1

Overview Our Approach Evaluations Conclusion

EXTERIOR: Using A Dual-VM Based External Shell for Guest-OS Introspection, Configuration, and Recovery Yangchun Fu, Zhiqiang Lin

Department of Computer Science The University of Texas at Dallas

March 17th, 2013

slide-2
SLIDE 2

Overview Our Approach Evaluations Conclusion

Outline

1

Overview

2

Our Approach

3

Evaluations

4

Conclusion

slide-3
SLIDE 3

Outline

1

Overview

2

Our Approach

3

Evaluations

4

Conclusion

slide-4
SLIDE 4

Overview Our Approach Evaluations Conclusion

Virtualization

Hardware Layer Virtualization Layer

Product‐VM Product‐VM Product‐VM

Linux Win‐7

..

Windows XP

slide-5
SLIDE 5

Overview Our Approach Evaluations Conclusion

Virtualization

Hardware Layer Virtualization Layer

Product‐VM Product‐VM Product‐VM

Linux Win‐7

..

Windows XP

Virtualization (i.e., hypervisor) [Popek and

Goldberg, 1974] has pushed

  • ur computing paradigm

from multi-tasking to multi-OS.

slide-6
SLIDE 6

Overview Our Approach Evaluations Conclusion

Virtualization

Hardware Layer Virtualization Layer

Product‐VM Product‐VM Product‐VM

Linux Win‐7

..

Windows XP

Virtualization (i.e., hypervisor) [Popek and

Goldberg, 1974] has pushed

  • ur computing paradigm

from multi-tasking to multi-OS. Consolidation, Migration, Isolation ...

slide-7
SLIDE 7

Overview Our Approach Evaluations Conclusion

Execution Mode

slide-8
SLIDE 8

Overview Our Approach Evaluations Conclusion

Execution Mode

slide-9
SLIDE 9

Overview Our Approach Evaluations Conclusion

Execution Mode

slide-10
SLIDE 10

Overview Our Approach Evaluations Conclusion

Virtual Machine Introspection (VMI) [Garfinkel et al, NDSS’03]

slide-11
SLIDE 11

Overview Our Approach Evaluations Conclusion

Virtual Machine Introspection (VMI) [Garfinkel et al, NDSS’03]

Using a trusted, dedicated virtualization layer program to monitor the running VMs

slide-12
SLIDE 12

Overview Our Approach Evaluations Conclusion

Virtual Machine Introspection (VMI) [Garfinkel et al, NDSS’03]

Using a trusted, dedicated virtualization layer program to monitor the running VMs Intrusion Detection Malware Analysis Memory Forensics

slide-13
SLIDE 13

Overview Our Approach Evaluations Conclusion

Virtual Machine Introspection (VMI)

Using a trusted, dedicated virtualization layer program to monitor the running VMs Intrusion Detection Malware Analysis Memory Forensics

slide-14
SLIDE 14

Overview Our Approach Evaluations Conclusion

Virtual Machine Introspection (VMI)

Using a trusted, dedicated virtualization layer program to monitor the running VMs Intrusion Detection Malware Analysis Memory Forensics EXTERIOR Execute trusted utilities in SVM for timely Guest-OS introspection, (re)configuration and recovery.

slide-15
SLIDE 15

Overview Our Approach Evaluations Conclusion

The Semantic Gap in VMI ([Chen and Noble HotOS’01])

View exposed by Virtual Machine Monitor is at low-level There is no abstraction and no APIs Need to reconstruct the guest-OS abstraction

slide-16
SLIDE 16

Outline

1

Overview

2

Our Approach

3

Evaluations

4

Conclusion

slide-17
SLIDE 17

Overview Our Approach Evaluations Conclusion

Using a Dual-VM Architecture

User Space Kernel Space apache mysql firefox

P

Guest VM (GVM)

slide-18
SLIDE 18

Overview Our Approach Evaluations Conclusion

Using a Dual-VM Architecture

User Space Kernel Space User Space Kernel Space ps netstat kill apache mysql firefox

P

Secure VM (SVM) Guest VM (GVM)

p

slide-19
SLIDE 19

Overview Our Approach Evaluations Conclusion

Using a Dual-VM Architecture

User Space Kernel Space User Space Kernel Space ps netstat kill apache mysql firefox

P

Secure VM (SVM) Guest VM (GVM)

p

Virtual Machine Introspection Virtual Machine Configuration Intrusion Detection, Prevention (Recovery)

slide-20
SLIDE 20

Overview Our Approach Evaluations Conclusion

Advantages

User Space Kernel Space User Space Kernel Space ps netstat kill apache mysql firefox

P

Secure VM (SVM) Guest VM (GVM)

p

Isolation (SVM and GVM are isolated) Trustworthiness (trust code is running in secure VM) Automation (no need to develop introspection utilities) Security (enabling malware analysis, forensics...) Transparency (programmers write native program in SVM)

slide-21
SLIDE 21

Overview Our Approach Evaluations Conclusion

Observation

1 execve("/sbin/sysctl",["sysctl", "-w","kernel..=1"],...) = 0 2 brk(0) = 0x604000 3 access("/etc/ld.so.nohwcap",F_OK) = -1 ENOENT 4 mmap(NULL, 8192, PROT_READ|.., -1,0) = 0x7f07b1749000 5 access("/etc/ld.so.preload",R_OK) = -1 ENOENT 6 open("/etc/ld.so.cache", O_RDONLY) = 3 ... 47 open("/proc/sys/kernel/randomize_va_space",O_WRONLY|...) = 3 48 fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 49 mmap(NULL, 4096, PROT_READ|.., -1, 0) = 0x7f07b1748000 50 write(3, "1\n", 2) = 2 51 close(3) = 0 ... 57 exit_group(0) = ?

Syscall trace of running sysctl -w to turn on the address space randomization in Linux kernel 2.6.32

slide-22
SLIDE 22

Overview Our Approach Evaluations Conclusion

Architecture Overview of EXTERIOR

User Space Kernel Space Memory

Dglobal Dheap

Dstack1

Syscall1 Syscall2

Dstack2 Dstackn

Syscalln Process/IO/Memory/ Security Management Other System Components and Drivers Interrupt/Exception Handler User Space Kernel Space Memory

Dstack1

Syscall1 Syscall2

Dstack2 Dstackn

Syscalln Process/IO/Memory/ Security Management Other System Components and Drivers Interrupt/Exception Handler ps netstat kill apache mysql firefox

Secure VM (SVM) Guest VM (GVM)

Kernel Syscall Context Identification Kernel Data Identification and Redirection

Dglobal Dheap

Binary Translation Based Virtualization Layer Xen/KVM/Vmware/VirtualBox/VirtualPC/HyperV /OpenVZ/QEMU

Cuser Dstack Dglobal Dheap

P

GVM Memory Mapping and Address Resolution Outer-Shell

Synchronization Primitive mutex, spin_lock,… Synchronization Primitive mutex, spin_lock,…

slide-23
SLIDE 23

Overview Our Approach Evaluations Conclusion

The algorithms

User Space Kernel Space Memory

Dglobal Dheap

Dstack1

Syscall1 Syscall2

Dstack2 Dstackn

Syscalln Process/IO/Memory/ Security Management Other System Components and Drivers Interrupt/Exception Handler ps netstat kill

Secure VM (SVM)

Kernel Syscall Context Identification Kernel Data Identification and Redirection Binary Translation Based Virtualization Layer GVM Memory Mapping and Address Resolution Outer-Shell

Synchronization Primitive mutex, spin_lock,…

slide-24
SLIDE 24

Overview Our Approach Evaluations Conclusion

The algorithms

User Space Kernel Space Memory

Dglobal Dheap

Dstack1

Syscall1 Syscall2

Dstack2 Dstackn

Syscalln Process/IO/Memory/ Security Management Other System Components and Drivers Interrupt/Exception Handler ps netstat kill

Secure VM (SVM)

Kernel Syscall Context Identification Kernel Data Identification and Redirection Binary Translation Based Virtualization Layer GVM Memory Mapping and Address Resolution Outer-Shell

Synchronization Primitive mutex, spin_lock,…

The Algorithm

1: DynamicBinaryInstrumentation(i): 2:

if SysCallExecContext(s):

3:

if SysCallRedirectable(s):

4:

RedirectableDataTracking(i);

5:

for α in MemoryAddress(i):

6:

if DataRead(α):

7:

PA(α) ← V2P(α)

8:

Load(PA(α))

9:

else:

10:

if Configuration:

11:

Store(PA(α))

12:

else: //Introspection

13:

COW-Store(PA(α))

slide-25
SLIDE 25

Overview Our Approach Evaluations Conclusion

Mapping the GVM Memory Address

slide-26
SLIDE 26

Outline

slide-27
SLIDE 27

Overview Our Approach Evaluations Conclusion

Effectiveness

Effective? Category Utility Syntactics Semantics ps (1) ✗

  • pstree (1)

  • lsmod (8)
  • dmesg (1)
  • Introspection

vmstat (8) ✗

  • netstat (8)
  • lsof (8)

  • uptime (1)

  • df (1)

  • sysctl (8)
  • Configuration

route (8)

  • hostname (1)
  • chrt (1)
  • renice (1)
  • kill (1)
  • Recovery

rmmod (8)

slide-28
SLIDE 28

Overview Our Approach Evaluations Conclusion

Performence Overhead

slide-29
SLIDE 29

Overview Our Approach Evaluations Conclusion

Recovery

Rootkit Targeted Function Pointer Succeed? adore-2.6 kernel global, heap object ✗ hookswrite IDT table

  • int3backdoor

IDT table

  • kbdv3

syscall table

  • kbeast-v1

syscall table, tcp4_seq_show

  • mood-nt-2.3

syscall table

  • verride

syscall table

  • phalanx-b6

syscall table, tcp4_seq_show

  • rkit-1.01

syscall table

  • rial

syscall table

  • suckit-2

IDT table

  • synapsys-0.4

syscall table

slide-30
SLIDE 30

Overview Our Approach Evaluations Conclusion

OS-Agnostic Testing

Linux Kernel Distribution Version Release Date Transparent? Debian 4.0 2.6.26 2007-04-06

  • Debian 5.0

2.6.28 2009-02-12

  • Debian 6.0

2.6.32 2010-01-22

  • Fedora-8

2.6.23 2007-11-08

  • Fedora-10

2.6.27 2008-11-25

  • Fedora-12

2.6.31 2009-11-17

  • Fedora-14

2.6.35 2010-11-02

  • Fedora-16

3.1.0 2011-11-08

  • OpenSUSE-10.3

2.6.22 2007-10-04

  • OpenSUSE-11.0

2.6.25 2008-06-19

  • OpenSUSE-11.1

2.6.27 2008-12-18

  • OpenSUSE-11.2

2.6.31 2009-11-12

  • OpenSUSE-11.3

2.6.34 2010-07-15

  • OpenSUSE-12.1

3.1.0 2011-11-16

  • Ubuntu-8.04

2.6.24 2008-04-24

  • Ubuntu-8.10

2.6.27 2008-10-30

  • Ubuntu-9.04

2.6.28 2009-04-23

  • Ubuntu-9.10

2.6.31 2009-10-29

  • Ubuntu-10.04

2.6.32 2010-04-29

  • Ubuntu-10.10

2.6.35 2010-10-10

  • Ubuntu-11.04

2.6.38 2011-04-28

  • Ubuntu-11.10

3.0.4 2011-10-13

slide-31
SLIDE 31

Overview Our Approach Evaluations Conclusion

Limitations and Future Work

Limitations Can handle kernel ASLR Need an identical trusted kernel Need to stop the guest VM

slide-32
SLIDE 32

Overview Our Approach Evaluations Conclusion

Limitations and Future Work

Limitations Can handle kernel ASLR Need an identical trusted kernel Need to stop the guest VM Future Work Derandomize the kernel address space Port to Windows OS

slide-33
SLIDE 33

Outline

slide-34
SLIDE 34

Overview Our Approach Evaluations Conclusion

Conclusion

EXTERIOR is a novel dual-VM based external shell for trusted, native, out-of-VM program execution.

slide-35
SLIDE 35

Overview Our Approach Evaluations Conclusion

Conclusion

EXTERIOR is a novel dual-VM based external shell for trusted, native, out-of-VM program execution. It can be used for (automatic) introspection, (re)configuration of the guest-OS state (in the cloud), and can perform a timely response such as recovery from a kernel malware intrusion.

slide-36
SLIDE 36

Overview Our Approach Evaluations Conclusion

Conclusion

EXTERIOR is a novel dual-VM based external shell for trusted, native, out-of-VM program execution. It can be used for (automatic) introspection, (re)configuration of the guest-OS state (in the cloud), and can perform a timely response such as recovery from a kernel malware intrusion. EXTERIOR has demonstrated a new program execution model on top of virtualization.

slide-37
SLIDE 37

Overview Our Approach Evaluations Conclusion

Conclusion

EXTERIOR is a novel dual-VM based external shell for trusted, native, out-of-VM program execution. It can be used for (automatic) introspection, (re)configuration of the guest-OS state (in the cloud), and can perform a timely response such as recovery from a kernel malware intrusion. EXTERIOR has demonstrated a new program execution model on top of virtualization. (We believe) It will open new opportunities for system administration and security.

slide-38
SLIDE 38

Overview Our Approach Evaluations Conclusion

Thank you !

User Space Kernel Space User Space Kernel Space ps netstat kill apache mysql firefox

P

Secure VM (SVM) Guest VM (GVM)

p

slide-39
SLIDE 39

Overview Our Approach Evaluations Conclusion

Thank you !

User Space Kernel Space User Space Kernel Space ps netstat kill apache mysql firefox

P

Secure VM (SVM) Guest VM (GVM)

p

Contact us via. {yangchun.fu,zhiqiang.lin}@utdallas.edu for any questions