Beruflich Dokumente
Kultur Dokumente
Kernel-mode Events by
HyperPlatform
Satoshi Tanda
Threat Researcher
1
2
Takeaway
3
About Us
4
Background
5
Challenges
6
Challenges: Summary
Too slow
7
Answer: HyperPlatform
Small (7KLOC)
8
How It Works: Overview
Applications
User Mode
Kernel Mode
Processors
9
How It Works: Overview
Applications
CPUID
User Mode
VM-exit
10
How It Works: Implementation
void VMExitHandler( Invoked on VM-exit
GuestRegisters* context, Context of the system and
int exit_reason) VM-exit reason are given
{
switch (exit_reason)
{
case VMEXIT_CPUID:
CpuidHandler(context); break; Handle an event accordingly
case VMEXIT_EXCEPTION:
ExceptionHandler(context); break;
//...
}
}
11
As a VM-exit Filtering Platform
YourDriver.sys
HyperPlatform
MOV CR3, RAX Exception CPUID
VM-exit
12
Advantage
13
Application (part 1)
14
Demo (part 1)
15
Application (part 2)
Check EopMon
Process A VM-exit
Running
Check
MOV CR3, RAX
VM-exit
Process B
Running
MOV CR3, RAX
Process C
Running
Time
16
Demo (part 2)
17
Limitations
18
Future
19
Conclusion
Check out GitHub pages, develop your own unique ideas and
solutions
github.com/tandasat/HyperPlatform
20
Thank You
Contacts:
Satoshi Tanda (@standa_t)
tanda.sat@gmail.com
Igor Korkin (@Igorkorkin)
igor.korkin@gmail.com
21
Appendix 1: Performance Metrics
Base
Performence Comparison
EopMon
MemoryMon
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Novabench RAM Speed Novabench Graphics Tests
PCMark8 Home Novabench CPU Tests Novabench Drive Write Speed
22
References 1
VMRay
https://www.vmray.com/features/
SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes
https://www.cs.cmu.edu/~arvinds/pubs/secvisor.pdf
SPIDER: Stealthy Binary Program Instrumentation and Debugging via Hardware Virtualization
https://www.cerias.purdue.edu/assets/pdf/bibtex_archive/2013-5.pdf
DRAKVUF
http://drakvuf.com/
23
References 2
HyperDbg
https://github.com/rmusser01/hyperdbg
Virtdbg
https://github.com/upring/virtdbg
BluePill
http://invisiblethingslab.com/resources/bh07/nbp-0.32-public.zip
MoRE
https://github.com/ainfosec/MoRE
24
References 3
Bochs
https://github.com/svn2github/bochs
Xen
http://xenbits.xen.org/gitweb/?p=xen.git
QEMU
http://git.qemu.org/qemu.git
VirtualBox
https://www.virtualbox.org/
25