随着高级可持续攻击威胁对抗技术的不断发展,针对恶意代码进行分析,检测未知恶意代码,经常利用虚拟机技术。RSA展会也有很多安全厂商使用这些技术进行反APT分析,传统的反病毒厂商和僵尸网络追踪团队也都利用虚拟机进行大量的分析获取样本运行的海量信息进行分析处理。厂商们所使用的虚拟机软件通常包括VMware、VirtualBox等,这些虚拟机可以在一台物理计算机上模拟出多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作。攻击者为了逃避这些虚拟机以及病毒分析沙箱,会在恶意程序中加入检测虚拟机及沙箱的代码,以判断程序所处的运行环境。当发现程序处于虚拟机沙箱中时,它就会改变操作行为隐蔽恶意动作,逃避检测。
虚拟机识别包括对系统的注册表、文件系统、进程识别。虚拟机的注册表中会记录虚拟机信息相关的键值,文件系统中有与虚拟机相关的文件、文件夹,任务进程中,也会运行一些特殊的进程,这类进程名可作为识别虚拟机检测的依据。例如判断%System32\drivers\目录下是否存在hgfs.sys、prleth.sys、vmhgfs.sys驱动文件,其中hgfs.sys