虚拟机检测技术研究资料下载.pdf

上传人:wj 文档编号:5966780 上传时间:2023-05-05 格式:PDF 页数:4 大小:1.71MB
下载 相关 举报
虚拟机检测技术研究资料下载.pdf_第1页
第1页 / 共4页
虚拟机检测技术研究资料下载.pdf_第2页
第2页 / 共4页
虚拟机检测技术研究资料下载.pdf_第3页
第3页 / 共4页
虚拟机检测技术研究资料下载.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

虚拟机检测技术研究资料下载.pdf

《虚拟机检测技术研究资料下载.pdf》由会员分享,可在线阅读,更多相关《虚拟机检测技术研究资料下载.pdf(4页珍藏版)》请在冰点文库上搜索。

虚拟机检测技术研究资料下载.pdf

因此,高级的恶意软件希望在执行前判断它们所处的运行环境,若是在虚拟机中执行,它们会调整自己的行为或者拒绝执行。

理论上,更高级的恶意软件(如VMBR:

VirtualMachineBasedRootkit)完全有可能使用虚拟机来运行,从而达到更高的隐蔽性。

Bluepill就是这样的例子。

这样的话,反恶意软件的研究人员也必须寻找检测虚拟环境的方法。

由此可见,虚拟环境检测技术不仅对于恶意软件的研究人员有着很大的价值,对反恶意软件的研究人员也有很重要的意义。

到目前为止,x86架构是最流行的处理器架构。

因此,本文主要以x86架构下的虚拟环境为例进行分析,剩余部分按照如下方式组织:

第2节描述了一些术语和虚拟环境检测的基本原理;

第3节讨论了现有的虚拟环境检测方法;

第4节是总结和展望。

2背景知识在介绍现有的虚拟机检测技术之前,我们首先描述了本文中使用的一些术语。

Popek和Goldberg将虚拟机(VM:

VirtualMachine)定义为“真实机器的一个有效的、隔离的复制品”1。

要实现虚拟机,必须插入一个中间层,这个中间层就是虚拟机监控器(VMM:

VirtualMachineMonitor)。

虚拟机监控器,又称为Hypervisor,是一个控制程序,用于提供虚拟机的抽象。

它和硬件进行通信,允许在单一物理主机上模拟出多个虚拟机,并提供虚拟机之间的隔离,每个虚拟机上可以独立的运行操作系统。

Popek和Goldberg认为,VMM应当具有以下三个属性1:

(1)等价性:

一个运行于VMM下的程序,其行为应与直接运行于本质上一样的物理机上时的行为完全一2算机安全2009.12学术.技术致。

其中“本质上一样”意味着,运行在VMM之上的应用程序应该和直接运行于真实物理主机上时表现出一致的效果,但可能出现两类异常:

资源可用性异常(RAE:

ResourcesAvailabilityException)和时间依赖异常(TDE:

TimingDependencyException)。

(2)资源控制:

VMM应该对系统资源有完全的控制能力。

(3)效率性:

机器指令中的绝大多数指令应该在没有VMM的干预下执行。

为了方便解释下面的术语,先介绍一下IA32的特权级层次。

IA32支持四级特权级:

环0、环1,环2,环3。

如图1所示。

其中环0(即通常说的内核态)用于操作系统内核服务。

环1、环2为设备驱动使用,环3(即通常所说的用户态)为普通应用程序使用。

在大多数操作系统实现中,环1和环2没有使用。

图1IA32架构的特权级层次Popek和Goldberg根据机器指令的行为对其进行如下分类1:

(1)特权级指令:

是指当处理器处于用户态时执行会自陷(Trap),而处于内核态不自陷的指令。

(2)敏感指令:

是指其执行会影响虚拟机监控器或虚拟机状态的指令。

(3)普通指令:

即非敏感非特权指令。

根据此分类,Popek和Goldberg指出,一台物理机能够被完全虚拟化的条件是所有敏感指令的集合是特权级指令的一个子集1。

而目前流行的x86平台,它包含17条敏感而非特权指令2,这些指令是失效静默的,不会产生自陷,因此,它是不可完全虚拟化的。

通过放宽对效率性的要求,许多按Popek和Goldberg对虚拟机监控器的定义应归类为不可虚拟的ISA也有自己的虚拟机监控器,如x86平台的VMware、Xen等等。

因为等价性中的资源可用性异常和时间依赖异常的存在,理论上允许检测虚拟机的可能。

由x86平台下的虚拟机的实现方式可知,因为x86平台下存在一些非敏感非特权指令,为了正确地进行虚拟化,必须对这些指令进行模拟。

这种模拟使得虚拟机和真实主机存在一些差异,利用这些差异就可以检测虚拟机的存在。

此外,这种模拟还会导致应用程序在虚拟机上执行比在真实主机上执行要慢,因此,可以通过相对性能的方法来检测它们。

另外,许多虚拟机和模拟器在实现中,存在一些特征字符串和缺陷,使得能够通过特征字符串和缺陷来检测到虚拟环境的存在。

3现有的虚拟环境检测技术虚拟机按照实现方式的不同,可以分为软件虚拟机、硬件辅助的虚拟机。

总的来说,虚拟机检测技术主要从两个方法来入手:

(1)虚拟环境和真实物理环境的本质差异;

(2)在虚拟环境和真实物理主机上的外在表现。

如何检测硬件辅助的虚拟机仍然是一个开放的问题,因此,我们下面主要分析现有的软件虚拟机检测技术。

为了方便说明,下面介绍的检测技术都是基于现有的比较流行的虚拟平台的。

3.1利用内存差异的检测方法这种方法最典型的代表使用IDT(InterruptDescriptorTable)或LDT(LocalDescriptorTable)的检测方法。

这种方法利用了虚拟机和真实主机中重要的操作系统的某些关键数据结构的不同位置来判断执行环境是否是虚拟机。

这类方法对VMware、VirtualPC都比较有效。

前面提到x86的ISA中存在17条敏感非特权指令,其中包括SIDT、SLDT和SGDT,它们可以在用户态使用。

使用它们可以获取IDT、LDT和GDT(GlobalDescriptorTable)的信息。

因为只有一个IDTR寄存器、一个GDTR寄存器和一个LDTR寄存器,但是有两类操作系统在运行:

虚拟机系统和真实主机系统。

为了能够正确地虚拟化,每个虚拟机都应该维持这几个描述表的“影子”拷贝,虚拟机监控器必须改变虚拟机中描述表的位置。

这样就会使虚拟机和真实主机产生一个不一致,使用这个不一致可以用来判断虚拟机的存在。

例如,使用IDT检测方法的主要思想是:

通过检测IDT的基地址是否超过某个特定值,来判断是否存在虚拟机。

比较有名的Redpill工具3和ScoobyDoo5就使用了该方法。

Redpill的作者Rutkowska注意到,在VMware的客户机系统中,IDT通常位于0xffXXXXXX处;

而在VirtualPC的客户机系统中,IDT通常位于0xe8XXXXXX处。

而在真实的主机环境中,IDT的值通常在0x80ffffff(对Windows而言)和0xc0ffffff(对Linux而言)。

Redpill仅仅查看SIDT指令返回的第一个字节的代码,如果它大于0xd0,则判断处于虚拟机中,否则,在真实主机中。

Redpill的代码如下:

#includeintmain()unsignedcharm2+4,rpill=x0f32009.12计算机安学术.技术x01x0dx00x00x00x00xc3;

*(unsigned*)&

rpill3)=(unsigned)m;

(void(*)()&

rpill)();

printf(idtbase:

%#xn,*(unsigned*)&

m2);

if(m50xd0)printf(InsideMatrix!

n,m5);

elseprintf(NotinMatrix.n);

return0;

但是,IDT检测方法有一个缺点,它在有多个CPU的机器上误警率太高。

因为多个CPU的机器上,每个处理器有不同的IDT,IDT的基地址在不同时刻所取得的值并不相同。

为此,DannyQuist和ValSmith提出了使用LDT的检测方法4。

LDT检测方法和IDT的方法类似,但是它在具有多个CPU的环境时检测的表现非常好。

总的来说,这类方法简单有效,通用性强,虚拟机实现不能避免此类差异。

3.2利用相对性能的检测方法该方法通过选择一段经过精心设计的代码,通过比较该代码在真实物理主机和目标主机上运行的相对时间来判断是否存在虚拟机。

当然,为了进行这种比较,该方法依赖于先前获取的各种配置情况下的物理主机上代码的执行时间,同时,假定能够通过某些方法(如硬件配置探测技术)获取目标主机的配置,通过在目标主机上执行选择的代码获得需要的执行时间。

JasonFranklin等人就使用了这种思想,他们提出的方法不需要获得目标主机的精确配置,因此,JasonFranklin称他们所使用的方法为FuzzyBenchmake7方法。

实验证明,该方法能够检测出VMware、VirtualPC、Xen等的存在。

其检测框架如图2所示。

不仅如此,这类方法是一种通用的方法,不依赖于具体的软件虚拟机的实现方法。

这种方法的缺点是需要知道目标主机的硬件配置信息。

但是,这个前提通常很容易得到满足。

如在进行恶意软件分析时,恶意软件很容易探测出目标主机的配置信息。

图2FuzzyBenchmarking检测框架3.3利用虚拟处理器的异常行为的检测方法目前,该方法主要通过利用虚拟处理器的异常行为来判断虚拟机是否存在。

为了处理如客户机和宿主机进行通信等有关问题,一些虚拟机引入了一些“额外”的非标准x86指令集的指令。

目前有两类虚拟处理器的异常行为可以用来检测虚拟机是否存在:

(1)查看运行环境是否支持虚拟机相关的机器语言指令;

(2)查看客户机和宿主机的通信信道是否存在。

但是这类方法依赖于具体的虚拟机实现,不具有通用性。

由Lallous所写的VMDetect6工具就是利用了第一种思想。

该方法非常有效,而且很难避免。

以检测VirtualPC为例,VMDetect执行过程如下:

(1)注册它自己对无效操作码的处理函数;

(2)执行VirtualPC相关的非标准的IA32指令;

(3)如果处理器执行该指令,则说明在VirtualPC环境中;

(4)如果自己注册的处理函数被执行,则说明是一个真实的主机环境。

以VMware为例说明如何使用检测“backdoor”的存在来检测VMware的存在。

VMware提供宿主机-寄宿机之间的相互通信的机制。

但该机制有一个缺陷:

当在真实主机环境中的保护模式之下运行,执行特权的IN指令会产生一个异常,该异常能够被应用程序捕获。

但是运行在VMware下时,没有异常产生,只是EBX中被写入了值“VMXh”(该值是VMware的产品ID)。

因此,可以使用该思想来检测VMware的存在。

VMDetect和ScoobyDoo工具就利用了该思想。

其检测代码的关键部分如下:

moveax,564d5868h;

VMXhmovecx,0ah;

getVMwareversionmovdx,5658h;

VXineax,dxcmpebx,564d5868h;

VMXhjedetected3.4其他检测方法使用虚拟硬件指纹也可以用来检测软件虚拟机的存在。

如VMware默认的网卡的MAC地址的前缀是“00-05-69,00-0C-29或00-50-56”,Xen默认的网卡的MAC地址的前缀是“00-16-3e”。

通过查看网卡的MAC地址,可以判断出当前执行环境是否是虚拟机。

当然,默认的网卡MAC地址可以通过修改配置文件来避免,而且这种修改通常非常容易。

此外,还可以通过检测特定的硬件控制器、BIOS、显卡、CopyRight等特征字符串进行检测。

对VMware而言,还可以通过检测Windows的注册表中特定的值,或者检测内存中是否有VMwareTools的踪迹来判断是否是处于VMware虚拟机中。

总之,这类方法不通用,一般能够通过对虚拟机的实现进行修改来避免检测。

4总结与展望虚拟机检测技术对于恶意攻击者、恶意软件的作者和反恶意软件的研究人员都有着比较重要的意义。

不仅如此,了解虚拟机的检测技术还能够促使提供虚拟平台的软件厂商有针对性地改进它们的产品,增强其产品的竞争力。

本文中主要分析了虚拟机检测技术的原理,同时分析了现有的虚拟机检测技术的基本思想,并分别指出了它们的优缺(下转第13页)132009.12计算机安学术.技术度上弥补误用检测中模式匹配分析的不足。

给出一个区间划分,也就是说给出一个可信区间6,当事件流量在这个可信区间的事件属于安全的事件,当流量较高或较低从而超出了置信区间时,认为是可疑事件从而引起管理员的注意。

如果所研究的随机变量X可以表示成很多独立的随机变量X1,X2,?

Xn。

只要每个Xi(i=1,2?

n)对X只起微小的作用,不管这些Xi服从什么分布,在n较大的情况下,就可以认为X服从正态分布。

由于事件流量是独立的随机变量。

因此这些测量可以使用上述理论进行估计。

比如一天某个ID事件的流量为Xi(i=1,2?

n),第n天的事件流量为Xn。

抽取无异常的n天的同一ID事件流量作为样本,分别标记为X1,X2,?

那么样本均值。

样本方差为。

样本标准差为。

所以,置信度为的置信区间为。

其中,可以根据正态分布表查得。

这样就知道了置信区间。

(需要补充的是:

管理员可以根据实际情况合适的调整样本数n、样本的平方和以及样本均值的平方,进而调整置信区间)。

如果某天的测量在此置信区间内,则认为事件流量正常,否则认为异常,从而引起管理员的注意,对日志进行分析查找异常产生的原因并进行处理。

6结论通过日志分析系统存在的安全问题是目前信息安全领域研究的一个热点。

对日志记录进行有效的保护,是正确分析日志的基础。

日志的类型、来源、格式千差万别,全面分析日志必须解决日志内容的准确解析、记录格式的统一、海量信息的聚类、关联、融合和自动分析等关键技术问题。

参考文献:

1林辉、窦.系统日志的安全保护J.计算机工程,2003,29(17):

130-132.2https:

/engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/.3牛少彰.信息安全概论M.北京邮电大学出版社,2004.193-202.4http:

/http:

/梁、宋宗水、许艳美.基于统计的网络流量异常检测模型J.计算机工程,2005,31(24):

123-124.作者简介:

吴静(1982-),女,硕士研究生,主要研究方向:

信息安全;

王开云,男,硕士,研究员;

赵强,男,硕士,研究员;

陈志文,男,硕士,工程师。

收稿日期:

2009-05-19点。

当然,虚拟机的检测技术才刚刚起步,还有很多问题需要我们继续研究。

目前,大部分比较有效的检测方法都是基于虚拟机实现细节的。

提供虚拟平台的软件厂商也在不断地修补它们的产品,可以肯定的是,未来可以被用来检测的实现细节会越来越少,如何开发出通用的虚拟检测技术仍然任重道远,我认为利用相对性能的检测方法最通用,而且也非常有效,但是比较繁琐,未来可以在此方向上重点研究,提高检测效率。

另外,随着未来硬件辅助虚拟化技术的成熟,使用硬件辅助虚拟机的应用很普遍,因此,硬件辅助的虚拟机检测技术也是未来研究的一个热点。

1PopekG,GoldbergR.FormalRequirementsforVirtualizableThirdGenerationArchitectures.CommunicationsoftheACMJ,17(7):

July1974,413-421.2J.RobinandC.Irvine.AnalysisoftheIntelPentiumsAbilitytoSupportaSecureVirtualMachineMonitor.InProceedingsofthe9thUSENIXSecuritySymposiumC,Aug.2000.3http:

/invisiblethings.org/papers/redpill.html.4DannyQuist,ValSmith.DetectingthePresenceofVirtualMachinesUsingtheLocalDataTable.http:

/doo.htm.6http:

/Franklin,MarkLuketal.OperatingsystemsreviewJ,0163-5980,2008Vol.42No.3.作者简介:

王宝林(1982-),男,硕士研究生,研究方向:

信息安全、虚拟化技术;

杨明(1968-),男,教授,研究方向:

组播通信,密码学与网络安全;

张永辉(1979-),男,硕士研究生,研究方向:

信息安全、虚拟化技术。

2009-05-22(上接第3页)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2