Académique Documents
Professionnel Documents
Culture Documents
By
Presented At
DFRWS is dedicated to the sharing of knowledge and ideas about digital forensics research. Ever since it organized
the first open workshop devoted to digital forensics in 2001, DFRWS continues to bring academics and practitioners
together in an informal environment. As a non-profit, volunteer organization, DFRWS sponsors technical working
groups, annual conferences and challenges to help drive the direction of research and development.
http:/dfrws.org
VMI-PL: A monitoring language for virtual platforms
using virtual machine introspection
Andreas Polze 2
1 Blekinge
Institute of Technology
Karlskrona, Sweden
2 HassoPlattner Institute
Potsdam, Germany
August 5, 2014
1 Introduction
Virtual Machine Introspection (VMI)
VMI Techniques
3 Evaluation
Measurement Scenarios
VMI-PL Performance
Comparison between VMI-PL and VMware VProbes
4 Conclusion
Data-based techniques:
Data-based techniques:
Memory introspection
Data-based techniques:
Memory introspection
Register introspection
Data-based techniques:
Memory introspection
Register introspection
Event-based techniques:
Data-based techniques:
Memory introspection
Register introspection
Event-based techniques:
Monitor writes to certain registers
Data-based techniques:
Memory introspection
Register introspection
Event-based techniques:
Monitor writes to certain registers
Monitor system and user defined interrupts
Data-based techniques:
Memory introspection
Register introspection
Event-based techniques:
Monitor writes to certain registers
Monitor system and user defined interrupts
Stream-based techniques:
Data-based techniques:
Memory introspection
Register introspection
Event-based techniques:
Monitor writes to certain registers
Monitor system and user defined interrupts
Stream-based techniques:
Inspect network traffic
Data-based techniques:
Memory introspection
Register introspection
Event-based techniques:
Monitor writes to certain registers
Monitor system and user defined interrupts
Stream-based techniques:
Inspect network traffic
Monitor keyboard input
1 Introduction
Virtual Machine Introspection (VMI)
VMI Techniques
3 Evaluation
Measurement Scenarios
VMI-PL Performance
Comparison between VMI-PL and VMware VProbes
4 Conclusion
VMI-PL:
VMI-PL:
Data probes
Event probes
Stream probes
VMI-PL:
Data probes
Event probes
Stream probes
Filters
Reconfiguration instructions
VMI-PL:
Data probes
Event probes
Stream probes
Filters
Reconfiguration instructions
Configuration
1 Configuration {
2 < configuration - item >
3 }
4 < event - probe >( < parameters >){
5 < data - probe >( < parameters >)
6 < filter >( < parameters >){
7 < data - probe >( < parameters >)
8 }
9 }
10 < stream - probe >( < parameters >)
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
WriteToMemoryAt(<register>, <offset>, <value>)
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
WriteToMemoryAt(<register>, <offset>, <value>)
ProcessList(<field>, [<file-path> | <stream-id>])
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
WriteToMemoryAt(<register>, <offset>, <value>)
ProcessList(<field>, [<file-path> | <stream-id>])
Event Probes:
CRWrite(<number>)
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
WriteToMemoryAt(<register>, <offset>, <value>)
ProcessList(<field>, [<file-path> | <stream-id>])
Event Probes:
CRWrite(<number>)
Syscall([<syscall number> | -])
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
WriteToMemoryAt(<register>, <offset>, <value>)
ProcessList(<field>, [<file-path> | <stream-id>])
Event Probes:
CRWrite(<number>)
Syscall([<syscall number> | -])
Stream Probes:
CaptureNetwork(<mac address>, [<file-path> | <stream-id>])
Data Probes:
ReadMemory(<virtual address> <size>, [<file-path> |
<stream-id>])
WriteToMemoryAt(<register>, <offset>, <value>)
ProcessList(<field>, [<file-path> | <stream-id>])
Event Probes:
CRWrite(<number>)
Syscall([<syscall number> | -])
Stream Probes:
CaptureNetwork(<mac address>, [<file-path> | <stream-id>])
CaptureKeyboardInput([<file-path> | <stream-id>])
Filters:
RegisterHasValue(<register>, <value>)
Filters:
RegisterHasValue(<register>, <value>)
Reconfiguration Instructions:
Pause
Filters:
RegisterHasValue(<register>, <value>)
Reconfiguration Instructions:
Pause
Reconfigure(<event probe id>)
1 Configuration {
2 P ro ce ss L is tH ea d : 0 xc17cdfe0
3 TasksOffset : 440
4 PIDOffset : 520
5 P r o c e s s N a m e O f f s e t : 744
6 MMSt ructOffs et : 468
7 ExeFileOffset : 444
8 DEntryOffset : 12
9 ParentOffset : 16
10 DNameOffset : 28
11 PGDOffset : 40
12 }
13 CRWrite (3){
14 ReadRegister ( CR3 , # demo )
15 }
16 ExecuteAt (0 xc104f060 ){
17 ProcessList ( PID , NAME , PATH , PGDP , # demo )
18 ReadRegister ( CR3 , # demo )
19 }
20 Capt ureNetwo rk (00:16:35: AF :94:4 B , # demo )
Demo
1 Introduction
Virtual Machine Introspection (VMI)
VMI Techniques
3 Evaluation
Measurement Scenarios
VMI-PL Performance
Comparison between VMI-PL and VMware VProbes
4 Conclusion
ll
Ca )
em s (8
st t
Sy cr
ip
)
lS (1
el ts
Sh c rip n
lS tio
el ea
Sh Cr in
g
s
es it ch
oc
Pr Sw
t ut
ex hp
nt ug
Co ro
pe 40
Pi py
Co 6
le 25
Fi py
Co 24
le 10
Fi y t
p pu
Co gh
Fi
le ou
hr
lT
ec
Ex ne
to
ts
UnixBench Benchmark
he
W ne
to
ys
hr
D
80
60
40
20
0
Performance in %
Evaluation - VMI-PL Performance II
VMI-PL
8 LC
Exec
6
Slowdown in %
-2
-4
UnixBench Benchmark
100
VMI-PL
80 VProbes
Performance in %
60
40
20
0
VMI-PL/ LC Exec
VProbes
1 Introduction
Virtual Machine Introspection (VMI)
VMI Techniques
3 Evaluation
Measurement Scenarios
VMI-PL Performance
Comparison between VMI-PL and VMware VProbes
4 Conclusion