Software emulation has been proven useful in many scenarios, such as software testing, malware analysis, and intrusion response. However, fine-grained software emulation (e.g., at the instruction level) incurs considerable execution overhead (about 8x performance degradation), which hampers its use in production settings. In this paper, we propose MOSE (Live Migration based On-the-fly Software Emulation) that combines the performance advantages of hardware virtualization and the fine-grained analysis capability (comprehensiveness) of whole-system software emulation. Namely, a system can run as normal on a hardware-virtualized platform at near native speed, but when needed, it can be live-migrated to an emulator, not necessarily running on the same physical system, for in-depth analysis and triage; when the analysis is complete, the virtual machine can be migrated back to benefit from full hardware-virtualization again. In this way, the performance degradation is only experienced during analysis and triage. To demonstrate this new capability, we built a proof of concept on-the-fly software emulation system, based on QEMU/KVM and DECAF, the Dynamic Executable Code Analysis Framework. We also perform three case studies: automated kernel panic triage, live-patching a security vulnerability, and on-demand symbolic execution, to illustrate on-demand instruction level analysis.
[1]
刘锋,et al.
Kernel-based virtual machine事件跟踪机制的设计与实现
,
2008
.
[2]
Heng Yin,et al.
Make it work, make it right, make it fast: building a platform-neutral whole-system dynamic binary analysis platform
,
2014,
ISSTA 2014.
[3]
Andrew Warfield,et al.
Practical taint-based protection using demand emulation
,
2006,
EuroSys.
[4]
Brendan Dolan-Gavitt,et al.
Repeatable Reverse Engineering for the Greater Good with PANDA
,
2014
.
[5]
Brian N. Bershad,et al.
Recovering device drivers
,
2004,
TOCS.
[6]
George Candea,et al.
The S2E Platform: Design, Implementation, and Applications
,
2012,
TOCS.
[7]
Tal Garfinkel,et al.
VMwareDecoupling Dynamic Program Analysis from Execution in Virtual Environments
,
2008,
USENIX Annual Technical Conference.
[8]
Mu Zhang,et al.
V2E: combining hardware virtualization and softwareemulation for transparent and extensible malware analysis
,
2012,
VEE '12.
[9]
Brendan Dolan-Gavitt,et al.
Repeatable Reverse Engineering with PANDA
,
2015,
PPREW@ACSAC.