恶意代码之“那些反虚拟环境检测”

2016-10-09  本文已影响466人  超人高飞

由于在分析恶意代码时,经常遇见反虚拟机技术, 传统的反病毒厂商也都利用虚拟机进行大量的分析从而获取样本运行的大量信息进行分析处理。常见杀软所使用的虚拟机软件通常包括VMware、VirtualBox、KVM等,这些虚拟机可以在一台物理计算机上模拟出多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作。攻击者为了逃避这些虚拟机以及病毒分析沙箱,会在恶意程序中加入检测虚拟机及沙箱的代码,以判断程序所处的运行环境。当发现程序处于虚拟机沙箱中时,它就会改变操作行为隐蔽恶意动作,逃避检测。

虚拟机识别包括对系统的注册表、文件系统、硬件信息、进程识别等。虚拟机的注册表中会记录虚拟机信息相关的键值,文件系统中有与虚拟机相关的文件、文件夹,任务进程中,也会运行一些特殊的进程,这类进程名可作为识别虚拟机检测的依据。

.data
szTitle      db  "VMDetect With RDTSC", 0h
szInsideVM    db  "Inside VMware!", 0h
szOutsideVM    db  "Native OS!", 0h
.code
start:
RDTSC
xchg     ecx, eax
RDTSC  
sub    eax, ecx
cmp    eax, 0FFh
jg    Detected
invoke  MessageBox, 0, offset szOutsideVM, offset szTitle, 0
ret 
Detected:
invoke   MessageBox, 0, offset szInsideVM, offset szTitle, 0
ret
end start
通过WMI 查询系统版本进行反虚拟环境检测

火眼报告列出几种可能出现的WMI查询:

Possible WMI queries for environment detection

文档参考来源:
https://www.fireeye.com/blog/threat-research/2016/10/increased_use_ofwmi.html
http://www.antiy.com/response/anti-virtual-machine-and-anti-sandbox-in-malware.html
http://bbs.pediy.com/showthread.php?t=119969

上一篇 下一篇

猜你喜欢

热点阅读