当前位置:文档之家› 虚拟机检测技术剖析

虚拟机检测技术剖析

虚拟机检测技术剖析
虚拟机检测技术剖析

虚拟机检测技术剖析

作者:riusksk (泉哥)

主页:https://www.doczj.com/doc/ed5039640.html,

前言

在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,因此它在恶意软件领域中是应用越来越来广泛。这里我们所谓的虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件(比如VMware,Virtual PC ,V irtualBox),你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。攻击者为了提高恶意程序的隐蔽性以及破坏真实主机的成功率,他们都在恶意程序中加入检测虚拟机的代码,以判断程序所处的运行环境。当发现程序处于虚拟机(特别是蜜罐系统)中时,它就会改变操作行为或者中断执行,以此提高反病毒人员分析恶意软件行为的难度。本文主要针对基于Intel CPU的虚拟环境VMware中的Windows XP SP3系统进行检测分析,并列举出当前常见的几种虚拟机检测方法。

方法一:通过执行特权指令来检测虚拟机

Vmware为真主机与虚拟机之间提供了相互沟通的通讯机制,它使用“IN”指令来读取特定端口的数据以进行两机通讯,但由于IN指令属于特权指令,在处于保护模式下的真机上执行此指令时,除非权限允许,否则将会触发类型为“EXCEPTION_PRIV_INSTRUCTION”的异常,而在虚拟机中并不会发生异常,在指定功能号0A(获取VMware版本)的情况下,它会在EBX中返回其版本号“VMXH”;而当功能号为0x14时,可用于获取VMware内存大小,当大于0时则说明处于虚拟机中。VMDetect正是利用前一种方法来检测VMware的存在,其检测代码分析如下:

测试结果:

图1

如图1所示,VMDetect成功检测出VMWare的存在。

方法二:利用IDT基址检测虚拟机

利用IDT基址检测虚拟机的方法是一种通用方式,对VMware和Virtual PC均适用。中断描述符表IDT (Interrupt Descriptor Table)用于查找处理中断时所用的软件函数,它是一个由256项组成的数据,其中每一中断对应一项函数。为了读取IDT基址,我们需要通过SIDT指令来读取IDTR(中断描述符表寄存器,用于IDT在内存中的基址),SIDT指令是以如下格式来存储IDTR的内容:

由于只存在一个IDTR,但又存在两个操作系统,即虚拟机系统和真主机系统。为了防止发生冲突,VMM (虚拟机监控器)必须更改虚拟机中的IDT地址,利用真主机与虚拟机环境中执行sidt指令的差异即可用于检测虚拟机是否存在。著名的“红丸”(redpill)正是利用此原理来检测VMware的。Redpill作者在VMware上发现虚拟机系统上的IDT地址通常位于0xFFXXXXXX,而V irtual PC通常位于0xE8XXXXXX,而在真实主机上正如图2所示都位于0x80xxxxxx。Redpill仅仅是通过判断执行SIDT指令后返回的第一字节是否大于0xD0,若是则说明它处于虚拟机,否则处于真实主机中。Redpill的源码甚是精简,源码分析如下:

测试结果如图2所示:

图2

利用此IDT检测的方法存在一个缺陷,由于IDT的值只针对处于正在运行的处理器而言,在单CPU中它是个常量,但当它处于多CPU时就可能会受到影响了,因为每个CPU都有其自己的IDT,这样问题就自然而然的产生了。针对此问题,Offensive Computing组织成员提出了两种应对方法,其中一种方法就是利

用Redpill反复地在系统上循环执行任务,以此构造出一张当前系统的IDT值变化统计图,但这会增加CPU负担;另一种方法就是windows API函数SetThreadAffinityMask()将线程限制在单处理器上执行,当执行此测试时只能准确地将线程执行环境限制在本地处理器,而对于将线程限制在VM处理器上就可能行不通了,因为VM是计划在各处理器上运行的,VM线程在不同的处理器上执行时,IDT值将会发生变化,因此此方法也是很少被使用的。为此,有人提出了使用LDT的检测方法,它在具有多个CPU的环境下检测虚拟机明显优于IDT检测方法,该方法具体内容参见下节内容。

方法三:利用LDT和GDT的检测方法

在《Intel? 64 and IA-32 Architecture Software Developer’s Manual V olume 3A: System Programming Guide》第二章的V ol.3 2-5 一页(我的Intel开发手册是2008版的)中对于LDT和GDT的描述如下(以下内容为个人翻译):

在保护模式下,所有的内存访问都要通过全局描述符表(GDT)或者本地描述符表(LDT)

才能进行。这些表包含有段描述符的调用入口。各个段描述符都包含有各段的基址,访问权

限,类型和使用信息,而且每个段描述符都拥有一个与之相匹配的段选择子,各个段选择子

都为软件程序提供一个GDT或LDT索引(与之相关联的段描述符偏移量),一个全局/本地

标志(决定段选择子是指向GDT还是LDT),以及访问权限信息。

若想访问段中的某一字节,必须同时提供一个段选择子和一个偏移量。段选择子为段提

供可访问的段描述符地址(在GDT 或者LDT 中)。通过段描述符,处理器从中获取段在线

性地址空间里的基址,而偏移量用于确定字节地址相对基址的位置。假定处理器在当前权限

级别(CPL)可访问这个段,那么通过这种机制就可以访问在GDT 或LDT 中的各种有效

代码、数据或者堆栈段,这里的CPL是指当前可执行代码段的保护级别。

……

GDT的线性基址被保存在GDT寄存器(GDTR)中,而LDT的线性基址被保存在LDT

寄存器(LDTR)中。

由于虚拟机与真实主机中的GDT和LDT并不能相同,这与使用IDT的检测方法一样,因此虚拟机必须为它们提供一个“复制体”。关于GDT和LDT的基址可通过SGDT和SLDT指令获取。虚拟机检测工具Scoopy suite的作者Tobias Klein经测试发现,当LDT基址位于0x0000(只有两字节)时为真实主机,否则为虚拟机,而当GDT基址位于0xFFXXXXXX时说明处于虚拟机中,否则为真实主机。具体实现代码

测试结果如图3所示:

图3

方法四:基于STR的检测方法

在保护模式下运行的所有程序在切换任务时,对于当前任务中指向TSS的段选择器将会被存储在任务寄存器中,TSS中包含有当前任务的可执行环境状态,包括通用寄存器状态,段寄存器状态,标志寄存器状态,EIP寄存器状态等等,当此项任务再次被执行时,处理器就会其原先保存的任务状态。每项任务均有其自己的TSS,而我们可以通过STR指令来获取指向当前任务中TSS的段选择器。这里STR(Store task register)指令是用于将任务寄存器(TR) 中的段选择器存储到目标操作数,目标操作数可以是通用寄存器或内存位置,使用此指令存储的段选择器指向当前正在运行的任务的任务状态段(TSS)。在虚拟机和真实主机之中,通过STR读取的地址是不同的,当地址等于0x0040xxxx时,说明处于虚拟机中,否则为真实主机。实现代码如下:

图4

方法五:基于注册表检测虚拟机

在windows虚拟机中常常安装有VMware Tools以及其它的虚拟硬件(如网络适配器、虚拟打印机,USB 集线器……),它们都会创建任何程序都可以读取的windows注册表项,因此我们可以通过检测注册表中的一些关键字符来判断程序是否处于虚拟机之中。关于这些注册表的位置我们可以通过在注册表中搜索关键词“vmware”来获取,下面是我在VMware下的WinXP中找到的一些注册表项:

项名:HKEY_CLASSES_ROOT\Applications\VMwareHostOpen.exe

项名:

HKEY_CLASSES_ROOT\Installer\Products\C2A6F2EFE6910124C940B2B12CF170FE\ProductName

键值“VMware T ools”

项名:

HKEY_CLASSES_ROOT\Installer\Products\C2A6F2EFE6910124C940B2B12CF170FE\SourceList\Pack ageName

键值:VMware T ools.msi

项名:HKEY_CURRENT_USER\Printers\DeviceOld

键值:_#VMwareVirtualPrinter,winspool,TPVM:

项名:HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\T arget Id 0\Logical Unit Id 0\Identifier

键值:VMware Virtual IDE Hard Drive

项名:HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 1\Scsi Bus 0\T arget Id 0\Logical Unit Id 0\Identifier

键值:NECVMWar VMware IDE CDR10

项名:

HKEY_LOCAL_MACHINE\SOFTW ARE\Classes\Installer\Products\C2A6F2EFE6910124C940B2B12CF 170FE\ProductName

键值:VMware T ools

项名:

HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\Windows\CurrentV ersion\Installer\UserData\S-1-5-18\Products\C2A6F2EFE6910124C940B2B12CF170FE\InstallProperties\DisplayName

键值:VMware T ools

项名:

HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\Windows\CurrentV ersion\Reinstall\0002\DeviceDes c

键值:VMware SVGA II

项名:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion\NetworkCards\2\Description

键值:VMware Accelerated AMD PCNet Adapter

项名:HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware T ools

项名:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002 BE10318}\0000\DriverDesc

键值:VMware SVGA II

项名:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1- 08002BE10318}\0000\ProviderName

键值:VMware, Inc.

项名:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002 bE10318}\0001\DriverDesc

键值:VMware Accelerated AMD PCNet Adapter

项名:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-0800 2BE10318}\0000\DriverDesc

键值:VMware SCSI Controller

项名:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\ThinPrint Print Port Monitor for VMWare

除以上这些表项之外,还有很多地方可以检测,特别是虚拟机提供的虚拟化软硬件、服务之类,比如文件共享服务,VMware 物理磁盘助手服务,VMware Ethernet Adapter Driver,VMware SCSI Controller等等的这些信息都可作为检测虚拟机的手段。这里我们就以其中某表项为例编程举例一下,其它表项检测方法同理,具体代码如下:

测试结果如图5所示:

图5

方法六:基于时间差的检测方式

本方法通过运行一段特定代码,然后比较这段代码在虚拟机和真实主机之中的相对运行时间,以此来判断是否处于虚拟机之中。这段代码我们可以通过RDTSC指令来实现,RDTSC指令是用于将计算机启动以来的CPU运行周期数存放到EDX:EAX里面,其中EDX是高位,而EAX是低位。下面我们以xchg ecx, eax 一句指令的运行时间为例,这段指令在我的真实主机windows 7系统上的运行时间为0000001E,如图6所示:

图6

而该指令在虚拟机WinXP下的运行时间为00000442,如图7所示:

图7

两者之间的运行时间明显差别很多,在虚拟机中的运行速度远不如真实主机的,一般情况下,当它的运行时间大于0xFF时,就可以确定它处于虚拟机之中了,因此不难写出检测程序,具体实现代码如下:

图8

方法七:利用虚拟硬件指纹检测虚拟机

利用虚拟硬件指纹也可用于检测虚拟机的存在,比如VMware默认的网卡MAC地址前缀为“00-05-69,00-0C-29或者00-50-56”,这前3节是由VMware分配的唯一标识符OUI,以供它的虚拟化适配器使用。在我的VMWare WinXP下的MAC地址为00-0C-29-5B-D7-67,如图9所示:

图9

但由于这些可经过修改配置文件来绕过检测。另外,还可通过检测特定的硬件控制器,BIOS,USB控制器,显卡,网卡等特征字符串进行检测,这些在前面使用注册表检测方法中已有所涉及。另外之前在看雪论坛上也有朋友提到通过检测硬盘Model Number是否含有“vmware”或“virtual”等字样来实现检测虚拟机的功能,网址见这(附源码):https://www.doczj.com/doc/ed5039640.html,/showthread.php?t=110046。

总结

国外SANS安全组织的研究人员总结出当前各种虚拟机检测手段不外乎以下四类:

●搜索虚拟环境中的进程,文件系统,注册表;

●搜索虚拟环境中的内存

●搜索虚拟环境中的特定虚拟硬件

●搜索虚拟环境中的特定处理器指令和功能

因为现代计算系统大多是由文件系统,内存,处理器及各种硬件组件构成的,上面提到的四种检测手段均包含了这些因素。纵观前面各种检测方法,也均在此四类当中。除此之外,也有人提出通过网络来检测虚拟机,比如搜索ICMP和TCP数据通讯的时间差异,IP ID数据包差异以及数据包中的异常头信息等等。随着技术研究的深入,相信会有更多的检测手段出现,与此同时,虚拟机厂商也会不断进化它们的产品,以增加anti-vmware的难度,这不也正是一场永无休止的无烟战争!

虚拟机检测技术剖析

虚拟机检测技术剖析 作者:(泉哥) 主页: 前言 在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,因此它在恶意软件领域中是应用越来越来广泛。这里我们所谓的虚拟机()是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件(比如,),你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。攻击者为了提高恶意程序的隐蔽性以及破坏真实主机的成功率,他们都在恶意程序中加入检测虚拟机的代码,以判断程序所处的运行环境。当发现程序处于虚拟机(特别是蜜罐系统)中时,它就会改变操作行为或者中断执行,以此提高反病毒人员分析恶意软件行为的难度。本文主要针对基于的虚拟环境中的系统进行检测分析,并列举出当前常见的几种虚拟机检测方法。 方法一:通过执行特权指令来检测虚拟机 为真主机与虚拟机之间提供了相互沟通的通讯机制,它使用“”指令来读取特定端口的数据以进行两机通讯,但由于指令属于特权指令,在处于保护模式下的真机上执行此指令时,除非权限允许,否则将会触发类型为“”的异常,而在虚拟机中并不会发生异常,在指定功能号0A(获取版本)的情况下,它会在中返回其版本号“”;而当功能号为时,可用于获取内存大小,当大于时则说明处于虚拟机中。正是利

测试结果: 图 如图所示,成功检测出的存在。 方法二:利用基址检测虚拟机 利用基址检测虚拟机的方法是一种通用方式,对和均适用。中断描述符表()用于查找处理中断时所用的软件函数,它是一个由项组成的数据,其中每一中断对应一项函数。为了读取基址,我们需要通过

vmvare虚拟化平台巡检细则和方法

vmvare虚拟化平台巡检细则和方法 1.1 检测多个主机之间是否有相同的软件版本 通过图形化方法: 为了获得ESXi主机的版本信 息,使用VS Client,点击给定ESXi 主机的配置标签。 为了获得VC的版本信息,通过 使用VS Client,在主菜单上选择帮助 正常异常 -〉关于虚拟化架构选项 ESXi 5.0.0 1311175 命令行方法: 以root权限登陆ESXi 主机,在 命令行提示符下输入“vmware –v” 1.2 检查网络和存储配置信息是否一致 图形化方法: 正常异常 在VS Client里面, 导航到

Configuration -> Networking and Network Adapters 检测: 虚拟交换机数量 虚拟交换机命名 物理网卡数量 物理网卡的速度/全双 工 端口组类型 是否有冗余 命令行方法: 在命令行提 示符下键入 “esxcfg –vswitch –l” 列出多个虚拟交换机和端口组信息 在命令行提示符下键入 “esxcfg -nics –l” 列出多个物理网卡,网卡的速度,制造商,连接状态 1.3 检查服务器配置信息是否相同,是否有不同的CPU 类型

图形化方法: 在VS Client里面, 导航到每个主机的Configuration -> Processors 检测: Cpu型号 处理器速度 处理器数量 每个物理处理器上是否有多核核数是否相同 超线程是否开启 逻辑cpu数量正常异常 1.4 是否配置NTP时钟同步服务 图形化方法: 在VS Client中, 导航到Configuration -> Security Profile 并且观察NTP Client 选择是否开启了外出连接选项。正常异常

盲自适应多用户检测

一、自适应滤波部分 用LMS 、RLS 和Kalmanz 算法对CDMA 系统进行盲多用户检测仿真。系统模型见课本第4.13节,并对算法的统计性能进行讨论。 1, 原理说明: 由于是要对DS-CDMA 系统进行盲多用户检测,所以,首先要了解DS-CDMA 系统。 DS-CDMA 全称为Direct Sequence —Code Division Multiple Access ,即直接序列码分多址。从原理上来说,DS-CDMA 是通过将携带信息的窄带信号与高速地址码信号相乘而获得的宽带扩频信号。收端需要用与发端同步的相同地址码信号去控制输入变频器的载频相位即可实现解扩。 下面讨论地址码的获取: 1)m 序列的生产;m 序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移位寄存器产生的周期最长的序列。对于一个n 级反馈移位寄存器来说,最多可以有n 2个状态,对于一个线性反馈移位寄存器来说,全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为 12-n 。当n 级线性移位寄存器产生的序列{}i a 的周期为12-=n T 时,称{}i a 为n 级m 序列。下 面图1.1给出一个4级线性反馈移位寄存器。设初始状态为{}{ }0,0,0,1,,,0123=a a a a 。 图1.1 m 序列的产生 2)gold 序列的生产;gold 序列是1967年R.Gold 在m 序列基础上提出并分析的一种特性较好的伪

随机序列,它是由两个码长相等、码时钟速率相同的m序列优选对通过模2相加而构成的。gold序列的生产两种方法一为级联m序列移位寄存器,一为并联m序列移位寄存器。在本仿真中采用级联序列移位寄存器的构成方式。 由于其他部分在课本第4.13节中有了具体的介绍,在这就不在累述。 2,程序说明: multiuser_dectect.m和multiuser_dectect_D.m分别是主函数,其中multiuser_dectect.m为平稳高斯信道、用户不变的同步DCMA系统盲信道检测,multiuser_dectect_D.m为平稳高斯信道、用户变化的同步DCMA系统盲信道检测;m_sequence.m为m序列产生程序;gold_sequence.m为gold序列产生程序,它由没序列级联而成因此调用了m_sequence.m;Change_symbols.m为把符号[0 1]转化成[-1 1];Kalman_D.m和Kalman_S.m分别是Kalman算法的用户变化的同步DCMA系统盲信道检测和用户不变的同步DCMA系统盲信道检测,其主要区别在于接口上;LMS_D.m和LMS_S.m分别是LMS算法的用户变化的同步DCMA系统盲信道检测和用户不变的同步DCMA系统盲信道检测,其主要区别在于接口上;RLS_D.m和RLS_S.m 分别是RLS算法的用户变化的同步DCMA系统盲信道检测和用户不变的同步DCMA系统盲信道检测,其主要区别在于接口上。 函数接口介绍: ① [ sequence_out ] = Change_symbols( sequence_in ) 作用: 把符号[0 1]转化成[-1 1]; 输入: sequence_in——输入要转化序列; 输出: sequence_out——输出转化后的序列。 ② [gold_seq] = gold_sequence(connections1,connections2) 作用: gold序列产生; 输入: connections1——输入产生第一个m序列的生成多项式; connections2——输入产生第二个m序列的生成多项式; 输出: gold_seq——输出gold序列 ③ [m_seq] = m_sequence(connections); 作用: m序列产生; 输入: connections——输入产生m序列的生成多项式; 输出: m_seq——输出m序列 ④ [P1,P_i_n,y,correct,E_ex,KK,w] = Kalman_D(b,N,K,step,yN_step,S,SS,C_null,SNR,KK,w) 作用: 用户变化的同步DCMA系统盲信道检测的Kalman算法; 输入: b——信息符号序列; N——扩频增益; K——用户数;

恶意代码技术和检测方法

恶意代码及其检测技术 1.恶意代码概述 1.1定义 恶意代码也可以称为Malware,目前已经有许多定义。例如Ed Skoudis将Malware定义为运行在计算机上,使系统按照攻击者的意愿执行任务的一组指令。微软“计算机病毒防护指南”中奖术语“恶意软件”用作一个集合名词,指代故意在计算机系统上执行恶意任务的病毒、蠕虫和特洛伊木马。随着网络和计算机技术的快速发展,恶意代码的传播速度也已超出人们想象,特别是人们可以直接从网站获得恶意代码源码或通过网络交流代码。很多编程爱好者把自己编写的恶意代码放在网上公开讨论,发布自己的研究成果,直接推动了恶意代码编写技术发展。所以目前网络上流行的恶意代码及其变种层出不穷,攻击特点多样化。 1.2类型 按照恶意代码的运行特点,可以将其分为两类:需要宿主的程序和独立运行的程序。前者实际上是程序片段,他们不能脱离某些特定的应用程序或系统环境而独立存在;而独立程序是完整的程序,操作系统能够调度和运行他们;按照恶意代码的传播特点,还可以把恶意程序分成不能自我复制和能够自我复制的两类。不能自我复制的是程序片段,当调用主程序完成特定功能时,就会激活它们;能够自我复制的可能是程序片段(如病毒),也可能是一个独立的程序(如蠕虫)。

2.分析与检测的方法 恶意代码与其检测是一个猫捉老鼠的游戏,单从检测的角度来说。反恶意代码的脚步总是落后于恶意代码的发展,是被动的.目前基于主机的恶意代码检测方法主要有反恶意代码软件、完整性校验法以及手动检测,基于网络的检测方法主要有基于神经网络”、基于模糊识别“等方法,本文主要讨论基于主机的检测。 2.1 恶意代码分析方法 2.1.1 静态分析方法 是指在不执行二进制程序的条件下进行分析,如反汇编分析,源代码分析,二进制统计分析,反编译等,属于逆向工程分析方法。 (1)静态反汇编分析,是指分析人员借助调试器来对而已代码样本进行反汇编出来的程序清单上根据汇编指令码和提示信息着手分析。 (2)静态源代码分析,在拥有二进制程序的源代码的前提下,通过分析源代码来理解程序的功能、流程、逻辑判定以及程序的企图等。 (3)反编译分析,是指经过优化的机器代码恢复到源代码形式,再对源代码进行程序执行流程的分析。 2.1.2 动态分析方法 是指恶意代码执行的情况下利用程序调试工具对恶意代码实施跟踪和观察,确定恶意代码的工作过程对静态分析结果进行验证。

恶意代码检测与分析

恶意代码分析与检测 主讲人:葛宝玉

主要内容 背景及现状 1 分析与检测的方法 2 分析与检测常用工具 3 分析与检测发展方向 4

背景及现状 互联网的开放性给人们带来了便利,也加快了恶意代码的传播,特别是人们可以直接从网站获得恶意代码源码或通过网络交流代码。很多编程爱好者把自己编写的恶意代码放在网上公开讨论,发布自己的研究成果,直接推动了恶意代码编写技术发展。所以目前网络上流行的恶意代码及其变种层出不穷,攻击特点多样化。

分析与检测方法 恶意代码分析方法 静态分析方法 是指在不执行二进制动态分析方法 是指恶意代码执行的情况下利用程序调程序的条件下进行分析,如反汇编分析,源代码分析,二进制统计分析,反编译等,情况下,利用程序调试工具对恶意代码实施跟踪和观察,确定恶意代码的工作过程对静态分析结果进属于逆向工程分析方法。 ,对静态分析结果进行验证。

静态分析方法 静态反汇编静态源代码反编译分析分析 分析 在拥有二进制程是指分析人员借是指经过优化的序的源代码的前提下,通过分析源代码来理解程序的功能、流程、助调试器来对恶意代码样本进行反汇编,从反汇编出来的程序机器代码恢复到源代码形式,再对源代码进行程序执行流程的分析逻辑判定以及程序的企图等。 清单上根据汇编指令码和提示信息着手分析。 流程的分析。

动态分析方法 系统调用行为分析方法 常被应用于异常检测之中,是指对程序的正常行为分析常被应用于异常检测之中是指对程序的 正常行为轮廓进行分析和表示,为程序建立一个安全行 为库,当被监测程序的实际行为与其安全行为库中的正 常行为不一致或存在一定差异时,即认为该程序中有一 个异常行为,存在潜在的恶意性。 恶意行为分析则常被误用检测所采用,是通过对恶意程 则常被误用检测所采用是通过对恶意程 序的危害行为或攻击行为进行分析,从中抽取程序的恶 意行为特征,以此来表示程序的恶意性。

虚拟机的安全分析与管理1

参考文献:[1] 张蔷.萧照[M ].上海:上海人民美术出版社,1986.[2]王伯敏.中国绘画通史[M ].北京:三联书店,2008.[3]陈传席.中国山水画史(修订本)[M ].天津:天津人民美术出版社,2001.[4]滕固.唐宋绘画史[A ].诸家中国美术史著选汇[C ].长春:吉林美术出版社,1992.[5]陈高华.宋辽金画家史料[M ].北京:文物出版社,1984.[6]于安澜.画史丛书[M ].上海:上海人民美术出版社,1963. 的绘画中我们可以看到这种一种转变,由北方到南方,改变的不仅仅是地域,更多的是画家内在审美取向在发生着变化,这是由“写实性”向“写意性”的转变,在萧照面前,将展现的是绘画向“诗化”发展的巨大空间。《画继补遗》中“萧照比李唐笔法,潇洒超逸,余家旧有萧照画扇头,高宗题十四字:白云断处斜阳转,几曲青山献画屏。”此画,按庄肃自述,原藏于庄肃自己家中,因此描述应该可信。宋高宗还自题诗句,可见此画之珍贵。从宋高宗的题画诗中对画面寥寥寂景的描写,可以看出萧照在绘画中加入了对“诗意”的经营。《秋山红树图》现藏于辽宁省博物馆,是一幅绢本团扇小品。画面中具体无名款,为开版册页。在历代画史中未见著录。画的右上方钤有元“内府都省书画之印”,明“礼部评验书画关防骑缝半印”,折线上钤章“古稀天子”、“八征耄年之宝”、“太上皇之宝”三方,并有乾隆皇帝的题画诗“峭壁危滩野艇横,籁得红叶泛空轻;萧然秋景含斜照,泽人原未负名。”清代梁清标题签定为萧照作,但今人张珩认为“此图画法虽出李唐一派……虽是南宋人作品,未敢信为萧照手笔”。从整体画风看,应是出自李唐一派,此画远山渲染,青山渺渺,近处树石笔法刚健,行笔迅疾潇洒,墨法轻淡。画中描绘的是在山脚下的河滩头的秋天景致,画面近处船夫正在撑船,一行人正在顺着岸边山路上山。看萧照的《秋山红树图》(疑似),近处树木以夹叶勾出,笔法刚健,淡色填染,层次丰富,正如诗中所言“波痕如树树如烟,更是春阴小雨天”;面对富有江南特色的山川景致,萧照曾师法董源,在《画传》中说到“萧照画得北苑法,而皴法遒劲过之”,在《秋山红树图》中,前面山石行笔迅疾而潇洒,已有董源披麻皴的影子,只是萧照将那“绕指柔”化作了“百炼钢”;富有变化墨色与《山腰楼观图》的重、黑形成了鲜明的对比;《画传》中还记萧照“尤喜为奇峰怪石,望之有波涛汹涌,云屯风卷之势。”《秋山红树图》中的远景,墨法轻淡,客观上萧照融入了对江南山水间湿润水气的表达,氤氲之气跃然纸上。画家的绘画作品是鲜活的,正如他的生命一样,对于一个画家风格的界定,我们不能仅仅将目光停留在其绘画生命的某一个阶段,或者总以一个固定的角度去纵观他的一生绘画,而是应该更全面地去了解他的生平、他的学养以及他的生活癖好或者习惯,在这之后,我们眼里的他们会更加生动!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 2011年第·11期太原城市职业技术学院学报 Journal of TaiYuan Urban Vocational college 期 总第124期Nov2011[摘要]使用虚拟化技术,可以让多台虚拟机在一台实际的计算机系统上运行,近几年以来,虚拟化技术被 很多的单位和企业开始采用。虚拟机的安全性越来越被人们所重视, 虚拟机的安全威胁包括虚拟机之间的通信、宿主机与虚拟机之间的相互影响、虚拟机与虚拟机之间的相互影响、虚拟机的逃逸 技术、拒绝服务等。论文通过硬件和软件方面的安全防范方法来加强虚拟机的安全。 [关键词]虚拟机;安全;宿主机 [中图分类号]TN [文献标识码]A[文章编号]1673-0046(2011)11-0179-02 虚拟机的安全分析与管理 王佳 (山西金融职业学院,山西太原030008) 一、虚拟机概述虚拟机(VirtualMachine)指具有完整硬件系统功能,通过软件模拟,运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,我们可以在一台物理计算机上模拟出一台或多台虚拟的计算机,我们可以安装操作系统、安装应用程序、访问网络资源等等,这些虚拟机完全就像真正的计算机那样进行工作。对于在虚拟机中运行的应用程序来说,它就是一台真正的计算机,而对于我们来说,它只是运行在你物理计算机上的一个应用程序。二、虚拟机的安全威胁(一)虚拟机之间的通信虚拟机一般实现四个功能:多个组织共享一个物理机;在一台计算机上,有高保密要求和低保密要求的应用;合并一些服务到少数物理机上提供一个通用硬件平台;承载多个操作系统。前三种情况都有隔离的需要,第一种情况下,其他组织是无法访问它们的;第二和第三种情况下,这些虚拟机不应该被不相关的人访问,第四种情况,虚拟化的目标一般是为了实现系统之间的交互。相对于物理机,虚拟机的安全问题是比较独特的。例如,允许数据在虚拟机和主机之间传输的剪贴板技术,这个功能很容易被恶意程序利用,方便它们在系统之间传输。又如,某虚拟技术在操作系统内核中提供了虚拟层的按键和屏幕记录,甚至虚拟机内的加密连接可以被监控起来。如果虚拟机没有进行有效的隔离,它可以无障碍地进入宿主机,这在侧重运行的应用设计里比较常见,所以也存在较大的安全隐患,应该使用彼此一个适当的方法进行隔离。

虚拟机技术

虚拟机软件认识篇 虚拟机(VM)是支持多操作系统并行运行在单个物理服务器上的一种系统,能够提供更加有效的底层硬件使用。在虚拟机中,中央处理器芯片从系统其它部分划分出一段存储区域,操作系统和应用程序运行在“保护模式”环境下。 1.比较通俗的回答(适合没有电脑基础的朋友) 虚拟机,顾名思义就是虚拟出来的电脑,这个虚拟出来的电脑和真实的电脑几乎完全一样,所不同的是他的硬盘是在一个文件中虚拟出来的,所以你可以随意修改虚拟机的设置,而不用担心对自己的电脑造成损失,因此可以用来做试验什么的,呵呵,差不多就是这样了,不知道我说的能明白不^_^,简单说就是一句话,虚拟出来的电脑,你干什么都行。现在说一下虚拟机的软件,主要是两中,Virtual PC和VMware。软件的选择也是有门道滴,嘿嘿,简单来说,VPC的设置很简单,一路next就行了,VM设置相对麻烦一些,不过也不是麻烦很多,但是VM拥有更好的性能,可以说和真实的电脑性能完全一样,还可以用桥接的方式和现在的电脑互连^_^,可以研究的东西就更多了,呵呵 2.比较专业的回答(适合有一点电脑基础的朋友) 在一台电脑上将硬盘和内存的一部分拿出来虚拟出若干台机器,每台机器可以运行单独的操作系统而互不干扰,这些“新”机器各自拥有自己独立的CMOS、硬盘和操作系统,你可以像使用普通机器一样对它们进行分区、格式化、安装系统和应用软件等操作,还可以将这几个操作系统联成一个网络。在虚拟系统崩溃之后可直接删除不影响本机系统,同样本机系统崩溃后也不影响虚拟系统,可以下次重装后再加入以前做的虚拟系统。同时它也是唯一的能在Windows和Linux主机平台上运行的虚拟计算机软件。虚拟机软件不需要重开机,就能在同一台电脑使用好几个OS,不但方便,而且安全。虚拟机在学习技术方面能够发挥很大的作用。

亚信安全Deep-Security-for-VMware-产品方案

亚信安全Deep Security 9.6 for VMware产品方案 作者 日期

目录 第1章.概述 (3) 第2章.XXX虚拟化安全面临威胁分析 (3) 第3章.XXX虚拟化基础防护必要性 (4) 第4章.亚信安全虚拟化安全解决方案 (5) 第5章.XXX虚拟化安全部署方案 (7) 5.1.VM WARE平台部署方案 (7) 5.2.亚信安全虚拟安全方案集中管理 (7) 5.3.XXX虚拟化防护解决方案拓扑 (8) 第6章.亚信安全DEEPSECURITY介绍 (8) 6.1.D EEP S ECUIRTY架构 (8) 6.2.D EEP S ECUIRTY部署及整合 (9) 6.3.D EEP S ECUIRTY主要优势 (9) 6.4.D EEP S ECUIRTY模块 (10) 第7章.国内成功案例 (12)

第1章.概述 XXX内的大量服务器承担着为各个业务部门提供基础设施服务的角色。随着业务的快速发展,数据中心空间、能耗、运维管理压力日趋凸显。应用系统的部署除了购买服务器费用外,还包括数据中心空间的费用、空调电力的费用、监控的费用、人工管理的费用,相当昂贵。如果这些服务器的利用率不高,对企业来说,无疑是一种巨大的浪费。 在XXX,这些关键应用系统已经被使用Vmware服务器虚拟化解决方案。这解决企业信息化建设目前现有的压力,同时又能满足企业响应国家节能减排要求。 而服务器虚拟化使XXX能够获得在效率、成本方面的显著收益以及在综合数据中心更具环保、增加可扩展性和改善资源实施时间方面的附加利益。但同时,数据中心的虚拟系统面临许多与物理服务器相同的安全挑战,从而增加了风险暴露,再加上在保护这些IT资源方面存在大量特殊挑战,最终将抵消虚拟化的优势。尤其在虚拟化体系结构将从根本上影响如何对于关键任务应用进行设计、部署和管理情况下,用户需要考虑哪种安全机制最适合保护物理服务器和虚拟服务器。 亚信安全提供真正的解决方案以应对这些挑战。亚信安全目前已经开发出了一套灵活的方法可以和Vsphere6.0环境紧密结合,用于包括入侵检测和防护、防火墙、完整性监控与日志检查的服务器防御以及现在可以部署的恶意软件防护。所用架构主要是利用虚拟化厂商目前在其平台上增加的附加能力,诸如通过最近发布的VMware vSphere? 6和NSX Manager最新引入的附加能力。亚信安全提供必需的防护以提高在虚拟化环境中关键任务应用的安全性。 第2章.XXX虚拟化安全面临威胁分析 虚拟服务器基础架构除了具有传统物理服务器的风险之外,同时也会带来其虚拟系统自身的安全问题。新安全威胁的出现自然就需要新方法来处理。通过前期调研,总结了目前XXX虚拟化环境内存在的几点安全隐患。 ?虚拟机之间的互相攻击----由于目前XXX仍对虚拟化环境使用传统的防护模式,导致主要的防护边界还是位于物理主机的边缘,从而忽视了同一物理主机上不同虚拟机之间的互相攻击和互相入侵的安全隐患。 ?随时启动的防护间歇----由于XXX目前大量使用Vmware的服务器虚拟化技术,让XXX的IT服务具备更高的灵活性和负载均衡。但同时,这些随时由于资源动态调整关闭或开启虚拟机会导致防护间

容器和虚拟机安全性分析

容器和虚拟机安全性分析 IBM研究院(IBM Research)设计了一种衡量软件安全性的新方法:横向攻击剖面(HAP),它发现采取适当保护的容器与虚拟机一样安全,甚至来得更安全。 IBM研究院杰出工程师兼顶级Linux内核开发人员詹姆斯?博顿利(James Bottomley)说:“目前容器与虚拟机管理程序安全性谁更高这场争论方面最大的一个问题是,还没有人真正开发出一种方法来衡量安全性,所以争论完全仅限于定性方面(由于接口宽度,虚拟机管理程序“让人觉得”比容器来得更安全),但实际上还没有人进行过定量比较。”为了满足这个要求,博顿利设计出了横向攻击剖面(HAP),这种新方法旨在以一种可以客观衡量的方法来描述系统安全。博顿利发现,“采用精心设计的安全计算模式(seccomp)剖面(可阻止意外系统调用)的Docker容器提供了与虚拟机管理程序大致相当的安全性。” 博顿利先定义了纵向攻击剖面(VAP)。这全是代码,遍历代码以便为从输入、数据库更新到输出的各种任务提供服务。与所有程序一样,该代码含有bug。bug密度各不相同,但是你遍历的代码越多,暴露于安全漏洞的可能性就越大。HAP就是堆栈安全漏洞(可以跳转进入到物理服务器主机或虚拟机)。

HAP是最糟糕的那种安全漏洞。博顿利称之为“可能破坏企业的事件”。那么,你如何就HAP方面衡量系统呢?博顿利这样解释: 衡量HAP的定量方法是指,我们拿来Linux内核代码的bug 密度,乘以运行中的系统在达到稳定状态后(这意味着它似乎并不遍历任何新的内核路径)遍历的独特代码数量。为了采用这种方法,我们假设bug密度是一致的,因此HAP近似于稳定状态下遍历的代码数量。针对运行中的系统衡量这个指标完全是另一回事,不过幸好,内核有一个名为ftrace的机制,可用于对某个特定用户空间进程调用的所有函数进行跟踪(trace),从而给出遍历的代码行数的合理近似值。(注意:这是一个近似值,因为我们衡量函数中的代码行总数,并未考虑内部代码流,这主要是由于ftrace没有给出那么多详细的信息。)此外,这种方法非常适用于这种情形下的容器:所有的控制流通过系统调用信息来自一组众所周知的进程,但是它不太适用于这种情形下的虚拟机管理程序:除了直接的超级调用(hypercall)接口外,你还得添加来自后端守护程序(比如kvm vhost内核或Xen这种情况下的dom0)的跟踪。 简而言之,你衡量一个系统(无论它是裸机、虚拟机还是容器)运行某个特定应用程序使用了多少行代码。它运行的代码越多,存在HAP级别的安全漏洞的可能性就越大。

虚拟机去虚拟化及检测技术攻防

在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,因此它在恶意软件领域中是应用越来越来广泛。这里我们所谓的虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件(比如VMware,Virtual PC ,VirtualBox),你可以在一 台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。攻击者为了提高恶意程序的隐蔽性以及破坏真实主机的成功率,他们都在恶意程序中加入检测虚拟机的代码,以判断程序所处的运行环境。当发现程序处于虚拟机(特别是蜜罐系统)中时,它就会改变操作行为或者中断执行,以此提高反病毒人员分析恶意软件行为的难度。本文主要针对基于Intel CPU的虚拟环境VMware中的Windows XP SP3系统进行检测分析,并列举出当前常见的几种虚拟机检测方法。 方法一:通过执行特权指令来检测虚拟机 Vmware为真主机与虚拟机之间提供了相互沟通的通讯机制,它使用“IN”指令来读取特定端口的数据以进行两机通讯,但由于IN指令属于特权指令,在处于保护模式下的真机上执行此指令时,除非权限允许,否则将会触发类型为“EXCEPTION_PRIV_INSTRUCTION”的异常,而在虚拟机中并不会发生异常,在指定功能号0A(获取VMware版本)的情况下,它会在EBX中返回其版本号“VMXH”;而当功能号为0x14时,可用于获取 VMware内存大小,当大于0时 则说明处于虚拟机中。VMDetect正是利用前一种方法来检测VMware的存在,其检测代码分析如下: 代码: bool IsInsideVMWare() { bool rc = true; __try { __asm { push edx push ecx push ebx mov eax, 'VMXh' mov ebx, 0 // 将 ebx设置为非幻数’VMXH’的其它值 mov ecx, 10 // 指定功能号,用于获取VMWare版本,当它为0x14时用于获取VMware内存大 小 mov edx, 'VX' // 端口号 in eax, dx // 从端口dx读取 VMware版本到eax//若上面指定功能号为0x14时,可通过判断eax中的值是否大于0,若是则说明处于虚拟机中 cmp ebx, 'VMXh' // 判断ebx 中是否包含VMware版本’VMXh’,若是则在虚拟机 中 setz [rc] // 设置返回 值 pop ebx pop ecx pop edx } } __except( EXCEPTION_EXECUTE_HANDLER) // 如果未处于VMware中,则触发此异 常 { rc = false; } return rc;} 测试结果:

如何绕开虚拟机检测

如何绕开虚拟机检测 1,用记事本打开虚拟系统镜像文件的配置文件,这个文件扩展名为vmx,比如我的虚拟系统名为XP,那这个文件就叫XP.vmx,然后在 其末尾添加这么一句,如下红色部分(注意,虚拟机不能在运行状态添加) monitor_control.restrict_backdoor = "true" 这句的意思是关闭vmware的后门(什么后门?后面详细说) 2,开启vmware workstation,在里面的虚拟机->设置->处理器->勾上‘禁用二进制翻译加速’(不同汉化版翻译有所出入) 这两条一起用,可以躲过大部分检测,包括一些壳的检测,比如VMProtect 等。 如果你的电脑足够快,那么 首先你把你的VMware 虚拟机里面的操作系统调到最快的状态(关闭不必要的程序、自动更新等)然后关闭虚拟机; 打开VMware 虚拟机的配置文件,这是一个后缀为vmx 的文本文件。在里面加入以下内容 isolation.tools.getPtrLocation.disable = "TRUE" isolation.tools.setPtrLocation.disable = "TRUE" isolation.tools.setVersion.disable = "TRUE" isolation.tools.getVersion.disable = "TRUE" monitor_control.disable_directexec = "TRUE" monitor_control.disable_chksimd = "TRUE" monitor_control.disable_ntreloc = "TRUE" monitor_control.disable_selfmod = "TRUE" monitor_control.disable_reloc = "TRUE" monitor_control.disable_btinout = "TRUE" monitor_control.disable_btmemspace = "TRUE" monitor_control.disable_btpriv = "TRUE" monitor_control.disable_btseg = "TRUE" cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101" checkpoint.overrideVersionCheck = "true" checkpoint.disableCpuCheck = "true" 这些参数不一定都需要,不过最保险的是都加。可以提高模拟的真实性,不过速度也会慢很多。

虚拟机防检测教程集锦

方法一: 防检测代码 3条:(该方法能用,尽力不要用下面几种方法!) monitor_control.virtual_rdtsc = "false" monitor_control.restrict_backdoor = "true" monitor_control.disable_directexec = "true" 方法二: 防检测代码 7条: monitor_control.virtual_rdtsc = "false" monitor_control.restrict_backdoor = "true" monitor_control.disable_directexec = "true" isolation.tools.getPtrLocation.disable = "true" isolation.tools.setPtrLocation.disable = "true" isolation.tools.setVersion.disable = "true" isolation.tools.getVersion.disable = "true" 方法三: 防检测代码 11条 isolation.tools.getPtrLocation.disable = "TRUE" isolation.tools.setPtrLocation.disable = "TRUE" isolation.tools.setVersion.disable = "TRUE" isolation.tools.getVersion.disable = "TRUE" monitor_control.disable_directexec = "TRUE" monitor_control.disable_chksimd = "TRUE" monitor_control.disable_ntreloc = "TRUE" monitor_control.disable_selfmod = "TRUE" monitor_control.disable_reloc = "TRUE" monitor_control.disable_btinout = "TRUE" monitor_control.disable_btmemspace = "TRUE" monitor_control.disable_btpriv = "TRUE" monitor_control.disable_btseg = "TRUE" 方法四 :是配合其他三种方法使用的不需要删除其他代码! ! !分两步 ① 添加一条代码: 同样添加至 ".vmx配置文件" 末尾! ! ! -------------------------------------------------------- monitor_control.restrict_backdoor = "true" -------------------------------------------------------- ② 打开需要玩游戏的虚拟机点击 "编辑虚拟机设置" --> 点击 "处理器" --> "虚拟化引擎" 勾上"√ 禁止二进制转化(D)" --> 点击 "确定" 即可! PS 通过上述四种方法!如果还是不能打开游戏,只能说明这个游戏的检测力度太强了! ! !

虚拟机检测技术剖析

虚拟机检测技术剖析 作者:riusksk (泉哥) 主页: 前言 在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,因此它在恶意软件领域中是应用越来越来广泛。这里我们所谓的虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件(比如VMware,Virtual PC ,VirtualBox),你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。攻击者为了提高恶意程序的隐蔽性以及破坏真实主机的成功率,他们都在恶意程序中加入检测虚拟机的代码,以判断程序所处的运行环境。当发现程序处于虚拟机(特别是蜜罐系统)中时,它就会改变操作行为或者中断执行,以此提高反病毒人员分析恶意软件行为的难度。本文主要针对基于Intel CPU的虚拟环境VMware中的Windows XP SP3系统进行检测分析,并列举出当前常见的几种虚拟机检测方法。 方法一:通过执行特权指令来检测虚拟机 Vmware为真主机与虚拟机之间提供了相互沟通的通讯机制,它使用“IN”指令来读取特定端口的数据以进行两机通讯,但由于IN指令属于特权指令,在处于保护模式下的真机上执行此指令时,除非权限允许,否则将会触发类型为“EXCEPTION_PRIV_INSTRUCTION”的异常,而在虚拟机中并不会发生异常,在指定功能号0A(获取VMware版本)的情况下,它会在EBX中返回其版本号“VMXH”;而当功能号为0x14时,可用于获取VMware内存大小,当大于0时则说明处于虚拟机中。VMDetect正是利用前一种方法来检测VMware的存在,其检测代码分析如下:

虚拟机陷出的检测及分析

*The National Natural Science Foundation of China under Grant No. 90718028, 60873052 (国家自然科学基金); the National Grand Basic Research 973 Program of China under Grant No. 2007CB310900 (国家重点基础研究发展规划(973)); the National High-Tech Research and Development of China under Grant No. 2008AA01Z112 (国家高技术研究发展计划(863)); the MOE-Intel Information Technology Foundation under Grant No. MOE-INTEL-10-06 (教育部-英特尔信息技术专项科研基金). Received 2010-09, Accepted 2010-11. ISSN 1673-9418 CODEN JKYTA8 E-mail: fcst@https://www.doczj.com/doc/ed5039640.html, Journal of Frontiers of Computer Science and Technology https://www.doczj.com/doc/ed5039640.html, 1673-9418/2011/05(06)-0493-08 Tel: +86-10-51616056 DOI: 10.3778/j.issn.1673-9418.2011.06.002 虚拟机陷出的检测及分析* 汪小林1, 张彬彬1, 靳辛欣1, 王振林2, 罗英伟1+, 李晓明1 1. 北京大学 信息科学技术学院, 北京 100871 2. 密西根理工大学 计算机系, 美国 密西根州 49931-1295 Detection and Analysis of Virtual Machine Exits * WANG Xiaolin 1, ZHANG Binbin 1, JIN Xinxin 1, WANG Zhenlin 2, LUO Yingwei 1+, LI Xiaoming 1 1. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China 2. Department of Computer Science, Michigan Technological University, Michigan 49931-1295, USA + Corresponding author: E-mail: lyw@https://www.doczj.com/doc/ed5039640.html, WANG Xiaolin, ZHANG Binbin, JIN Xinxin, et al. Detection and analysis of virtual machine exits. Journal of Frontiers of Computer Science and Technology, 2011, 5(6): 493-500. Abstract: It’s essential to learn about sensitive instructions that cause virtual machine (VM) to exit to the virtual machine monitor (VMM) to find new ways to optimize the performance of VM. This paper proposes a novel method, competition in bucket method (CBM), to track all VM exits efficiently, by mapping sensitive instructions to buckets according to instruction addresses, and find out hot instructions in each bucket. Key words: virtualization; virtual machine monitor (VMM); hot instructions; virtual machine exits; competition in bucket method (CBM) 摘 要:虚拟机执行敏感指令时会陷出到虚拟机管理器(virtual machine monitor, VMM)处理, 虚拟机频繁陷出是影响虚拟化性能的重要因素, 因此全面了解导致陷出的敏感指令对虚拟化性能优化有重要意义。提出了一个创新性的方法“桶竞争法”(competition in bucket method, CBM), 通过把敏感指令的地址映射到不同

VMWARE 虚拟化技术面试题

VMWARE 虚拟化技术面试题 1、哪个vSphere 组件可用于为每台虚拟机创建实时卷影实例,以便在虚拟机出现故障时可由卷影实例取代虚拟机? A. High Availability B. Fault Tolerance C. Data Protection D. Distributed Resources Scheduler 2、以下哪项是对虚拟机的最佳描述? A. 执行虚拟化软件测试程序的物理机 B. 通过软件实施的计算机,可以像物理机一样执行程序 C. 一种旨在提供网络故障切换和故障恢复功能的计算机工具 D. 一种软件计算机,其中封装了物理硬件 3、阅读以下说法并选择与其对应的虚拟机属性:“如果一个虚拟机因为错误而崩溃,同一主机上的其他虚拟机不会受到影响” A. 隔离性 B. 兼容性 C. 独立于硬件 D. 统一性 4、您正在与管理员和管理层开会讨论有关即将进行的虚拟化项目。会议上提到了vCenter,并讨论了是否需要虚拟化vCenter,以方便主机管理。以下哪项是虚拟化vCenter的优势? A. vCenter只能在使用本地存储时进行虚拟化 B. vCenter可以进行虚拟化,但必须在32位服务器上部署 C. vCenter可以轻松实现虚拟化,HA可在需要时用于重新启动虚拟机 D. vCenter与管理员密切相关,因而不能进行虚拟化 5、要使冷迁移正常运行,虚拟机必须_____。 A. 处于关闭状态。 B. 满足 VMotion 的所有要求。 C. 可以在具有相似的 CPU 系列和步进功能的系统之间移动。 D. 仍位于冷迁移之前的同一个数据存储中。 6、准备新虚拟机的正确操作顺序是? A. 创建虚拟机、安装操作系统、加载 VMware Tools、安装补丁程序 B. 创建虚拟机、安装装补丁程序、安装操作系统、加载 VMware Tools C. 创建虚拟机、加载 VMware Tools、安装操作系统、安装补丁程序 D. 安装操作系统、创建虚拟机、安装补丁程序、加载 VMware Tools 7、下列哪一个电源状况命令仅在 VMware Tools 安装后才可用? A. 开机

相关主题
相关文档 最新文档