虚拟机隔离运行模型_第1页
虚拟机隔离运行模型_第2页
虚拟机隔离运行模型_第3页
虚拟机隔离运行模型_第4页
虚拟机隔离运行模型_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

{管理信息化VR虚拟现实}虚拟机隔离运行模型第三章隔离运行模型本章提出了一种新的基于虚拟机技术的隔离运行模型—SVEE谢谢阅读感谢阅读精品文档放心下载精品文档放心下载阐明了SVEE能够满足Bell-LaPadula机密性模型和Biba感谢阅读谢谢阅读型,本章构造出以本地虚拟化技术为核心的满足SVEE隔离运行模型的体系结构,感谢阅读谢谢阅读的详细分析,指出TypeII虚拟机模型能够最有效地在个人计算平台下支持这五谢谢阅读个约束条件。本章工作是后继章节所做工作的理论基础。3.1隔离运行模型谢谢阅读明的目标,同时能够重现已有的软件运行环境并支持操作系统语义信息的重构,感谢阅读感谢阅读为可监控性,该环境必须满足以下约束条件。约束1:操作系统隔离:非可信软件必须运行在一个与宿主操作系统隔离的感谢阅读虚拟计算机系统中,这是抵御特权恶意代码攻击、确保安全隔离性的必要条件。谢谢阅读约束2:应用程序与操作系统透明:现有操作系统、应用程序和将被隔离的精品文档放心下载精品文档放心下载下尤其重要。此约束包含四个子约束:约束2A谢谢阅读代码,因为通常个人计算平台上流行的应用程序与操作系统(如Windows)都未感谢阅读开放源代码。约束2B精品文档放心下载作,这是保证隔离运行环境的功能完整性的必要条件。约束2C:尽可能地将隔离机制对可信代码运行环境造成的性能影响最小化,精品文档放心下载即在确保安全隔离性的同时兼顾系统的可用性。约束2D感谢阅读谢谢阅读术时必须保证能够继续使用原有操作系统。约束3:可配置的计算环境重现:由于非可信软件的正常执行与执行效果通感谢阅读谢谢阅读境内重现宿主操作系统的计算环境既是保证隔离运行环境的功能完整性的要求,谢谢阅读也是减少布署开销的必要条件。本约束可细化为:约束3A:计算环境的重现不应通过复制整个计算机的软硬件系统的来实现,感谢阅读这样的布署开销通常不能被个人用户接受。约束3B感谢阅读精品文档放心下载隔离运行环境中重现。这是确保安全隔离性的必要条件。约束3C感谢阅读性的要求。约束4:隔离程序执行效果的跟踪:隔离运行环境必须能够跟踪和记录被隔感谢阅读谢谢阅读感谢阅读约束5:支持操作系统语义信息重构:这里的语义信息是指操作系统抽象层精品文档放心下载精品文档放心下载离运行环境的这些信息才能精确分析隔离运行环境内应用程序和操作系统的行谢谢阅读为,进而提升隔离运行环境的行为可监控性。(a)基于TypeIVMM的Native隔离运行模型(b)基于TypeIIVMM的Hosted隔离运行模型精品文档放心下载图3.1SVEE的基于不同VMM的两种可选隔离运行模型精品文档放心下载为了满足约束1,SVEE必须利用虚拟机监视器(VirtualMachineMonitor,精品文档放心下载VMM)来创建非可信软件的运行容器—虚拟机。只有这种基于硬件抽象层的虚拟感谢阅读Goldberg的定义,VMM是能够为计算机系精品文档放心下载统创建高效、隔离的副本的软件。这些副本即为虚拟机(VirtualMachine,VM感谢阅读在虚拟机内处理器指令集的一个子集能够直接在物理处理器上执行。Goldberg定谢谢阅读义了两种VMMTypeIVMM和TypeIIVMMTypeIVMM直接运行在计算机硬件系统上,感谢阅读感谢阅读TypeIIVMM则以一个应用程序的形式运行在已有的传统操作系统之上,而谢谢阅读HostOSTypeII谢谢阅读GuestOS感谢阅读机监视器,SVEE3.1TypeIVMM感谢阅读的Native隔离运行模型和基于TypeIIVMM的Hosted隔离运行模型。谢谢阅读对于约束2ANative隔离运行模型中的TypeIVMM精品文档放心下载与Hosted隔离运行模型中的TypeIIVMM均无需修改已有应用程序和将被隔离的感谢阅读TypeIIVMMTypeIVMM谢谢阅读精品文档放心下载改(如VMwareESXServerPara-Virtualization)且没有谢谢阅读硬件虚拟化技术的支持则需要修改运行在VMM之上的操作系统源代码(如Xen谢谢阅读由于TypeIVMM与TypeIIVMM这两种虚拟机技术均对上层应用提供了完整的精品文档放心下载虚拟化计算机硬件平台,VMM之上运行的软件(操作系统)就像在真实的物理计感谢阅读精品文档放心下载隔离运行模型均能满足约束2B。约束2C3.1(a)Native精品文档放心下载精品文档放心下载代码运行环境性能的下降。而基于TypeIIVMM的Hosted隔离运行模型的可信代感谢阅读精品文档放心下载可能减少影响可信代码运行性能这一点上,基于TypeIIVMM的Hosted隔离运行谢谢阅读模型优于Native隔离运行模型。而对于约束2D,在Native隔离运行模型中,需要用VMM替换原有的操作系精品文档放心下载谢谢阅读Hosted隔离精品文档放心下载运行模型则可以与已有操作系统共存。约束3CTypeIVMMTypeII谢谢阅读虚拟机中的虚拟I/O设备性能不及TypeI精品文档放心下载I/O设备优化技术研究的不断发展,这种性能差谢谢阅读距将逐渐缩小。约束3(3A和3B4和约束5均与具体的虚拟机监视器模型无关,而谢谢阅读对于这三个约束,Native隔离运行模型和Hosted隔离运行模型均需要添加额外精品文档放心下载的机制才能支持,这也是3.2节(SVEE体系结构)需要解决的问题。谢谢阅读此外,从软件开发的角度来看,Native隔离运行模型中的TypeIVMM实际上精品文档放心下载是将传统操作系统的硬件资源管理功能下移到VMM感谢阅读机制有一个明显的不足:个人计算平台上硬件设备的多样化将会极大地增加精品文档放心下载TypeIVMM感谢阅读多的硬件设备,而直接运行在硬件系统之上TypeIVMM则需要管理这些设备,因精品文档放心下载此为它们编写相应的驱动程序将是工程浩大的工作。与此不同,TypeIIVMM可以精品文档放心下载直接利用操作系统提供的设备抽象接口,极大简化VMM谢谢阅读高VMM的稳定性。综上所述,除了约束2C和约束2D,这两种隔离运行模型均能够满足其他约感谢阅读SVEE主要针对的是个人计算平台,而Hosted隔离运行模型在个精品文档放心下载SVEE采用了基于TypeIIVMM的Hosted隔离运精品文档放心下载行模型。在这种模型下,SVEEVMM以TypeIIVMM的形式运行在宿主操作系统之上,精品文档放心下载并负责创建本地化启动的SVEE虚拟机作为执行非可信软件的运行环境。运行在感谢阅读本地化启动的SVEE虚拟机之上的客户操作系统是宿主操作系统的一个副本,因谢谢阅读感谢阅读运行环境彻底隔离。3.2系统体系结构为了满足前文中描述的五个约束,SVEE引入了本地虚拟化技术感谢阅读(LocalVirtualizationTechnology)以实现可配置的计算环境重现。感谢阅读SVEE基于TypeIIVMM的Hosted体系结构如图3.2SVEE由五个核心组精品文档放心下载SVEE虚拟机监视器(SVEEVMMVolumeSnapshot)的虚拟感谢阅读机简单磁盘(VirtualSimpleDisk操作系统动态迁移管理器精品文档放心下载(OSDynamicMigrationManagerChangeTrackingManager)谢谢阅读和隐式操作系统信息重构组件(ImplicitOSInformationReconstructor精品文档放心下载如SVEE隔离运行模型所述,SVEEVMM需要以TypeIIVMM精品文档放心下载SVEEVMM负责创建非可信软件的隔离运行环境—SVEE虚拟感谢阅读机(SVEEVM借助基于卷快照的虚拟机简单磁盘和操作系统动态迁移管理器,SVEE实现了精品文档放心下载本地虚拟化技术,即SVEE虚拟机中无需重新安装操作系统(这是现有虚拟机软精品文档放心下载“本地精品文档放心下载启动操作系统(Local-BootedOS图3.2SVEE体系结构修改跟踪管理器则记录Local-BootedOS和宿主操作系统(HostOS)内的资谢谢阅读源(如文件、注册表等)变化信息,为进一步分析被隔离软件的行为或之后将谢谢阅读Local-BootedOS的数据变化合并到宿主操作系统提供支持。精品文档放心下载精品文档放心下载的数据(如处理器寄存器信息、MMU、磁盘信息等)重构出具有应用层语义的客谢谢阅读户操作系统信息。3.2.1虚拟机监视器如前所述,SVEE虚拟机即为采用本地虚拟化技术启动的硬件抽象层虚拟机,感谢阅读被隔离的非可信软件就在由SVEE虚拟机启动的Local-BootedOS感谢阅读程序则直接在宿主操作系统上运行。为了满足不能修改操作系统源代码的约束(约束2ASVEEVMM不能采用半精品文档放心下载虚拟机技术,而只能采用与VMware虚拟机(包括VMwareWorkstation和精品文档放心下载VMwareESXServer)类似的动态指令转换技术。感谢阅读由于IntelPentiumx86精品文档放心下载行,因此SVEEVMM需要重点解决的就是如何在IntelPentium处理器上实现基于感谢阅读动态指令转换技术的TypeIIVMMGoldberg分析并提出了适合虚拟化的第三代硬感谢阅读件体系结构应该满足的四点约束:1.具有两个以上的处理器操作模式。2.非特权的程序能够通过一种方法来调用特权级的系统例程。精品文档放心下载3.具有内存重定位或保护机制,如分段机制或分页机制。谢谢阅读4.具有异步的中断机制。JohnScottRobin等人则提出了关于处理器支持TypeIVMM和TypeIIVMM需满精品文档放心下载SVEEVMM是以TypeIIVMM精品文档放心下载支持TypeIIVMM需满足的约束条件。约束1(R1)无论在特权模式还是非特权模式下,非特权指令的执行语义都精品文档放心下载感谢阅读当前的特权级(CurrentPrivilegeLevel,CPLGoldberg精品文档放心下载提出的约束1的一个扩展。约束2(R2)处理器必须提供一种保护机制或地址转换机制,能够对物理计精品文档放心下载算机系统和虚拟机之间进行隔离和保护。这一约束与Goldberg提出的约束3一精品文档放心下载致。约束3(R3)当虚拟机试图执行敏感指令(SensitiveInstruction)时,处谢谢阅读谢谢阅读指令的执行语义。按照JohnScottRobin等的定义,敏感指令就是指所有需要操作虚拟机监视谢谢阅读器或宿主操作系统状态的指令,主要包括如下四类指令:1.读写当前虚拟机和物理计算机系统状态的指令;2.感谢阅读3.操作处理器提供的保护机制或是地址转换机制的状态的指令;精品文档放心下载4.所有I/O指令。x86处理器满足Goldberg提出的四个约束:具有从0-3四种特权级精品文档放心下载(PrivilegeLevelRing0级,而应用程序则运行在最低谢谢阅读特权级上—Ring3级;提供了调用门(CallGate)机制,用以支持低特权级的程感谢阅读序调用高特权级的代码;提供了段/页式内存管理机制,以支持内存重定位和保精品文档放心下载Interrupt)和异常(Exception)两种机制使得I/O设备可以感谢阅读与处理器异步通信。图3.3处理器指令分类同理,Intelx86处理器也满足JohnScottRobin约束R1和R2,但是它依然谢谢阅读不支持虚拟化,这是因为它不能满足约束R3。如图3.3精品文档放心下载感谢阅读感谢阅读谢谢阅读x86处理器而精品文档放心下载言,所有特权敏感指令的执行均会产生中断或自陷(Trap精品文档放心下载可以通过设置相应的中断/x86感谢阅读处理器不支持虚拟化的就是第四类指令—精品文档放心下载处理器不同,x86处理器的指令集中存在非特权敏感指令,而这类执行的执行并谢谢阅读不产生任何中断或自陷,从而虚拟机监视器无法获取相应的通知信息。精品文档放心下载JohnScottRobin等已经分析了x86处理器的所有指令,指出其中包含了17精品文档放心下载条非特权敏感指令,即SGDT、SIDT、SLDT、SMSW、PUSHF(PUSHFDPOPF精品文档放心下载(POPFDLAR、LSL、VERR、VERW、POP、PUSH、CALL,JMP、INTn、RET和STR。精品文档放心下载x86处理器上实现SVEEVMM(TypeIIVMM谢谢阅读感谢阅读权敏感指令:第一种技术是Denali和Xen的半虚拟化技术,但是这种技术需要谢谢阅读修改操作系统源代码,不能满足SVEE隔离运行模型的约束2A;第二种技术是谢谢阅读Intel和AMD提出的硬件虚拟化技术,该技术通过修改处理器的实现使得处理器谢谢阅读精品文档放心下载SVEEVMM谢谢阅读“动态指令转换技术,使得SVEEVMM通过运行时指令转换将原本不产生自陷的精品文档放心下载非特权敏感指令替换为具有通知VMM功能的指令。3.2.2基于卷快照的虚拟简单磁盘谢谢阅读SVEE虚拟机需要访问系统卷以启动Local-BootedOS,感谢阅读谢谢阅读统提供的访问接口,后者的修改信息也无法及时被SVEE虚拟机内的文件系统感感谢阅读感谢阅读会导致系统的崩溃。为了解决这个问题,本文提出了基于卷快照的虚拟简单磁盘谢谢阅读(VirtualSimpleDisk)技术。卷快照是在其创建时刻它所对应的原始卷的一致谢谢阅读感谢阅读精品文档放心下载形式导出到SVEE虚拟机的实现方式。此外,在将卷快照导出到SVEE虚拟机前,精品文档放心下载用户可以安全删除不允许在Local-BootedOS中访问的目录、文件等敏感数据。感谢阅读感谢阅读于SVEE来说,组合卷快照的虚拟简单磁盘主要有如下三个优势:精品文档放心下载便于配置导出的卷:如直接使用磁盘快照,则该磁盘内所有的卷均会被精品文档放心下载导出到SVEE虚拟机中,这往往违背了用户的安全性和可配置性的需求。而通过精品文档放心下载配置虚拟简单磁盘,只有用户明确需要导出的卷才能在SVEE虚拟机中访问;感谢阅读卷格式透明:目前广泛应用的操作系统均支持多种卷格式,如单分区卷感谢阅读MirrorVolumeRAID-0卷和RAID-5卷等。感谢阅读感谢阅读依赖的所有磁盘。但是以卷快照为导出的基本单位则避免了这个问题。谢谢阅读便于操作快照数据:卷是文件系统加载的基本单位。通过加载卷快照,感谢阅读用户可以方便直观地访问快照数据。3.2.3操作系统动态迁移管理器精品文档放心下载的实现还需要解决软件服务的不兼容问题。由于SVEE虚拟机是直接从宿主操作谢谢阅读系统启动,因此所有启用的系统服务和开机自动运行的软件都将在SVEE虚拟机精品文档放心下载启动时运行。由于SVEE虚拟机与宿主硬件环境的差异,依赖于硬件系统的系统感谢阅读服务可能会导致SVEE虚拟机启动时挂起甚至崩溃。感谢阅读精品文档放心下载感谢阅读任何操作系统API。结合此技术与SVEEVMM获取的Local-BootedOS的内存信息,精品文档放心下载操作系统动态迁移管理器能够确定导致Local-BootedOS挂起或崩溃的进程,进精品文档放心下载而将这些信息自动记录到不兼容服务数据库。SVEELocal-BootedOS感谢阅读中自动禁用所有不兼容服务数据库中的服务。3.2.4修改跟踪管理器为了满足约束4SVEE需要监视Local-BootedOS感谢阅读中的数据修改信息,为此本文引入了修改跟踪过滤驱动感谢阅读(ChangeTrackingFilterDriverCTFD感谢阅读支持提交Local-BootedOS中的修改结果到宿主操作系统,则需要同时在这两个感谢阅读操作系统中布署CTFD精品文档放心下载Windows注册表的监视则需要利谢谢阅读用系统调用拦截技术。SVEE运行结束时,可以向用户提供三种操作:放弃SVEE内隔离程序的执行感谢阅读SVEE虚精品文档放心下载拟机的整个运行环境将被销毁,之后启动的SVEE虚拟机均需要重新创建新的虚精品文档放心下载拟简单磁盘;若保留执行结果,则仅关闭SVEE虚拟机,而不销毁虚拟简单磁盘;精品文档放心下载对于第三种情况,需要利用修改跟踪管理器来分析和比较SVEE虚拟机从创建到精品文档放心下载结束整个过程中Local-BootedOS和宿主操作系统的数据变化,进而进行修改合感谢阅读并,而合并的同时还需要解决可能发生的各种冲突。谢谢阅读谢谢阅读还是有应用需求的。3.2.5隐式操作系统信息重构组件为了满足约束5SVEE需要提供一种能够在虚拟精品文档放心下载感谢阅读精品文档放心下载精品文档放心下载系统的语义信息。为此,本文提出了一种新的隐式操作系统信息重构平台感谢阅读(ImplicitOSInformationReconstructionPlatform,IOIRP精品文档放心下载式操作系统信息重构组件能够在不借助操作系统API精品文档放心下载息重构出操作系统的语义信息。第四章隔离运行环境的功能完整性问题精品文档放心下载谢谢阅读重现宿主操作系统的计算环境。本章将详细描述实现计算环境重现的基础—本地虚拟化技术。感谢阅读为了解决在SVEE虚拟机中重用已有软件环境所带来的文件系统冲突和软硬精品文档放心下载精品文档放心下载态迁移技术。测试结果表明卷快照技术带来的I/O性能下降小于10%,处理器开销仅增加谢谢阅读约3%,而动态迁移技术使得SVEE能够有效支持多种不同软硬件配置的计算机系精品文档放心下载统。由于目前个人计算平台下最普及的配置是微软的Windows操作系统与Intel感谢阅读的x86SVEE首先在面向x86处理器的Windows平台下实现原型系感谢阅读统。4.1基于卷快照的文件系统共享精品文档放心下载像。尽管SVEE虚拟机与宿主操作系统共享系统卷,但是这二者均不能感知彼此精品文档放心下载Loca-BootedOS和宿主操作系统的文件系统数据精品文档放心下载与磁盘数据的冲突,进而使系统崩溃。解决此冲突的充要条件是这两个操作系统的文件系统对本系统内磁盘数据精品文档放心下载感谢阅读精品文档放心下载数:函数Write(OS,Block,t)t,操作系统OS的文件系统修改了该操感谢阅读作系统内的卷数据块Block精品文档放心下载表示时刻t未修改数据块Block。其中OS∈{Local-BootedOS,HostOS}。精品文档放心下载函数Read(OS,Block,t):表示时刻t,操作系统OS的文件系统读该操作系谢谢阅读统内的卷数据块Block,函数的返回值即为该数据块的内容。谢谢阅读基于上述定义,充要条件可描述为:1.若对∀OS,∀Block,∀t'<t,有Write(OS,Block,t’)=Φ,则感谢阅读Read(OS,Block,t)=Read(OS,Block,t’)谢谢阅读2.若对∀OS,彐Block',彐t'<t,有Write(OS,Block’,t’)≠Φ,则精品文档放心下载Read(OS,Block’,t)=Write(OS,Block,t’’),t’’=Max{t’|Write(OS,Block’,感谢阅读t’)≠Φ}SVEE精品文档放心下载快照创建时刻其对应的原始卷的一致性副本,一致性是通过写时复制感谢阅读(Copy-on-WriteCOW感谢阅读HostOSLocal-BootedOSSVEE谢谢阅读虚拟机解决了与宿主操作系统间由于写操作导致的数据不一致问题。感谢阅读精品文档放心下载谢谢阅读谢谢阅读照导出到SVEE虚拟机前的文件配置、系统卷内硬件配置信息的修改等功能。谢谢阅读图1快照驱动体系结构SVEE的卷快照采用了COW感谢阅读定的存储空间。本文称此存储区域为快照区域(SnapshotsArea,SArea谢谢阅读图4.1描述了在安装了卷快照驱动后的Windows精品文档放心下载快照驱动在Windows感谢阅读够有效地拦截写原始卷的请求并执行COW谢谢阅读类是加载在原始卷设备对象(OriginalVolumeDeviceObject)之上负责执行COW感谢阅读操作的卷过滤设备对象(VolumeFilterDeviceObject精品文档放心下载象(SnapshotVolumeDeviceObject谢谢阅读精品文档放心下载照区域(SArea4.1.1算法描述卷快照驱动的核心是处理操作系统对原始卷设备对象和卷快照设备对象的谢谢阅读读/写请求。其中,对原始卷设备对象的读操作最为直接,卷过滤设备对象直接精品文档放心下载将读原始卷的I/OI/ORequestPackageIRP感谢阅读是因为此操作不会影响原始卷设备对象和卷快照设备对象二者数据的一致性。感谢阅读BasicBlock精品文档放心下载构来管理COWSnapshotBitmapTable精品文档放心下载表每一比特位标识一个基本块是否已经被执行了COW感谢阅读AVL谢谢阅读树结构组织信息,索引值为原始卷基本块块号。Input:原始卷设备对象,写原始卷的IRPOutput:无Method:1.ifIRP要写的原始卷的所有基本块都已被执行了COW谢谢阅读应比特位均已经被置1)2.将该IRP直接转发到原始卷设备对象;3.else4.挂起当前写原始卷的IRP;5.forIRP要写的原始卷的所有基本块6.if当前原始卷基本块未被执行COW操作7.构造新的读IRP,参数为原始卷的当前基本块;8.异步执行此IRP,读取原始卷的当前基本块的内容,为备份做准备;谢谢阅读9.利用快照空间管理器提供的接口,从快照空间申请新的基本块;谢谢阅读10.构造新的写IRP,目标为快照空间的对应基本块;感谢阅读11.异步执行此IRP,将之前读取的原始卷的当前基本块的内容写入快照谢谢阅读空间的对应基本块,完成COW操作;12.设置快照位图表中当前基本块对应的比特位;13.将当前基本块及其对应的快照空间的基本块插入到AVL映射树中;精品文档放心下载14.endif15.将挂起的写原始卷的IRP转发给下层的原始卷;精品文档放心下载16.endfor17.完成被挂起的IRP;18.endifEndAlgorithm写原始卷的IRP的处理算法谢谢阅读图2写原始卷的IRP的处理算法(COW算法)精品文档放心下载谢谢阅读4.2描述了卷过滤设备对象处理写原始卷IRP的算精品文档放心下载IRPIRP的参数精品文档放心下载以判断将要修改的数据中是否存在未被复制备份的部分(第1谢谢阅读该IRP(第4行)直到复制相应数据到SArea的操作完成(5-16感谢阅读转发此IRP到下层原始卷(第2图4.3和图4.4分别描述了读/写卷快照设备对象的处理算法。如算法4.3精品文档放心下载COW操作来判精品文档放心下载断该块对应的实际数据源是原始卷还是快照空间中的对应块(6-134.4谢谢阅读COW操作的基本块,精品文档放心下载COW操作的基本块,则需要在快感谢阅读精品文档放心下载后才能写快照空间的这个新分配的存储块(8-17谢谢阅读Input:IRP感谢阅读Output:无Method:1.ifIRP要读的卷快照的所有基本块所对应的原始卷的那些基本块都未被谢谢阅读执行了COW操作(快照位图表中相应比特位均为0)感谢阅读2.将该IRP直接转发到对应的原始卷设备对象;3.else4.挂起当前读卷快照的IRP;5.forIRP要读的卷快照的所有基本块6.if当前卷快照基本块对应的原始卷的基本块已经被执行COW操作(通精品文档放心下载过查快照位图表)7.根据当前块号在AVL映射树查找在快照空间中对应的基本块块号;谢谢阅读8.构造新的读IRP,目标参数为快照空间中对应的基本块;谢谢阅读9.异步执行此IRP;10.else11.构造新的读IRP,目标为当前卷快照基本块对应的原始卷的基本块;精品文档放心下载12.异步执行此IRP;13.endif14.endfor15.完成被挂起的IRP;16.endifEndAlgorithm读卷快照设备对象的IRP处理算法精品文档放心下载图4.3读卷快照设备对象的IRP处理算法Input:IRP精品文档放心下载Output:无Method:1.挂起当前写卷快照的IRP;2.forIRP要写的卷快照的所有基本块3.if当前卷快照基本块对应的原始卷的基本块已经被执行COW操作(通精品文档放心下载过查快照位图表)4.根据当前块号在AVL映射树查找在快照空间中对应的基本块块号;精品文档放心下载5.构造新的写IRP,目标参数为快照空间中对应的基本块;感谢阅读6.异步执行此IRP;7.else8.利用快照空间管理器提供的接口,从快照空间申请新的基本块;感谢阅读9.if当前要写的长度等于基本块10.构造新的写IRP,目标为快照空间中新分配的基本块;精品文档放心下载11.异步执行此IRP;12.else(当前要写的长度小于基本块)13.构造新的写IRP,目标为当前块在原始卷中对应的基本块;精品文档放心下载14.异步执行此IRP;15.精品文档放心下载16.构造新的写IRP,目标为快照空间中新分配的基本块,写的内容为前精品文档放心下载一步内并的内容;17.异步执行此IRP;18.endif19.设置快照位图表中当前基本块对应的比特位;20.将当前基本块及其对应的快照空间的基本块插入到AVL映射树中;谢谢阅读21.endif22.endif23.完成被挂起的IRP;EndAlgorithm写卷快照设备对象的IRP处理算法谢谢阅读图4.4写卷快照设备对象的IRP处理算法通过算法所述过程,卷快照设备对象向文件系统提供了标准卷的访问接口。精品文档放心下载因此,应用程序能够以操作通用卷的方式访问卷快照设备对象的数据。感谢阅读4.1.2算法正确性分析结合卷快照设备对象的读/写算法与写原始卷的COW算法,现分析卷快照技谢谢阅读术满足解决宿主操作系统与Local-BootedOS间数据不一致问题所需的充要条件,谢谢阅读本节分别针对充要条件的两个部分进行了分析。1.对∀Block,∀t'<ta)对HostOS有Write(HostOS,Block,t’)=Φ(此时Block表示的是原始卷精品文档放心下载Write(Local-BootedOS,Block,t’)=Φ,则显然原始卷中谢谢阅读Block块的数据不会改变,即Read(HostOS,Block,t)=Read(HostOS,Block,t’);感谢阅读若Write(Local-BootedOS,Block,t’)≠Φ,由于算法4.4(写卷快照设备对象感谢阅读的IRP处理算法)保证了将写操作重定位到SArea中,因此Local-BootedOS不感谢阅读会直接修改原始卷,此时原始卷中Block块的数据也不会改变,即精品文档放心下载Read(HostOS,Block,t)=Read(HostOS,Block,t’)。谢谢阅读b)对Local-BootedOS有Φ(此时Block感谢阅读Write(HostOS,Block,t’)=Φ,则卷感谢阅读快照设备中Block块的数据是直接从原始卷中读取(算法4.3,“读卷快照设备感谢阅读对象的IRP处理算法”的1-2行),因此精品文档放心下载Read(Local-BootedOS,Block,t)=Read(Local-BootedOS,Block,t’);若感谢阅读4.2(写原始卷的IRP精品文档放心下载过COW操作保证了原始数据复制到SAreaSArea中的精品文档放心下载备份数据,因此Read(Local-BootedOS,Block,t)=Read(Local-BootedOS,Block,t’)。谢谢阅读2.若对∀Block',∀t'<ta)对HostOS有≠Φ(此时Block表示的是原始卷谢谢阅读Write(Local-BootedOS,Block,t’)=Φ,则显然原始卷中感谢阅读Block块的数据即为最后写入的数据,即精品文档放心下载Read(HostOS,Block’,t)=Write(HostOS,Block,t’’),感谢阅读t’’=Max{t’|Write(HostOS,Block’,t’)≠Φ};若谢谢阅读4.4(写卷快照设备对象的IRP感谢阅读处理算法)保证了将写操作重定位到SArea中,因此Local-BootedOS不会直接感谢阅读修改原始卷,此时原始卷中Block块的数据也仍为最后写入的数据,即感谢阅读Read(HostOS,Block’,t)=Write(HostOS,Block,t’’),谢谢阅读t’’=Max{t’|Write(HostOS,Block’,t’)≠Φ}。谢谢阅读b)对Local-BootedOS有Write(Local-BootedOS,Block,t’)≠Φ(此时谢谢阅读BlockBlock块的数据是直感谢阅读接写到SArea(算法4.4,“写卷快照设备对象的IRP处理算法精品文档放心下载设备也是读SArea中的相应块,因此无论是Write(HostOS,Block,t’)=Φ或谢谢阅读Write(HostOS,Block,t’)≠Φ,均有谢谢阅读Read(Local-BootedOS,Block,t)=Read(Local-BootedOS,Block,t’)。谢谢阅读SVEE满足了解决文件系统冲突所需的充要条件。谢谢阅读4.1.3算法复杂性分析COW操作增加了发送给原始卷的写IRP的处理流程,谢谢阅读因此创建了快照的原始卷的I/O性能将有所下降。为了定量分析SVEE的卷快照谢谢阅读技术带来的磁盘I/O性能下降,本文做了如下定义:精品文档放心下载函数IoTime(Op,Target)Op定义了I/O感谢阅读Target表示I/OIoTime实际定义了读写卷Target某一数据谢谢阅读块BlockNo所需的I/O时间。常量TestTimeCOW操作谢谢阅读所需的时间。常量LockBitmapTableTime:表示锁/解锁快照位图表所需的时间。精品文档放心下载常量LockMapTableTime:表示锁/解锁原始卷基本块块号到对应快照区域基本块精品文档放心下载块号的映射表所需的时间。常数RTimetarget/WTimetarget分别定义了在创建快照前,精品文档放心下载直接读/写卷target的I/OBasicBlockSizeCOW基本块的大感谢阅读小。函数Confict(BlockNo,Target):定义了读卷Target(原始卷或卷快照设精品文档放心下载备)的块BlockNo时该块正在执行写操作的概率。感谢阅读函数Dirty(BlockNo)BlockNo已执行了COW操作的概率。谢谢阅读I/OOV表示谢谢阅读原始卷,SA表示快照空间,VS谢谢阅读IoTime(Read,OV)=LockBitmapTableTime+TestTime+RTimeOV+Confict(Block精品文档放心下载No,Target)xIoTime(Write,OV)谢谢阅读其中IoTime(Write,OV)定义了写原始卷所需的时间,由算法4.11(写原始精品文档放心下载卷的IRP的处理算法,COW算法)可得如下公式:感谢阅读IoTime(Write,OV)=LockBitmapTableTime+TestTime+Dirty(BlockNo)x(Loc谢谢阅读kMapTableTime+RTimeOV+WTimeSA)+WTimeOV精品文档放心下载此外,可以用如下公式计算读/写卷快照的I/O时间。谢谢阅读利用函数Dirty(BlockNo),公式4.3和4.4可表示为:谢谢阅读IoTime(Read,VS)=LockBitmapTableTime+TestTime+{Dirty(BlockNo)x(RTi谢谢阅读meSA+LockMapTableTime)+(1-Dirty(BlockNo))xRTimeOV}精品文档放心下载IoTime(Write,VS)=LockBitmapTableTime+LockMapTableTime+TestTime+WT精品文档放心下载imeSA+{Dirty(BlockNo)xLockMapTableTime+(1-Dirty(BlockNo))xRTimeOV}感谢阅读由于TestTime主要包括两步计算操作和至多两次访存操作:首先执行右移精品文档放心下载精品文档放心下载TestTime感谢阅读相对I/O读写操作所需时间可以忽略不计。与TestTime类似,精品文档放心下载LockBitmapTableTime和LockTableTime与I/O开销相比也可忽略。此外,由于谢谢阅读现有操作系统都支持重叠I/O操作(OverlappedI/O),即公式(4.1)的感谢阅读Confict(BlockNo,Target)xIoTime(Write,OV)这一项可以忽略不计。因此公式感谢阅读4.1、4.2、4.5和4.6可简化为如下公式:谢谢阅读IoTime(Read,OV)≈RTimeOVIoTime(Write,OV)≈Dirty(BlockNo)x(RTimeOV+WTimeSA)+WTimeOV谢谢阅读IoTime(Read,VS)≈{Dirty(BlockNo)xRTimeSA+(1-Dirty(BlockNo))xRTimeOV谢谢阅读}IoTime(Write,VS)≈WTimeSA+(1-Dirty(BlockNo))xRTimeOV谢谢阅读由简化后的公式可知,SVEE的卷快照技术给读原始卷带来的性能开销可忽略,谢谢阅读测试数据也证明了这一点。而对于给定长度Length的I/O操作,I/O开销如公式4.11所示:谢谢阅读由SVEE卷快照算法(算法4.2、4.3和4.4)可知,由于以基本块谢谢阅读(BasicBlockBasicBlockSize感谢阅读和卷大小VolumeSize4.12感谢阅读谢谢阅读则如公式4.13所示,其中NodeSize表示映射表中一个节点所占用的空间。谢谢阅读如公式4.114.12和4.13所示,BasicBlockSize感谢阅读销越小,COW操作越少。但是,由于快照空间所占用的磁盘空间为感谢阅读O(BasicBlockSize)BasicBlockSize谢谢阅读256K字节时,I/O性能与磁盘空间开精品文档放心下载销达到了比较好的平衡。4.1.4算法优化由公式4.8和4.10可知,在保证COW算法正确性的前提下,减少COW操作谢谢阅读可以有效提高写原始卷和写卷快照I/O性能。通过分析读/写卷快照的算法4.3(读卷快照设备对象的IRP感谢阅读法4.4(写卷快照设备对象的IRPLocal-BootedOS的文件精品文档放心下载Block∈感谢阅读卷快照,若对∀t∈{t|Read(Local-BootedOS,Block,t)≠Φ},均∀t'<t,使得谢谢阅读Write(Local-BootedOS,Block,t’)∀Read(Local-BootedOS,Block,t)谢谢阅读证宿主操作系统与Local-BootedOS的文件系统的数据一致性。本文称这类基本精品文档放心下载块为可忽略基本块(IgnorableBasicBlock,IBB感谢阅读SVEE卷快照驱动在处理写原始卷请求时可以忽略IBBIBB谢谢阅读的写操作将被直接转发到底层原始卷而无需执行COW感谢阅读IBB:一类是原始卷中的空闲基本块,还有一类是操作系统的分页文件谢谢阅读(PagingFile,Windows下为)和休眠文件(HibernatingFile,Windows下为)精品文档放心下载内的基本块。精品文档放心下载块也是空闲的,而Local-BootedOS的文件系统在使用这些空闲块前必须进行初感谢阅读谢谢阅读此空闲块属于IBB。感谢阅读感谢阅读谢谢阅读属于IBBLocal-BootedOS启动后也不会依赖于原始卷中其相应文件的原有精品文档放心下载感谢阅读著减少COW操作的次数,同时也明显减少了所需的快照空间的大小。感谢阅读4.1.5快照空间的实现感谢阅读WindowsNTFS和FAT32精品文档放心下载谢谢阅读Windows的文件系统导致了感谢阅读整个系统的死锁。由图4.2所示的写原始卷IRP的处理算法可知,SVEE的卷快照驱动在完成此感谢阅读IRP前需要创建新的写IRP并完成之,因此造成系统死锁的原因应该是Windows感谢阅读文件系统驱动内部使用了全局锁而导致大量写原始卷IRP无法完成。精品文档放心下载为了解决这个问题,SVEE快照驱动需要能够绕过文件系统直接写快照空间。感谢阅读而无需文件系统支持可以直接读写的磁盘设备就是未格式化的卷谢谢阅读(UnformattedVolume感谢阅读SVEE谢谢阅读备对象类似,虚拟机也实现了标准卷的访问接口且将所有的读/写请求转发到下感谢阅读感谢阅读SVEE解决了直接使用文件作为快照空间而导致的系统死锁谢谢阅读问题。4.1.6虚拟简单磁盘图3虚拟简单磁盘结构对于硬件抽象层虚拟机而言,存储设备为虚拟物理磁盘,因此SVEE利用虚谢谢阅读拟简单磁盘组织并导入卷快照设备对象的内容。如图4.5感谢阅读集合。虚拟磁盘保存了卷快照设备对象的详细参数,包括载入点(MountPoint谢谢阅读长度、对应原始卷等。基于这些信息,SVEEVMM将对虚拟简单磁盘的读写,转换感谢阅读为相应卷快照设备对象的读写。4.2操作系统动态迁移技术将在物理计算机系统上安装的宿主操作系统迁移到SVEE虚拟机之上,需要谢谢阅读解决两个关键问题:硬件配置迁移和系统服务迁移。4.2.1动态硬件配置迁移技术与其他虚拟机软件一样,SVEE虚拟机的虚拟设备往往与宿主计算机系统的物感谢阅读理设备不兼容,设备驱动程序也不尽相同。而在SVEE虚拟机第一次启动时,这谢谢阅读感谢阅读感谢阅读无法使用,进而导致Local-BootedOS无法访问相应设备甚至使操作系统崩溃。感谢阅读图4Windows操作系统启动流程现以磁盘设备为例解释SVEE的动态硬件配置迁移技术。如图4.6所示,在谢谢阅读Windows启动过程中,在MBR和启动扇区的代码被执行后,Windows加载器精品文档放心下载(NtldrIDESVEE的虚拟简单磁盘即谢谢阅读为IDESVEENtLdr将会加载感谢阅读Windows)Windows执行组件将使用硬件相关的驱动程序操作相应设谢谢阅读备以提高I/OIDE磁盘控制器而言,目前在个人计算平台上有多种芯片感谢阅读IntelVIA和Promise感谢阅读符(PnP-ID)和相应的设备驱动程序。而在Local-BootedOS启动前,相应的设感谢阅读精品文档放心下载的目录中。否则,Windows将在启动过程中崩溃,而错误信息指示Windows内核感谢阅读无法创建或打开磁盘对象。SVEE虚拟简单磁盘依赖针对Intel芯片组的驱动程序,精品文档放心下载如果宿主操作系统缺乏相应的信息和驱动文件则Local-BootedOS无法启动。精品文档放心下载为了解决这一问题,本文提出了动态硬件配置迁移技术谢谢阅读(DynamicHardwareConfigrationMigratingTechnology),其核心思想就是在谢谢阅读SVEE精品文档放心下载精品文档放心下载直接,但是如何在操作系统启动前操作其文件系统和注册表就是SVEE动态硬件感谢阅读配置迁移技术需要解决的关键问题。如4.1精品文档放心下载述,SVEE感谢阅读件系统访问的问题;而基于此技术,SVEE可以直接访问和解析Local-BootedOS精品文档放心下载的注册表文件(HiveFile6.3.5节谢谢阅读(注册表信息重构)中详细描述。尽管个人计算平台上设备类型众多,但是对于SVEE虚拟机中的每个虚拟设感谢阅读精品文档放心下载限的。SVEE已经提取了SVEE虚拟机启动时依赖的所有虚拟设备的配置信息和驱谢谢阅读精品文档放心下载等PnP设备均可以在Local-BootedOS启动后由操作系统自动更新。精品文档放心下载4.2.2动态服务迁移技术如图4.6所示,Windows启动过程的最后一步就是由服务控制管理器启动各谢谢阅读个系统服务。如果其中有系统服务依赖于硬件平台且与SVEE虚拟设备不兼容,精品文档放心下载也会导致Local-BootedOS不能正常启动甚至使系统崩溃。针对这一问题,本文谢谢阅读DynamicSerivceMigratingTechnology谢谢阅读核心思想就是能够在任一时刻标识出SVEE虚拟机中运行的当前进程,这样就能谢谢阅读谢谢阅读实现这一技术的关键是如何不借助任何操作系统API而只利用硬件层信息标谢谢阅读识出操作系统的当前进程,SVEE利用x86处理器进程调度的相关信息实现了这一感谢阅读目标,详细的实现细节将在6.3.1节(隐式进程标识技术)中描述。感谢阅读成功启动了Local-BootedOS之后,仍有一些软件的正常运行需要依赖于硬谢谢阅读件信息。为了解决这个问题,SVEE引入了硬件标识迁移技术,即通过SMBIOS将感谢阅读宿主计算机系统的OEMID等各类硬件标识导出到SVEE虚拟机的相应虚拟设备上。感谢阅读基于这种技术,SVEE解决了依赖于硬件信息的软件迁移问题。精品文档放心下载第七章基于虚拟机指纹模拟的恶意行为抑制技术XuChen等从2006年9月3日至2007年9月9日收集了6900种Windows下谢谢阅读精品文档放心下载发现其中超过40%的被测试软件会在虚拟机中减少、甚至不执行恶意行为。此类感谢阅读虚拟机感知恶意代码(VM-awareMalware)试图在检测到虚拟机的存在时,通过精品文档放心下载感谢阅读机系统创造机会。现有针对VM-aware恶意代码的防护技术均是试图在检测环节隐藏虚拟机特感谢阅读精品文档放心下载异导致了要构造一个对上层应用完全透明的虚拟机是不现实的。谢谢阅读为了保护个人计算平台免受已被验证为“可信”的VM-aware恶意代码的危感谢阅读谢谢阅读直接从VM-aware恶意代码攻击的目标入手,提出了一种新的轻量级虚拟机监视精品文档放心下载器(MiniVMMVM-aware恶意精品文档放心下载谢谢阅读感谢阅读测试表明MiniVMM能够将运行中的操作系统动态地在本地模式和虚拟化模式谢谢阅读感谢阅读仅为4.8%。7.1引言随着系统安全研究人员在恶意代码的检测和分析过程中越来越依赖于虚拟感谢阅读感谢阅读精品文档放心下载码。感谢阅读感谢阅读人用户直接在宿主环境运行VM-aware恶意代码,这也是个人用户运行“可信”谢谢阅读VM-aware恶意代码将在宿主运行环境中执行其恶意行为谢谢阅读进而危害个人计算平台的安全性。虚拟机技术的本质特性决定了一个虚拟机系统与真实的物理计算机系统的精品文档放心下载“指精品文档放心下载纹(Fingerprint谢谢阅读谢谢阅读谢谢阅读精品文档放心下载藏虚拟机来抵御VM-aware恶意代码的攻击并不是一种行之有效的方式。谢谢阅读因此,为了保护个人计算平台免受已被验证为“可信”的VM-aware恶意代谢谢阅读码的攻击,本文提出了一种针对此类恶意代码隐藏真实物理机器的新方法感谢阅读—MiniVMM。它是一种轻量级的虚拟机监视器,能够动态创建并把一个运行中的感谢阅读操作系统动态迁移到MiniVMM之上。与现有对抗VM-aware恶意代码的技术不同,精品文档放心下载MiniVMM的目标不是构造一个透明的虚拟机监视器,而是模拟已有虚拟机监视器谢谢阅读的各种指纹。MiniVMM能够使得VM-aware恶意代码相信其自身是在虚拟机中运行,感谢阅读进而使这类恶意代码主动禁用其恶意行为。从性能的和工程实现的角度来看,谢谢阅读MiniVMM具有一个虚拟机监视器的本质特征,而通过模拟指纹使其具有其他虚拟精品文档放心下载机的特征远比隐藏一个虚拟机的指纹更具可行性。为了在运行的操作系统上准确模拟虚拟机的特征,本文提出了基于MiniVMM精品文档放心下载的动态操作系统迁移技术和虚拟机指纹模拟技术。精品文档放心下载MiniVMM可以在已启动操精品文档放心下载作系统中加载并动态将此操作系统迁移到自己之上。此外,MiniVMM还支持动态谢谢阅读MiniVMM之上的操作系统也可无缝地返回原来的本地模式继续精品文档放心下载运行。因此,基于MiniVMM,操作系统可以在两种模式间实时转换,即本地模式感谢阅读(NativeModeVMMMode感谢阅读计算机硬件系统之上,不会导致任何性能开销;而在虚拟化模式下,MiniVMM采精品文档放心下载用与Xen类似的技术,因此性能也十分接近本地模式。谢谢阅读虚拟机指纹模拟技术。为了具有更好的通用性,MiniVMM分别模拟了三大类感谢阅读虚拟机指纹,涵盖了目前常用的虚拟机软件,包括Xen、VMwareWorkstation、谢谢阅读VirtualPC和ParallelsWorkstation等。精品文档放心下载需要注意的是,MiniVMM并不是一个完整的基于虚拟机的安全解决方案,而感谢阅读感谢阅读全检测系统验证过的“可信代码均需要在启动了MiniVMM的虚拟化模式下运行,感谢阅读以对抗VM-aware恶意代码。如何实现一个支持动态操作系统迁移的轻量级虚拟机监视器是本章解决的谢谢阅读MiniVMM精品文档放心下载的原型系统以非常规的方式使用了IntelVT-x感谢阅读控制状态实现了轻量级虚拟机监视器的按需创建。由于MiniVMM谢谢阅读精品文档放心下载在虚拟化模式下,MiniVMM只需要处理与模拟指纹相关的系统事件。MiniVMM模精品文档放心下载拟了三类虚拟机指纹,包括逻辑指纹、资源指纹和计时器系统指纹。MiniVMM还谢谢阅读提供了通用的指纹模拟框架,以便于进一步扩充所能模拟的指纹特征。谢谢阅读7.2体系结构图5MiniVMM体系结构Xen或VMwareESXServer感谢阅读感谢阅读感谢阅读谢谢阅读可信软件限制在完全隔离的不同虚拟机当中,这种机制虽然可以有效实现强隔离,精品文档放心下载但这并不适用于本章针对的应用场景,即在宿主环境内执行可能含有VMM-aware精品文档放心下载恶意代码的应用程序。如图7.1VMM-aware恶意代码的软精品文档放心下载件这两种场景,MiniVMM的隔离运行模型使操作系统可以在两种状态下实时转换,谢谢阅读即本地模式(NativeMode)和虚拟化模式(VMMMode感谢阅读精品文档放心下载精品文档放心下载MiniVMM感谢阅读虚拟化模式下,MiniVMM仅处理部分虚拟化事件,包括处理器虚拟化与部分内存谢谢阅读虚拟化等。这是因为MiniVMM的目的是虚拟机指纹的模拟,而不是实现一个谢谢阅读类似于Xen的完整的虚拟机系统。MiniVMM基于两个关键组件实现了虚拟机谢谢阅读FingerprintsEmulationFramework)和虚拟感谢阅读CommodityVMMsFingerprintsDatabase精品文档放心下载精品文档放心下载谢谢阅读发送事件的相关信息到指纹数据库以获取与当前欲模拟的虚拟机相关的指纹信谢谢阅读息,最后根据虚拟机相关的指纹信息返回相应特征。与现有基于虚拟机的安全防御技术相比,MiniVMM支持本地模式与虚拟化模感谢阅读MiniVMM的引入不增加可信代码运行环感谢阅读境的性能开销。7.3MiniVMM实现MiniVMMIntelVT技术于2006精品文档放心下载包括面向x86处理器的VT-x技术与面向安腾处理器的VT-i技术,由于MiniVMM精品文档放心下载针对的是个人计算平台上普遍使用的x86MiniVMM的原型系统基于精品文档放心下载VT-x技术实现,因此本文后面提及的VT特指VT-x技术。谢谢阅读图6IntelVT-x体系结构IntelVT技术的核心是给x86处理器中各种敏感指令的执行都增加产生自陷感谢阅读(Trap)的功能。如图7.2所示,VT技术使得处理器运行在两种不同的模式下,精品文档放心下载即VMXroot模式和VMXnon-root0-3的4精品文档放心下载户虚拟系统及其应用程序运行在VMXnon-root模式下,虚拟机监视器运行在谢谢阅读VMXrootVTroot模式转换到non-root模式称精品文档放心下载之为VMEntryVMExitVMEntry和VMExit都会重新加载控制寄存感谢阅读器CR3,以便虚拟机监视器和客户操作系统有不同的地址空间。与传统x86处理精品文档放心下载器相比,VT处理器最大的不同就是当处理器在non-root模式下运行时,敏感指感谢阅读令的执行将会导致VMExitCPUIDmovCR3RDMSRWDMSR等指令会无精品文档放心下载条件地触发VMExit;而其它的指令、中断和异常是否触发VMExit则由新引入的谢谢阅读VirtualMachineControlStructureVMCS感谢阅读虚拟机监视器解释执行这些指令和异常提供了有效支持。VMEntry会先加载客户系统状态区域的VMCS,然后进入VMXnon-root模式,感谢阅读精品文档放心下载系统进入VMXnon-rootVMExit会保谢谢阅读谢谢阅读后返回虚拟机监视器。所有的VMExit使用公共的进入虚拟机监视器的入口点谢谢阅读(EntryPointVMExit都会提供引发VMExit的详细原因,以便虚拟谢谢阅读机监视器进行相应的处理。通过VMCS的设置,MiniVMM可以配置处理器使每次执行与模拟指纹相关的指精品文档放心下载令时均产生VMExit事件,从而使得MiniVMM捕获到此事件,进而执行指纹模拟精品文档放心下载操作。通过动态加载MiniVMM来模拟虚拟机指纹的具体运行流程如图7.3所示,感谢阅读主要包括以下几个步骤:图7MiniVMM的指令流模型1.加载MiniVMMIntelVT技术引入的新指感谢阅读令和处理各类VMExit事件,因此必须以Windows内核驱动的形式实现MiniVMM,谢谢阅读以使其能够进入操作系统内核执行特权指令。2.在所有逻辑处理器上启用VMX模式。MiniVMM通过设置CR4控制寄存器中谢谢阅读为VT新增的相应控制位来启动VMX模式。接着,MiniVMM在非分页内存上创建谢谢阅读VMXON区段,最后通过传递VMXON区段的物理地址执行VMXON,此操作必须在所精品文档放心下载精品文档放心下载感谢阅读个逻辑处理器;而对于超线程(HyperThread)处理器,每个超线程就是一个逻精品文档放心下载辑处理器。3.设置VMCS。通过执行VMXON启用VMX后,处理器将处于VMroot模式。此谢谢阅读时,MiniVMM将在非分页内存上创建VMCS并设置相应的标志以使得相应特权操作精品文档放心下载激发VMExit事件。例如,为了要监视CR3寄存器的变化,MiniVMM需要将VMCS精品文档放心下载“CR3-targetcount”比特位设为零使CR3的修改产生VMExit谢谢阅读拟无效指令等与处理器自陷相关的指纹,MiniVMM需要将VMCS中的谢谢阅读设置为1感谢阅读(BitmapTable)来更加精确地控制如何产生VMExit谢谢阅读图表,包括32个比特位,如某个比特位被置1,则相应的异常将会激发VMExit谢谢阅读事件;第二个是I/O位图表控制不同的I/O端口访问是否激发VMExit事件。精品文档放心下载之后,MiniVMM通过调用VMWRITE来初始化VMCS的客户虚拟系统状态谢谢阅读(GuestState主要包括当从VMXroot模式切换到VMXnon-root模式精品文档放心下载(VMEntryMiniVMM将设置栈指针寄存器精品文档放心下载(ESP)与指令寄存器(EIP)以控制客户虚拟系统将要执行的指令。精品文档放心下载4.从VMXroot模式切换到VMXnon-rootVMEntry精品文档放心下载备工作,MiniVMM已经完成了轻量级虚拟机的创建,接着通过调用VMLUNCH将处感谢阅读于在本地运行状态的宿主操作系统动态迁移到MiniVMM感谢阅读将在虚拟化状态下继续运行。5.VMExit事件处理。通过在第三步中对VMCS做了相应配置,所有在精品文档放心下载VMXnon-root模式下与探测虚拟机指纹相关的指令将会触发VMExit事件,而谢谢阅读MiniVMM将会捕获该事件,并提取模拟虚拟机指纹所需的相关信息,进而执行指精品文档放心下载感谢阅读6.在所有逻辑处理器上禁用VMX模式。在结束指纹模拟后,MiniVMM将结束感谢阅读虚拟机监视器。MiniVMM首先释放占用的所有内存资源,接着在所有处理器调用谢谢阅读VMMOFF以禁用VMXMiniVMM完成了将操作系统从虚拟化状态切换回谢谢阅读本地化运行状态的状态转换。7.4虚拟机的指纹模拟TalGarfinkel等已经在其发表于HotOS2007的文章中详细分析了虚拟机指纹谢谢阅读MiniVMM如何实现精品文档放心下载MiniVMM的原型系统中,指纹数据库主要收集的是目前应谢谢阅读用最广泛的虚拟机的指纹,包括Xen、VMware(Workstation和ESXServer精品文档放心下载VirtualPC和ParallelsWorkstation精品文档放心下载MiniVMM的指纹模拟框架已经提供了模拟所有虚拟化技术导致的差感谢阅读异的基础实现,基于指纹模拟框架很容易进行扩展以支持更多的指纹模拟。精品文档放心下载与试图隐藏虚拟机特征的技术不同,MiniVMM具有虚拟机监视器的本质特征,精品文档放心下载通过模拟指纹而使其具有其它虚拟机的指纹征远比隐藏一个虚拟机的指纹更具感谢阅读可行性。7.4.1逻辑指纹逻辑指纹是指计算机物理硬件系统与虚拟化的硬件系统提供的不同接口之精品文档放心下载谢谢阅读x86体系结构的差异来判断虚拟机的存在的,包括VMwarePlayer和精品文档放心下载MicrosoftVirtualPC等。7.4.1.1处理器指纹感谢阅读理处理器完全一致的透明的虚拟处理器是十分困难的。如2.1.1谢谢阅读感谢阅读谢谢阅读谢谢阅读口的I/O操作和特殊的处理器中断。私有端口的I/O操作为了模拟此类指纹,MiniVMM需要启用I/O端口控制位图表,并根据指纹库感谢阅读获取欲模拟的虚拟机监视器的私有端口号,将此I/O端口对应的比特位置1。此感谢阅读后,在虚拟化模式运行的操作系统中,任何访问这些端口的I/O操作均会触发精品文档放心下载VMExitMiniVMM的指纹模拟框架将捕获此事件并通知虚拟机指纹库。而虚感谢阅读精品文档放心下载口通信导致的虚拟机指纹模拟。VMwareWorkstation是一个典型的利用私有端口进行客户与宿主环境通信的精品文档放心下载虚拟机产品,其私有端口号为0x5658(字符串“VX”对应的ASCII感谢阅读现已有多种VM-aware恶意代码利用私用端口通信进行虚拟机指纹探测,如谢谢阅读病毒W32/Polip谢谢阅读包括jerry和checkvm(一个随VMware的开源VMwaretools精品文档放心下载处理器中断与VMware利用私有端口进行客户与宿主环境间的通信不同,微软的感谢阅读VirtualPC依赖于执行非法指令产生的异常将会被虚拟机监视器捕获这一机制来感谢阅读实现客户与宿主环境间的通信。通过逆向工程分析VirtualPC,PeterFerrie发感谢阅读现了相应的通信指令流:ParallelsWorkstation则使用了两种方式来实现客户与宿主环境间的通信。精品文档放心下载一种通过执行BOUND精品文档放心下载信;另一种是直接执行中断指令(INT0x1B从实现的角度看,无论是执行非法指令、BOUND指令或是INT指令,均利用感谢阅读了自陷/异常—捕获这一通信模式。为了模拟此类指纹,MiniVMM启动了VMCS中控制中断的标志位谢谢阅读—“NMI(Non-MaskableInterrupt)exiting”BOUNDINT1B谢谢阅读以及非法指令的执行均会触发VMExit事件。MiniVMM的虚拟机指纹模拟框架负责感谢阅读获取中断的详细描述并解析出各个寄存器的值等信息(如非法指令的二进制码谢谢阅读精品文档放心下载模拟的虚拟机实现具体的指纹语义信息。7.4.1.2片外(Off-Chip)指纹片外指纹指由虚拟硬件和物理硬件间的差异导致的虚拟机特征信息。例如,谢谢阅读谢谢阅读拟机往往只模拟了某一种能够支持虚拟机所有功能但是实现更为简便的芯片组,精品文档放心下载VMware模拟的就是Inteli440bx芯片组。精品文档放心下载I/OVMwareWorkstation精品文档放心下载虚拟出多种I/O设备,包括IDE/SCSI磁盘、声卡、显卡和网卡等,而所有这些谢谢阅读设备均具有VMware自己特殊的设备标识,而且安装了旨在提升虚拟机性能的感谢阅读VMwareTools后又将会安装VMware特定的设备驱动。基于这些虚拟机的特殊标志,谢谢阅读很容易检测出虚拟机的存在。为了模拟此类虚拟指纹,MiniVMM修改系统管理BIOS的相关内容谢谢阅读(SystemManagementBIOS,SMBIOSI/O指令获取的设备信息外,感谢阅读其它所有的硬件信息均是通过SMBIOS获取的。MiniVMM的虚拟机指纹数据库保存感谢阅读了目前常用虚拟机软件的SMBIOS。在启动MiniVMM并切换到虚拟化模式前,精品文档放心下载MiniVMM将会备份现有系统的SMBIOS感谢阅读的SMBIOS。而在准备切换回本地模式前,MiniVMM将会恢复原有SMBIOS内容。谢谢阅读从实现的角度,SMBIOS感谢阅读用程序均不能直接访问这组内存区域。MiniVMM基于Dell的开源项目Libsmbios实现了对SMBIOS的操作,Libsmbios精品文档放心下载\Device\PhysicalMemory感谢阅读对SMBIOS的读写。然而从WindowsServer2003SP1开始,Windows内核不再导出精品文档放心下载此物理内存对象,为了解决这一问题,MiniVMM实现了一个内核驱动实现了对物感谢阅读理内存的访问。感谢阅读生,获取处理器标识信息的CPUID指令就是一个典型的例子。微软的VirtualPC谢谢阅读就重新实现了CPUIDCPUID感谢阅读器应该返回的开发商标识应该是“GenuineIntel”或是“AuthenticAMD”。而在精品文档放心下载VirtualPC中执行CPUID“ConnectixCPU”Connectix正精品文档放心下载是最早开发VirtualPC的厂商的名字。由于这些敏感指令会无条件地触发VMExit事件,因此MiniVMM可以很方便感谢阅读地捕获这些指令的执行,进而按照虚拟机的特征重新实现其语义。例如,当精品文档放心下载MiniVMM处理CPUID触发的VMExit精品文档放心下载在EBX、ECX和EDX中返回给在虚拟化状态下运行的操作系统及其虚拟机指纹探精品文档放心下载测软件。7.4.2资源指纹精品文档放心下载感谢阅读拟机监视器的特征。精品文档放心下载行会涉及多种系统资源,包括运行的进程、服务、文件、目录以及注册表项等。精品文档放心下载但实际上,很少有VM-aware恶意代码基于这类指纹探测虚拟机,因为这种精品文档放心下载RegMon和FileMon精品文档放心下载在客户操作系统中监视VMwareTools谢谢阅读MiniVMM切换到虚拟化模式前,将这些变化合并到操作系统感谢阅读谢谢阅读文件系统内容特征的指纹模拟。此外,还有些VM-aware恶意代码利用处理器内部特定数据结构在客户操作精品文档放心下载系统与宿主操作系统中地址的差异检测虚拟机的存在。中断描述符表精品文档放心下载(InterruptDescriptorTable,IDT)就是一个典型的例子。这种检测机制首先谢谢阅读由scoopy_doo实现,之后在项目RedPill中被独立出来以便于检测虚拟机指纹。精品文档放心下载DannyQuist和ValSmith将这种检测机制应用到了更多数据结构中,包括全局描精品文档放心下载述符表(GlobalDescriptorTable,GDT)与局部描述符表感谢阅读(LocalDescriptorTable,GDT感谢阅读为了模拟此类指纹,MiniVMM在内核态的非分页内存中重定位了这三个数据感谢阅读结构,并在VMCS中设置了重定位后的地址。因此,在虚拟化模式下运行的操作感谢阅读系统中的这三个数据结构地址将与本地模式下完全不同。在支持Intelx86处理谢谢阅读器的WindowsXPSP2下,由于这几个数据结构需要被复制到非分页内存中,因此感谢阅读所有重定位后的新地址均高于0xE。这一结果与此类指纹符合。需要强调的是这感谢阅读种技术可推广到所有可被重定位的处理器内部结构。7.4.3计时系统指纹精品文档放心下载感谢阅读化、内存虚拟化等方面的性能差异。敏感指令的模拟执行也会导致此类指纹。谢谢阅读由于MiniVMM精品文档放心下载指纹,MiniVMM通过设置VMCS使得访问设备的I/O指令均触发VMExit事件,并精品文档放心下载感谢阅读MiniVMM可以直接支持,因为这些指令会无条件触发VMExit事件,而感谢阅读VMExit/VMLunch的开销与基于动态指令转换的敏感指令模拟执行技术相当。精品文档放心下载精品文档放心下载址转换机制。因此,只有虚拟机监视器能直接操作物理处理器的CR3感谢阅读客户操作系统对CR3感谢阅读产生延迟的根源。MiniVMMVMCSCR3感谢阅读寄存器的读写均触发VMExitVMExit/VMLunch的开销来模拟内存精品文档放心下载虚拟化产生的延迟。精品文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论