马了马了
简介
虚拟技术是云计算的基础,而针对当前的虚拟化环境的安全检测。而虽然说虚拟化,其实当前虚拟技术的实现的一个基本共识就是运行在虚拟环境中的系统并不知道自己位于虚拟环境。那么对于红方来说,如何判断自己是在虚拟环境还是物理设备主机,对于制定针对性的安全方案尤为重要。除此之外,当前反病毒引擎的一个重要思想沙箱也是基于虚拟环境检查病毒行为。而相应的,病毒如何判断自己在虚拟环境还是真实设备也显得重要(可以调整自己的行为,规避查杀)。
当前主流的虚拟化实现方案
##### 硬件虚拟化(VM)
- qemu
- kvm
- vmware
- miscrosoft
- oracle
- xen
- bochs
##### 容器
- chroot
- docker
- lxc
这里主要分析VM,主要是qemu和Vmware。
VMdetect
Vmtect是多年前,针对Vmware
虚拟机的检测。但是时间比较长远了,很多场合不再适用。
通过特权指令检测虚拟机
Vmware为宿主机和虚拟机间提供了相互沟通的方式,使用IN
指令读取特定端口的数据进行通讯,但是IN
本身属于特权指令,在出于保护模式的宿主机直接运行时会触发EXCEPTION_PRIV_INSTUCTION
异常(除非权限运行),而虚拟机不会发生异常。
利用IDT基址检测虚拟机
利用LDT和GDT检测虚拟机
基于STR检测
基于注册表检测
基于时间差检测
基于虚拟硬件指纹检测
这一部分泉哥在看雪上有一篇很详细虚拟机检测技术剖析
Command-Line
虚拟的一些设备和真实物理主机设备信息有些差异,可以通过一些特殊指令获得相关信息。
dmidecode(need root)
dmidecode指令可以获取系统硬件相关的一些信息,原理是将DMI数据库信息解码,输出的信息包括BIOS、系统、主板、处理器、内存、缓存等。
点击收藏 | 2
关注 | 1