+ All Categories
Home > Documents > Security Challenges in Virtualized...

Security Challenges in Virtualized...

Date post: 22-Apr-2020
Category:
Upload: others
View: 7 times
Download: 1 times
Share this document with a friend
100
Security Challenges in Virtualized Environments Joanna Rutkowska, Invisible Things Lab Confidence 2008, Krakow, Poland, May 15th, 2008
Transcript
Page 1: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Security Challenges in Virtualized Environments

Joanna Rutkowska, Invisible Things Lab

Confidence 2008, Krakow, Poland, May 15th, 2008

Page 2: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Virtualization-based MALWARE

Using Virtual Machines for ISOLATION

NESTED virtualization

1

2

3

Page 3: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Virtualization-based MALWARE

Page 4: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Hardware

OS

Hardware

OS

Blue Pill

Hardware

AMD-VIntel VT-x

Page 5: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Blue Pill Characteristics

NO HOOKS! Cannot be detected using any integrity scanner

On the fly installation No boot/BIOS/etc modifications necessary

No I/O virtualizationNegligible performance impact (your brand new 3D card will still work!)

Page 6: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Blue Pill detection

Page 7: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Blue Pill detection

Detecting a VMM Detecting virtualization based

malware

Page 8: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMM detection

Direct timing analysis

Blue Chicken

CPU specific behavior

TLB profiling

Guest time virtualizationHPET timers

Page 9: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMM detection?

• Everything is going to be virtualized!

• Thus the information that “there is a hypervisor in the system”...

• ...would be pretty much useless...

Page 10: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Detecting virtualized malware?

Page 11: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

No Hooks!

Search for code Detect activity(e.g. network packets)

• Stealth by Design concept• Covert channels

Won’t workNested Page Tables (hardware SPT)

By PatternHeuristics

Simple Obfuscation

0day malware“Massive” malware

Page 12: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

The whole big deal about Blue Pill is:

NO HOOKS in the system!

Page 13: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Blue Pill prevention

Page 14: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Disable virtualization?

Page 15: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

How about also disabling your network card so you never got

infected from the Internet?

Page 16: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Install a trusted hypervisor first?

Page 17: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Installing trusted hypervisor

Static Root of Trust Measurement

Dynamic Root of Trust Measurement

BIOS > MBR > VMMe.g. MS Bitlocker

SENTER (Intel TXT)SKINIT (AMD SVM)

Page 18: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Trusted vs. Secure?

• SRTM and DRTM only assures that what we load is trusted...

• ...at the moment of loading!

• 3 sec later... it could be exploited and get compromised!

Page 19: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Trusted != Secure

known, not compromised

no bugs

Page 20: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

E.g. #1: The famous DMA problem

Page 21: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

(Trusted) Hypervisor

OS

Hardware

Some driver

Some device

I/O: asks the device to setup a DMA transfer

Read/Write memory access!

Page 22: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

IOMMU

• Solution to the problem of “DMA attacks”

• Intel calls it: VT-d

• Not much PC hardware supports it yet

• Expected to change soon

• No THIN HYPERVISORS without IOMMU!

Page 23: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Other problems with VMMs?Stay tuned...

Page 24: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

All in all:

it’s not trivial to have a trusted & secure hypervisor...

... but this is the proper way to go!

Page 25: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Virtualization-based MALWARE

Using Virtual Machines for ISOLATION

NESTED virtualization

1

2

3

Page 26: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Using Virtual Machines for ISOLATION

Page 27: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Originally ISOLATION was supposed to be provided by Operating Systems...

• Separate processes/address spaces,• User accounts & ACLs...

Page 28: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

But in practice current OSes simply

fail at providing isolation!

Page 29: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Why OSes fail?

• Kernel bugs!

• Kernel bugs!!

• Kernel bugs!!!

• Bad design, e.g.:

• XP and “all runs as admin” assumption

• Vista’s UAC assumes admin rights should be granted to every installer program!

Page 30: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMMs for the rescue!

Page 31: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Vista(work projects)

Linux + Firefox(“random”

surfing)

Linux + Firefox(online banking)

MacOSX(“home”, e.g.

pics, music, etc)

trusted & secure hypervisor

Page 32: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Challenges

• Performance

• Why is VMM/hypervisor going to be more secure then OS’s kernel?

Page 33: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMM bugs?

Page 34: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMM Bugs

Bugs in hypervisors Bugs in additional infrastructure

Page 35: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

E.g. #1: CVE-2007-4496

• VMWare ESX 3.0.1• http://www.vmware.com/support/vi3/doc/esx-8258730-patch.html

• Found by Rafal Wojtczuk (McAfee)

• September 2007

• Guest OS can cause memory corruption on the host and potentially allow for arbitrary code execution on the host

Page 36: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

E.g. #2: CVE-2007-0948

• Microsoft Virtual Server 2005 R2• http://www.microsoft.com/technet/security/bulletin/ms07-049.mspx

• Found by Rafal Wojtczuk (McAfee)

• August 2007

• Heap-based buffer overflow allows guest OS to execute arbitrary code on the host OS

Page 37: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

E.g. #3: CVE-2007-4993

• Xen 3.0.3• http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1068

• Found by Joris van Rantwijk

• September 2007

• By crafting a grub.conf file, the root user in a guest domain can trigger execution of arbitrary Python code in domain 0.

Page 38: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

E.g. #4: Various Bugs

• Paper by Tavis Ormandy (Google)• http://taviso.decsystem.org/virtsec.pdf

• April 2007

• Disclosed bugs in VMWare, XEN, Bochs, Virtual PC, Prallels

• A simple fuzzers for:

• Instruction parsing by VMMs

• I/O device emulation by VMMs

Page 39: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

As you see, current VMMs are far from being flawless...

Page 40: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

To make VMMs more secure we need to keep them

ultra-thin and small!

Page 41: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Phoenix HyperSpace

Page 42: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative
Page 43: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative
Page 44: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

HyperCore:the type I hypervisor used for HyperSpace

Page 45: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

HyperCore

Vista (HVM) AppSpace #1 (DomU PV)

ManageSpace (Dom0 PV)

Device Model

Virtualizer/Drivers(DomU)

Hardware

AppSpace #2(DomU PV)

Page 46: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

The HyperCore

• Targets desktop/laptop systems

• Guest OS execute at near-native performance (including fancy graphics)

• Support for full ACPI (Power Management)

• Integrity: loaded via SecureCore BIOS (Static Root of Trust Measurement)

• Very thin - easy to audit!

Page 47: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Speeding things up

• Pass through for most devices

• SPT: 1-1 mapping for most pages for the Primary OS

Page 48: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Power Management

• ACPI tables exposed to the Primary OS, so that the overall power performance is optimized

• Efficient intercepts for power management control

Page 49: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Integrity

• Static RTM via Phoenix’s SecureCore BIOS

• Dynamic RTM via Intel’s TXT/AMD’s SKINIT

• SMM-based watchdog for HyperCore code

Page 50: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative
Page 51: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Virtualization-based MALWARE

Using Virtual Machines for ISOLATION

NESTED virtualization

1

2

3

Page 52: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

NESTED virtualization

Page 53: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

What if a user wants to run e.g. Virtual PC

here?

Page 54: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VM1VM2 (Nested Hypervisor)

Hypervisor (Primary)

VM21

VM3

VM22

VM4

VM221 VM222

Page 55: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Idea of how to handle this situation...

Page 56: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Hypervisor

VM1 VM2 VM3

VM21 VM22

VM221 VM222

Hypervisor

VM1 VM2 VM3VM21 VM22 VM221 VM222

Page 57: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Now, lets look at the actual details :)

Page 58: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Let’s start with AMD-V...WARNING!!!

deep technical content follows (next 14 slides)

don’t worry if you get lost!

Page 59: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMRUN

VMCB0

VMRUN

RDMSR

VMCB0VMCB0

Page 60: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMRUN

VMCB0

VMRUN ?VMCB1

Page 61: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMRUN

VMCB0

VMRUN

VMCB1

VMRUN

VMCB1’

RDMSR ?

VMCB0

Page 62: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMRUN

VMCB1

VMRUN

RDMSR

VMRUN

VMCB1’ VMCB0

VMCB1

RAX

VMCB1’

Page 63: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Looks convincing but we also need to take care about some technical details, that are not trivial...

Page 64: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VMRUN

VMCB0

VMRUN

RDMSR

VMCB0VMCB0

GIF=0

GIF=1 GIF=1

Page 65: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

RDMSR

VMRUN

Nested Hypervisor

Nested Guest

Hypervisor

GIF=1

GIF=0

Page 66: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

• Hypervisors expect to have GIF=1 when VMEXIT occurs...

• They might not be prepared to handle interrupts just after VMEXIT from guests!

• ... but when we resume the nested hypervisor CPU sets GIF=1, because we do this via VMRUN, not VMEXIT...

Page 67: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Getting around the “GIF Problem”

• We need to “emulate” that GIF is 0 for the nested hypervisor

• We stop this emulation when:

• The nested hypervisor executes STGI

• The nested hypervisor executes VMRUN

• How do we emulate it?

Page 68: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

GIF0 emulation

• VMCB1’.V_INTR_MASKING = 1

• Host’s RFLAGS.IF = 0

• Intercept NMI, SMI, INIT, #DB and held (i.e. record and reinject) or discard until we stop the emulation

Page 69: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Additional details

• Need to also intercept VMLOAD/VMSAVE

• Need to virtualize VM_HSAVE_PA

• ASID conflicts

Page 70: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Hypervisor: ASID = 0

Nested Hypervisor: ASID = 1(but thinks that has ASID = 0)

Nested Guest: ASID = 1(assigned by the nested hypervisor)

Conflicting ASIDs!

Page 71: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

But we can always reassign the ASID in the VMCB “prim” that we use to run the nested guest.

Page 72: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Performance Impact

• One additional #VMEXIT on every #VMEXIT that would occur in a non-nested scenario

• One additional #VMEXIT when the nested hypervisor executes: STGI, CLGI, VMLOAD, VMSAVE

• Lots of space for optimization though

Page 73: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Lost already? ;)

Page 74: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Don’t worry! The main message is...

Page 75: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

This can be done!&

It works!

Page 76: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative
Page 77: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

http://bluepillproject.org

Page 78: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Intel VT-x

Page 79: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Nested virtualization on VT-x

• No GIF bit - no need to emulate “GIF0” for the nested hypervisor :)

• No Tagged TLB - No ASID conflicts :)

• However:

• VMX instructions can take memory operands - need to use complex operand parser

• No tagged TLB - potentially bigger performance impact

Page 80: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Nested VT-x: Status

• We have that working!

• The VT-x nesting code cannot be published though :(

Page 81: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Who else does Nested (hardware-based) Virtualization?

Page 82: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

IBM z/VM hypervisor on IBM System z™ mainframe

“Running z/VM in a virtual machine (that is, z/VM as a guest of z/VM, also known as “second-level” z/VM) is functionally supported but is intended only for testing purposes for the second-level z/VM system and its guests (called “third-level” guests).”-- http://www.vm.ibm.com/pubs/hcsf8b22.pdf

IBM System z10, source: ibm.com

Page 83: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Confusion

• AMD Nested Page Tables != Nested Virtualization!

• NPT is a hardware alternative to Shadow Page Tables (a good thing, BTW)

• NPT is also called: Rapid Virtualization Indexing

Page 84: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Nested Virtualization:Security Implications

Page 85: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VM1 VM1 VM1Management

Domain

hypervisor

MBR/BIOS

Page 86: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VM1 VM1 VM1Management

Domain

Type I hypervisor

MBR/BIOS

Blue Pill :)

Page 87: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Solution: ensure hypervisor integrity via SRTM or DRTM

Page 88: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

VM1 VM1 VM1Management

Domain

hypervisor

MBR/BIOS

SRTM/DRTM

Blue Pill :)

SRTM/DRTM do not protect the already loaded hypervisor, from being exploited if it is buggy!

Page 89: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Keep hypervisors very slim!Do not put drivers there!

Page 90: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Nested Virtualization:Useful Applications

Page 91: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Remember Phoenix’s HyperCore?

Page 92: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

What if a user wants to run e.g. Virtual PC

here?

Page 93: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Phoenix Technologies has supported the research on nested hypervisors since Fall 2007

Page 94: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Virtualization-based MALWARE

Using Virtual Machines for ISOLATION

NESTED virtualization

1

2

3

Page 95: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Summary

Page 96: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

• Virtualization technology could be used to improve security on desktop systems

• However there are non-trivial challenges in making this all working well...

• Virtualization is cool ;)

Page 97: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

New stuff coming soon...

Page 98: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Summer 2008 in Las Vegas...

Page 99: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Invisible Things Labhttp://invisiblethingslab.com

Page 100: Security Challenges in Virtualized Environmentsdata.proidea.org.pl/confidence/4edycja/materialy/...• AMD Nested Page Tables != Nested Virtualization! • NPT is a hardware alternative

Thank you!


Recommended