talk

23
Remote Virtual Machine Monitor Detection Jason Franklin, Mark Luk, Jonathan McCune, Arvind Seshadri, Adrian Perrig, Leendert van Doorn

description

 

Transcript of talk

Page 1: talk

Remote Virtual Machine Monitor Detection

Jason Franklin, Mark Luk, Jonathan McCune, Arvind Seshadri, Adrian

Perrig, Leendert van Doorn

Page 2: talk

Remote Virtual Machine Monitor Detection

Problem Statement• Determine if a remote machine is virtual or real

Challenges• VMM provides an accurate abstraction of the underlying hardware• VMM controls execution of code and may return arbitrary values

ExternalVerifier

Remote Machine

Are you virtual?

`

Page 3: talk

VMM Detection and Botnets (1/2)

Scenario 1• Bots may install a stealthy virtual machine

based rootkit (VMBR) to avoid detection by traditional malware scanners

• Stealthy rootkits prevent administered machines from removing bots• You run an AV, update, patch, yet never

locate/remove the bot

• Detecting VMMs allows us to detect bots

Page 4: talk

VMM Detection and Botnets (2/2)

Scenario 2• Bots may check for the existence of a VMM in

order to prevent dynamic analysis • “Detecting the sandbox”• Real threat & mentioned several times

yesterday• Agobot uses a heuristic to check for VMWare

• Studying VMM detection helps us understand how to enable VMM-based dynamic analysis

Page 5: talk

State of the Art in VMM Detection

Check for software-implementation artifacts• Redpill checks the location of the IDT (different

location under VMWare)• VMWare’s Back checks for VMWare I/O port

Other approaches• Make restrictive assumptions• Easy to thwart• Require benchmarking

Page 6: talk

Our Goals

Develop a VMM detection algorithm:• VMM implementation independent• Accurate• Practical/relies on few assumptions

Leverage fundamental differences between virtual and real machines

Page 7: talk

VMM Model

Popek and Goldberg ’74 formally defined the properties a control program must satisfy to be deemed a VMM• Efficiency Property• Resource Control Property• Equivalence Property

• Program execution in a virtual environment must be indistinguishable from execution in a real environment

Page 8: talk

Indistinguishable? Oh no! If a program executes

indistinguishably, we can’t detect a virtual execution environment

Don’t worry! There are exceptions to the equivalence property• Timing dependency exception

• Certain sequences of instructions may take longer to execute

• Resource availability exception

Page 9: talk

Does the timing dependency exception necessarily exist?

Empirically, yes.• Programs executing in a VMM experience

VMM overhead In theory, yes.

• Intuition is that VMM must maintain control of executing code by interposing on the operations or rewrite the binary

Page 10: talk

Exploiting the timing dependency exception to

detect a VMM Algorithm:

Given: • Real machine R with configuration C e.g.,

C={Pentium IV, 2.0GHz}• Remote machine M with configuration C• Program P with control-modifying instructions

1: Time the execution of P on R and store the value in r2: Time the execution of P on M and store the value in m3: IF m > r + k THEN M is virtual [note: k is the detection

constant]

4: ELSE M is real

Page 11: talk

Tasks Remaining

Achieve accurate high-integrity execution timing

Construct program P with externally noticeable VMM overhead

Determine configuration of remote machine

Determine detection constant k

Page 12: talk

Accurate High-Integrity Execution Timing

Can’t trust the integrity of the timing measurements returned by the VMM

Use an external source of time (e.g., remote machine, watch, etc…)

Page 13: talk

Constructing P with VMM Overhead

P is a sequence of sensitive (potentially control modifying) instructions that requires VMM interposition

P is designed to invoke VMM overhead Design decisions in developing P

include:• Sensitive instruction selection• Number of instructions

Page 14: talk

Selecting Sensitive Instructions

R/W cr3 R/W cr2

R/W cr0 cli

Page 15: talk

Number of Instructions in P

Assume we have complete configuration information for remote machine M

Easy to determine the number of instructions required to overcome experimental noise• Variance in execution time• Variance in network latency

Page 16: talk

Complete Configuration Information

Given an estimate of the noise N in the environment (i.e., 10 ms variation in network latency)

Select x s.t. FV(x) – RM(x) >> N

Fastest VMM = FV(x)

Real Machine = RM(x)

Page 17: talk

Incomplete Configuration Information

Unreasonable to assume complete configuration information is available for a remote machine

Use “hardware discovery” heuristic• Intuition: certain properties of the underlying

hardware are difficult to mask through the VMM and are unique to a particular architecture

• Discovering these hardware artifacts gives us partial configuration information about a remote machine

Page 18: talk

Incomplete Configuration Information

Given a subset C’ of the complete configuration information C• C = {Pentium IV, 2.0 GHz} and C’ = {Pentium IV}

Bound the execution time of P on the fastest and slowest machines that satisfy C’• Works because P is CPU bound• We can time the execution of P on a x GHz machine and then

use the ratio of the fastest and slowest machines to bound the execution times

Page 19: talk

Hardware Discovery on the Pentium IV

P4 has a unique trace cache which “shines” through the VMM

With sequences of register-to-register arithmetic instructions without data hazards populate the trace cache of the Intel Pentium IV, a CPI of 1/3 is attainable

Once an instruction sequence exceeds the trace cache’s size of 12KB, the CPI becomes 1

Page 20: talk

Remote Trace Cache Discovery

11264 instructions fit in the trace cache 11328 instructions exceeds the size of the trace cache A considerable jump in overhead occurs when the trace cache

overflows

Page 21: talk

Putting it All Together

Remotely timed overhead from reading and writing x86 Control Register 3 multiple times consecutively

Despite not being included in our analysis, remote detection works against a machine running Xen with hardware virtualization support (HVM Xen)• We conclude that hardware virtualization support is not

sufficient to prevent VMM detection

Page 22: talk

Detection Algorithm Limitations

VMM could tamper with execution of detection code• Countermeasure: Leverage software-based attestation

(Pioneer) VMM could prevent communication to external

timer• Countermeasure: Containment policy-based detection

Receive incorrect response from hardware discovery heuristic

VMM may be incorporated with OS• Malware can still own the lowest layer• Virtual-machine-based rootkits are a threat today

Page 23: talk

Conclusion Developed a remote VMM detection algorithm

• Attempts to be independent of VMM software implementation details

• Practical/relies on fewer assumptions than previous schemes

• Accurate, configurable, and effective over the Internet

Hardware virtualization support is not sufficient to mask differences between real and virtual environments