CN103827809A - 用于虚拟分区监测的系统和方法 - Google Patents
用于虚拟分区监测的系统和方法 Download PDFInfo
- Publication number
- CN103827809A CN103827809A CN201280037387.7A CN201280037387A CN103827809A CN 103827809 A CN103827809 A CN 103827809A CN 201280037387 A CN201280037387 A CN 201280037387A CN 103827809 A CN103827809 A CN 103827809A
- Authority
- CN
- China
- Prior art keywords
- virtual
- page
- module
- address
- home agent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Virology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
在一个示例实施例中提供方法,它包含重定基虚拟分区中的模块来在固定地址处加载并且存储与固定地址关联的存储器的页面的散列。外部处理机可接收与影响页面的事件关联的通知。虚拟分区内的内部代理可以执行任务并且将基于任务的结果返回到外部处理机,并且可基于由内部代理返回的结果来采取策略动作。在一些实施例中,可以识别页面的代码部分和数据部分并且只存储代码部分的散列。
Description
技术领域
本说明书一般涉及信息技术安全的领域,并且更特别地,涉及用于虚拟分区监测的系统和方法。
背景技术
信息技术中的虚拟化技术的演进已经产生各种应用,从基于云的计算到移动电话中的嵌入系统。一般而言,虚拟化模糊计算平台的硬件特性并且代替地提出可以寄宿其它平台(包含完整的操作系统)的抽象平台。一个流行虚拟化技术是部署管理程序(也已知为虚拟机管理器),它可以允许客户软件(包含完整的操作系统)同时运行在抽象主机平台上。管理程序可以提供模拟计算环境,通常被称作其客户软件的“虚拟机”。因此,例如,多个全异的操作系统可以在单个框架上的管理程序下运行在单独的虚拟分区中。
然而,随着部署的虚拟机的数量增加,虚拟机有可能成为恶意攻击的越来越常见目标。并且尽管虚拟化提供许多优势,但它还可提出独特的安全挑战。例如,当事件出现在虚拟机内时,外部安全软件可以接收通知并且可以取回来自虚拟机的虚拟处理器状态信息和存储器内容。然而,允许这样的通知的现存技术可不利地影响运行在虚拟分区上的操作系统。因此,提供安全虚拟化平台仍有许多挑战。
附图说明
为提供本公开及其特征和优势的更完整理解,结合附图对下文的描述作出参考,其中相似的参考标号表示相似的部件,其中:
图1是根据本说明书的、图示其中可监测虚拟分区的虚拟平台的示例实施例的简化框图;
图2是图示可与虚拟平台的一个潜在实施例关联的附加细节的简化框图;
图3A是图示可与在虚拟平台中的虚拟客户的第一引导期间在固定地址处加载驱动器关联的潜在操作的简化流程图;
图3B是图示可与在虚拟平台中的虚拟客户的第二引导期间在固定地址处加载驱动器关联的潜在操作的简化流程图;
图3C是图示由图3A中的操作产生的存储器映射和由图3B中的操作产生的存储器映射的简化框图;
图4是图示虚拟平台的一个潜在实施例中可与重定基(rebasing)模块关联的潜在初步操作的简化流程图;
图5是图示虚拟平台的示例实施例中可与构造独立于虚拟机的虚拟文件系统和注册表(registry)数据关联的潜在操作的简化流程图;以及
图6是图示可与虚拟平台中的内部代理和外部处理机的示例实施例关联的潜在操作的简化交互图表。
具体实施方式
概观
在一个示例实施例中提供方法,该方法包含重定基虚拟分区中的模块来在固定地址处加载并且存储与固定地址关联的存储器的页面的散列(hash)。外部处理机可接收与影响页面的事件关联的通知。虚拟分区内的内部代理可以执行任务并且将基于任务的结果返回到外部处理机,并且可基于由内部代理返回的结果来采取策略动作。在一些实施例中,可以识别页面的代码部分和数据部分并且只存储代码部分的散列。
在更特定实施例中,重定基模块可包含移除重定位数据并且修改模块中的报头(header)来提供固定加载地址或修补操作系统中的加载器来在固定地址处加载模块。在一些实施例中,任务可以包含基于与页面关联的虚拟地址来识别模块和/或识别页面作为混用页面。
示例实施例
转到图1,图1是根据本说明书的、图示其中可监测虚拟分区的虚拟平台100的示例实施例的简化框图。虚拟平台100包含硬件105、管理程序110、和管理程序扩展模块115。一般而言,硬件105表示能够接受、执行关于存储或显示数据的逻辑操作的任何机器或设备,并且可包含而不限于处理器105a和存储器105b。如本文所使用的,术语“数据”通常涉及任何类型的数字、语音、视频、或脚本数据、或任何类型的源代码或目标代码,或可从电子装置和/或网络中的一个点传递到另一点的任何适当的格式的任何其它合适的信息。
虚拟平台100可具有一个或多个虚拟分区,例如虚拟化客户120和外部处理机125。在一些实施例中,管理程序110可以是原生或“裸机”管理程序,其直接运行在硬件105上(如在图1中图示的),但可备选地运行在执行在硬件105上的主机软件(例如,虚拟化主机)之下。例如,外部处理机125可通过注册表的回叫信号来与管理程序扩展115通信,以及例如,通过网络通信直接与内部代理130通信(即,绕过管理程序扩展115)。
一般而言,虚拟分区可以是可以具有在其内部运行的软件的虚拟机、沙盒、容器、或任何其它隔离环境的实例。软件可包含操作系统和应用软件。但是,对于在虚拟分区内部运行的所有软件,虚拟分区可看起来是不同的物理机器。
为了图示监测虚拟平台(例如平台100)中的虚拟分区的原理的目的,很重要的是理解在这样的平台内发生的活动和通信。下文的基本信息可视为可适当地解释本公开的基础。这样的信息是只为了解释的目的而认真提供,并且因此不应该以任何方式解释为限制本公开和其潜在应用的广泛范围。
一些管理程序可允许当某些事件发生在虚拟分区内时外部处理机(即,在给定虚拟分区外部运行的软件)接收通知,并且从虚拟分区取回存储器内容。如本文所使用的,“事件”可包含影响存储器的任何操作,例如写入、读取、修改、代替、移动、删除、或执行存储器内容。例如,其它类型的事件可包含对存储器属性的改变,例如使区域可写入或可执行。外部处理机还可能够取回在虚拟分区中操作的虚拟处理器的状态。
例如,外部处理机可向管理程序扩展注册表来接收“页面执行”的通知。因此,当虚拟处理器访问存储器的页面以便执行它内部的指令时,则可停止虚拟处理器并且可通知外部处理机。一般而言,页面是存储器的固定长度块。页面大小通常是由处理器架构确定的。
一般而言,外部处理机可以在虚拟硬件的级别上操作。因此,外部处理机可受限于物理存储器地址并且可没有关于客户操作系统如何管理存储器的信息。然而,外部处理机典型地可以访问页面表,该页面表用于将虚拟存储器地址转换成物理存储器地址。页面表通常是由操作系统管理,但可由虚拟处理器使用,并且是物理地址与虚拟地址之间的链接。
为图示,考虑具有4千字节的页面大小的示例。例如,模块可以执行具有7ff0aa34的虚拟地址的存储器内容。注意,如本文所使用的,术语“模块”是在广泛意义上使用来一般地涉及模块、进程、应用、可执行文件、库、功能、子例程、线程、任务、指令集、代码块、或其它类似操作单元。使用页面表的虚拟处理器可以将那个虚拟地址转换成0110aa34的物理地址。管理程序可以暂停虚拟处理器并且通知外部处理机已经访问以地址011a000开始的物理页面以用于执行。注意,由于处理器的指令指针应该是在页面中正在执行的指令的虚拟地址(即,7ff0aa34),如果可以取回虚拟处理器的状态,则还可在这样的场景中确定页面的虚拟地址。
在存储器的上下文中,应该注意到“虚拟”地址不一定与任何给定“虚拟”机有关。计算机(无论是虚拟或真实)包含一些数量的随机存取存储器(RAM)并且存储器中的每个字节与唯一的地址关联。例如,如果计算机具有十亿字节的RAM,则存储器将包含具有在00000000到3fffffff的范围中的物理地址的字节。然而,现代的操作系统可使用在一些处理器中可用的地址转换特征来构造虚拟地址空间。例如,在32位处理器上,操作系统可构造四十亿字节的虚拟地址空间,以使应用和操作系统可以使用具有在00000000到ffffffff的范围中的虚拟地址的存储器。一般而言,这样的地址转换是单向的;它不可能将物理地址快速转换到虚拟地址。此外,可能没有对应于给定物理地址的任何虚拟地址,或可能存在对应于给定物理地址的多于一个虚拟地址。
管理程序还可实现附加的安全措施用于监测存储器,例如页面白名单。页面白名单可以实现在两个阶段中。第一阶段是学习阶段。管理程序可以假定虚拟机是“干净的”并且当虚拟机启动时开始对于执行访问监测所有存储器。当访问页面用于执行时,可取回整个页面并且计算页面的散列。保存散列并且可重复进程直至达到某个程度的置信度已经执行可以执行的所有存储器。在第二阶段中,假定虚拟机处在不友好环境中(例如,连接到公用网络)。可对于执行访问再次监测所有存储器。如果访问页面用于执行,则可以取回整个页面并且计算页面的散列。此散列可以与学习阶段中计算的散列比较。如果散列不匹配学习阶段散列中的一个,则管理程序可以采取一些适当的策略动作,例如停止虚拟机,生成告警等。
然而,模块(例如,可执行文件、动态库、驱动器等)可在每次它们运行时不占用相同的虚拟存储器地址。但是由于一些代码可依赖已知虚拟存储器地址,一些操作系统(例如,微软Windows)可实现“重定位”,其中加载器改变代码来匹配模块在运行时其加载到存储器的的虚拟地址。例如,磁盘上的代码可读取:0000100A mov eax,[00001023]。因此,在偏置100A处进入可执行的指令对EAX寄存器加载存储器在虚拟地址1023处的内容并且可执行的重定位数据包含条目“100A”。例如,如果在虚拟地址00400000处加载可执行,则加载器可以改变代码来读取:0040100A mov eax,[00401023]。或如果在虚拟地址00500000处加载可执行,则加载器可以改变代码来读取:0050100A mov eax,[00501023]。因此,由于每次机器重新引导时页面可包含不同的内容,此类型的重定位方案可与管理程序页面白名单方案不兼容。虽然改变可以是良性的,但是页面白名单方案可导致不必要的告警或处理。
此外,一些软件还可使用单个页面来用于代码和数据两者,由于在大多数应用中数据频繁地改变,它还可与页面白名单不兼容。虽然可设计较新的处理器来防止混用页面,但是一些最常用操作系统仍然继续使用混有代码和数据的页面。
根据本文描述的实施例,虚拟化平台100可以通过提供内部代理来扩充页面白名单方案而克服这些缺点(以及其它)。在一个特定实施例中,例如,内部代理模块可以管理模块的加载地址来提供一致的模块地址。在另一实施例中,内部代理可提供可疑存储器页面的后期处理。
可使用通常本文被称作“重定基”的操作来实现管理加载地址。内部代理可以“重定基”模块,其通常包含迫使每次加载模块时在相同的地址处加载模块,由此消除或大体上减少可与操作系统重定位方案关联的问题。使用固定加载地址也允许内部代理在执行它们之前计算可执行页面的散列。因此,可显著地缩短页面白名单的学习阶段的处理时间。
在一个示例实施例中,可通过修改模块来实现重定基,例如通过将重定位应用于磁盘上的文件中的可执行代码,从文件中清除重定位数据,并且变更文件的报头来指示固定加载地址。因此,在重定基之后,操作系统可在固定加载地址处加载模块或根本不加载它。虽然一般而言如果其它一些东西已经占用固定加载地址,模块可无法加载,但是内部代理可以确保这样的重叠不导致加载失败。
在另一示例实施例中,可以通过修补操作系统中的选择加载地址的加载器代码来实现重定基、变更它以使它选择给定可执行的单个地址。可以用各种方式来选择加载地址。例如,可确定一组加载地址先验来最优化存储器布局。备选地,可从文件的名称生成加载地址(例如,名称“serial.sys”中的字母的32位循环冗余校验(CRC)是0xAC438F43,其可用作加载地址)。基于在安装时系统处于稳定状态的假定,又一备选包含使用初始加载地址(即,如在安装时)。
当虚拟机关闭时,还可通过访问虚拟机的磁盘来重定基代码。在一个实施例中,例如,可通过分析虚拟盘来访问数据(即,代码)。可选地,可通过分析虚拟盘的虚拟盘文件来分析虚拟盘。例如,可分析用来封装虚拟盘的映像(例如,成虚拟盘文件)的文件格式。为此目的,分析可允许识别虚拟盘的原始数据扇区。
在其中当离线时可访问虚拟盘的另一示例实施例中,可分析原始数据扇区用于识别虚拟盘的分区。以此方式,可基于虚拟盘的分区来访问数据。
在又一实施例中,可基于由虚拟盘利用的文件系统结构来访问离线虚拟盘中的数据。例如,可识别用来格式化虚拟盘的每个识别的分区的文件系统(例如,文件分配表(FAT)文件系统、新技术文件系统(NTFS)、分层的文件系统(HFS)、第三扩展文件系统(ext3)等)。作为选项,可基于上述数据的另外分析来识别这样的文件系统。
在仍然又一实施例中,可利用与文件系统关联的分层目录来访问离线虚拟盘中的数据。作为选项,这样的分层目录可表示文件系统。以此方式,数据可包含在虚拟盘的分层目录中。为此目的,可根据由虚拟盘利用的文件系统结构来构造分层目录,以使可经由分层目录来访问数据。
在另一实施例中,可利用虚拟盘的注册表来访问离线虚拟盘中的数据。例如,数据可包含在这样的注册表中。上述数据(例如,原始数据扇区)的另外分析可识别包含在这样的数据中的注册表文件。注册表文件可因此用于构造虚拟盘的注册表,以使可经由注册表而访问注册表内的数据。
在又一实施例中,可通过转换到数据的路径来访问离线虚拟盘中的数据。这样的路径可以从指示物理系统上的位置的路径转换成指示虚拟盘上的位置的路径。例如,如果经由构造的注册表来访问数据,则到数据的路径可被转换成与实际存储在虚拟盘的注册表中的数据关联的路径。
防止虚拟机用于访问数据可以通过允许执行重定基操作而无需等待虚拟机的操作系统完全引导来可选地增加效率。作为另一选项,防止虚拟机用于访问数据可限制消耗的处理和/或存储器资源。另外,在一个实施例中,即使当物理系统不能够并行执行这样的虚拟机时,还可能够并行访问与单个物理系统上的不同虚拟机关联的多个虚拟盘上的数据(例如,用于新应用的安装等)。
在包含可疑事件的后期处理的实施例中,由于可能有非常有限的信息对外部处理机是可用的,关于存储器页面的信息可以被传到内部代理用于另外分析。例如,外部处理机可只知道正在访问的页面的内容、其物理地址、以及其虚拟地址。例如如果客户操作系统已经将存储器的其它页面页出(paged out),存储器的其它页面对外部处理机可以是不可访问的。因此,例如,外部处理机,可将关于存储器页面的信息传到内部代理并且请求附加的处理而不是立即告警关于以前未看见的页面的存在。
应该注意到可暂停尝试执行指令(例如,可疑指令)的虚拟处理器,并且因此,内部代理可能不能够立即处理这样的请求。为允许附加的处理,可以停用尝试执行指令的进程(或进程中的线程)以使可以立即处理请求,或可允许虚拟处理器恢复执行指令以使它(或另一处理器)可以最终处理请求。备选地,如果虚拟机包含多于一个虚拟处理器则虚拟处理器可以保持拥塞,并且内部代理可以使用不同的虚拟处理器来处理请求。在又一备选方案中,外部处理机可以变更处理器的状态以使当处理器恢复时它执行内部代理代码而不是来自可疑存储器页面的代码。一旦内部代理已经处理请求,处理器就可以再次被暂停、返回到其预请求的状态、并且恢复。这些方法中的每个可以在不同的时间是适当的,这取决于处理器的状态和客户操作系统的特性。例如,如果处理器正在执行用户模式代码,则后者方法可以是优选的,但如果它正在处理硬件中断,则第一方法可以是最安全的。
内部代理可代表外部处理机执行各种任务,例如识别其中存储器页面驻留的模块或识别合法混用页面。知道存储器页面的虚拟地址可以允许关联的模块的识别。
例如,如果内部代理将模块识别为已知具有许多混用页面但以其它方式安全的特定驱动器,则外部处理机可以忽视在与驱动器关联的给定虚拟地址处的访问而没有告警。在另一示例中,如果内部代理不能识别给定虚拟地址的模块,则外部处理机可将在虚拟地址处的访问视为尝试隐藏自身的潜在恶意软件(rootkit)。此外,内部代理还可向管理员提供模块的名称(如对诊断、取证分析等所需要的)。
关于混用页面,由于内部代理可访问任何虚拟地址,内部代理还可为拥有给定存储器页面的模块检查报头信息。因此,例如,如果报头识别存储器页面作为代码和数据区段两者的一部分,则可忽视告警。另外,内部代理可识别存储器页面的哪些部分是代码以及哪些部分是数据,并且将此信息提供给外部处理机。然后外部处理机可只对页面的代码部分作出散列并且更有效地识别对页面中的代码的改变而与数据改变无关。在一些实施例中,混用页面的识别和分析可以在预处理阶段期间完成。
转到图2,图2是图示可与管理程序110的一个潜在实施例关联的附加细节的简化框图。图2包含管理程序扩展模块115、虚拟化客户120、和外部处理机模块125。外部处理机125也可以是在管理程序110内部的虚拟化客户。虚拟化客户120和外部处理机125每个都可包含相应虚拟处理器205a-b以及各种软件元件(在某些实施例中包含不同的操作系统)。更特别地,虚拟化客户120可包含内部代理130、虚拟盘215、和模块220。外部处理机125还可包含或可以访问散列数据库225。管理程序扩展115可在模块220上提供监测和执行控制、以及到外部处理机125的事件回叫信号(如果事件触发通知)。客户内通信机制可允许内部代理130与外部处理机125之间的直接通信。
在备选实施例中,外部处理机125可驻留在管理程序110内部(虚拟分区的外部)或作为管理程序扩展。在仍有的其它实施例中,例如,如果管理程序110不是嵌入式管理程序,则外部处理机125可操作在主机操作系统的执行环境内。
在某些实施例中,模块可访问独立于虚拟化客户120的虚拟盘215。这样的模块可包含外部处理机125或能够访问存储在虚拟盘215上的数据的任何模块。在一个实施例中,模块、虚拟盘215、和虚拟化客户120可位于单个装置上。备选地,模块还可位于与虚拟盘215和虚拟化客户120所位于的另一装置分开的装置上。
在一个实施例中,外部处理机125可分析存储在虚拟盘215上的数据用于识别虚拟盘215的原始数据扇区。在另一实施例中,外部处理机125还可分析原始数据扇区用于识别虚拟盘215的任何分区和由这样的分区利用的文件系统。因此,外部处理机可将与每个分区关联的数据构造成由关联的文件系统指示的分层数据结构。
此外,外部处理机125可利用分析的原始数据扇区用于识别包含在虚拟盘215中的注册表文件。注册表文件可以可选地用于构造由虚拟化客户120使用的注册表。为此目的,外部处理机125可对独立于虚拟化客户120的构造的分层数据结构和/或注册表执行操作。
关于与虚拟平台100关联的内部结构,硬件105可以包含存储器元件(如在图1中示出的)以用于存储在本文概述的操作中使用的信息。此外,虚拟平台100可包含处理器(也在图1中示出的)和一个或多个虚拟处理器(其可以执行软件或算法来执行如本文所论述的活动)。这些装置还可将信息保存在任何合适的存储器元件(随机存取存储器(RAM)、ROM、EPROM、EEPROM、ASIC等)、软件、硬件中、或在其中适当以及基于特定需要的任何其它合适的组件、装置、元件、或对象中。本文讨论的任何存储器项目应该解释为包含在广泛术语“存储器元件”内。由管理程序110、管理程序扩展115、虚拟化客户120、或外部处理机125追踪或发送的信息可提供在任何数据库、寄存器、控制列表、或存储结构中,它们中的所有可以在任何合适的时间线(timeframe)处引用。任何这样的存储选项可包含在如本文所使用的广泛术语“存储器元件”内。类似地,本文描述的潜在处理元件、模块、和机器中的任一个应该解释为包含在广泛术语“处理器”内。
注意在某些示例实现中,本文概述的功能可以由在一个或多个有形的、非暂时性媒体中编码的逻辑(例如,在专用集成电路(ASIC)中提供的嵌入式逻辑、数字信号处理器(DSP)指令、由处理器或其它类似机器等执行的软件(潜在包含目标代码和源代码))来实现。在这些实例中的一些中,存储器元件(如在图1中示出的)可以存储用于本文描述的操作的数据。这包含能够存储软件、逻辑、代码、或处理器指令(其被执行来实现本文描述的活动)的存储器元件。处理器可以执行与数据关联的任何类型的指令来实现本文详述的操作。在一个示例中,处理器(如在图1中示出的)可以将元件或制品(例如,数据)从一个状态或状况转变成另一状态或状况。在另一示例中,本文概述的活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现并且本文识别的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM))或包含数字逻辑、软件、代码、电子指令、或其任何合适的组合的ASIC。
图3A-图3C图示可与两个场景中的虚拟平台100的某些实施例关联的潜在操作和存储器映射。更特别地,图3A是图示可与在虚拟平台100中的虚拟客户的第一引导期间在固定地址处加载驱动器关联的潜在操作的简化流程图。图3B是图示可与在虚拟客户的第二引导期间在固定地址处加载驱动器关联的潜在操作的简化流程图。
转到图3A,在302a处,虚拟客户可在固定地址处加载内核。然后,在304a处,虚拟客户中的操作系统可开始并行加载驱动器。因此,可以用任意的顺序来加载驱动器。在图3A的示例中,名为“A.sys”的驱动器在名为“B.sys”的驱动器之前加载。此外,此示例假定初步重定基操作引起A.sys驱动器的80500000的固定加载地址、以及B.sys驱动器的80600000的固定加载地址。因此,内部代理可以迫使A.sys在80500000处加载(在306a处)并且迫使B.sys在80600000处加载(在308a处)。在310a处,第一引导进程可以恢复。
比较而言,图3B提供其中操作系统在A.sys驱动器之前加载B.sys驱动器的示例。因此,在302b处,虚拟客户可以在固定地址处加载内核。然后,在304b处,虚拟客户中的操作系统可开始并行加载驱动器。再次,可以用任意的顺序来加载驱动器。此示例假定初步重定基操作引起A.sys驱动器的80500000的固定加载地址、以及B.sys驱动器的80600000的固定加载地址,如在图3A中图示的示例中。内部代理可以迫使B.sys在80600000处加载(在306b处)并且迫使A.sys在80500000处加载(在308b处)。在310b处,第二引导进程可以恢复。
图3C是图示由图3A中的操作产生的存储器映射312a和由图3B中的操作产生的存储器映射312b的简化框图。如所图示的,存储器映射312a等同于存储器映射312b,尽管有A.sys和B.sys的不同加载顺序。
注意用于以固定地址重定基模块的某些初步操作可领先于由图3A-图3B图示的操作。在一个特定实施例中,例如,内部代理(例如,内部代理130)可将所有重定位应用于磁盘上的文件中的可执行代码,从文件中清除重定位数据,并且变更文件的报头来指示固定加载地址。在另一实施例中,内部代理可以修补操作系统中选择加载地址的代码、变更加载器以使它选择单个地址用于给定可执行。此外,一旦用固定加载地址来重定基模块,可以为所有可执行页面计算散列并且在可执行页面被执行之前将其存储在散列数据库300中,这可以相当大地减少页面白名单的第一“学习”阶段所需要的时间。
图4是图示在虚拟平台100的某些实施例中可与当虚拟机不操作时通过访问虚拟机的磁盘来以固定地址重定基模块关联的潜在初步操作的简化流程图400。在402处,可以分析虚拟盘。在一个实施例中,可通过分析位于虚拟盘上的文件来分析虚拟盘。这样的虚拟盘文件可编码(即,格式化)用于封装虚拟盘的映像。例如,可以用任何所希望的格式来编码虚拟盘文件。在各实施例中,可利用虚拟机磁盘格式(VMDK)、虚拟硬盘格式(VHD)等来编码虚拟盘文件。
可选地,虚拟盘文件可以是稀疏的。只是以示例的方式,这样的虚拟盘文件可不一定包含组成虚拟盘的每个扇区,但反而可只包含已经写入的扇区。相对于虚拟盘文件不存在的扇区可指示该扇区从未被使用并且如果读取扇区,则与虚拟盘关联的虚拟机可提供全零的扇区。
为此目的,分析虚拟盘可包含分析虚拟盘文件的编码(或以其它方式解码)来识别在这样的文件中存储的数据。例如,数据可以是以原始数据扇区的形式。以此方式,可以从在虚拟盘上存储的文件来识别虚拟盘的原始数据扇区。
此外,在404处,可以在扇区级别处提供对虚拟盘的读取和写入访问。只是以示例的方式,依靠识别原始数据扇区,可提供对这样的原始数据扇区的读取和写入访问。在一个实施例中,读取和写入访问可允许操作在原始数据扇区上执行。
另外,在406处,可识别虚拟盘分区和由这样的分区中的任一个利用的文件系统。例如,可以分区虚拟盘并且可以用任何数量的文件系统(例如,FAT、NTFS、HFS、ext3等)中的一个来格式化每个分区。因此,可以由识别的分区和关联的文件系统来指示由虚拟机利用的文件系统。
为此目的,可访问原始数据扇区用于识别分区和关联的文件系统结构。例如,分析原始数据扇区可提供由虚拟盘利用的分区和关联的文件系统。应该注意到,可以用任何所希望的方式来分析原始数据扇区。
在一个实施例中,可直接分析(例如,人工地分析)原始数据扇区。在另一实施例中,可利用虚拟盘所位于的物理系统的操作系统来分析原始数据扇区。例如,虚拟盘可向操作系统指示为物理磁盘,以使操作系统的文件系统可安装虚拟盘的分区。当然,应该注意到可直接并且经由操作系统这两者来分析原始数据扇区(例如,在虚拟盘上使用的文件系统不是操作系统能够利用的文件系统的情况中)。
仍然,在408处,可以在文件级别处允许对在虚拟盘上存储的数据的读取和写入访问。例如,可以利用识别分区和关联的文件系统在文件级别处允许这样的读取和写入访问。在一个实施例中,可利用识别的分区和关联的文件系统用于根据关联的文件系统来构造每个分区中的数据。因此,例如,可构造数据的分层数据结构(例如,目录结构等),以便可经由分层数据结构来提供对数据的读取和写入访问。作为选项,分层数据结构可表示由虚拟机利用的文件系统。
此外,可以在410处识别注册表文件。注册表文件可包含存储在虚拟盘上的被虚拟机用作注册表的任何文件。可以用任何所希望的方式来识别这样的注册表文件。
在一个实施例中,可通过分析在402处可选地识别的原始数据扇区来识别注册表文件。在另一实施例中,可通过分析在408处可选地构造的分层数据结构来识别注册表文件。例如,分层数据结构的一部分可包含注册表文件。
可选地,可直接(例如,人工地)执行分析。作为另一选项,可至少部分地由物理系统的操作系统来执行分析。例如,可指示操作系统来加载文件系统数据(在406处识别)用于分析这样的文件系统数据。
另外,可利用识别的注册表文件来构造注册表。只是以示例的方式,注册表文件可加载到物理系统的物理注册表的一部分。然后可在物理注册表的另一部分中设置多个键(key)和链接来模拟包含在由虚拟机利用的虚拟盘中的注册表。以此方式,物理注册表可包含由虚拟机利用的注册表。
在412处可允许对注册表的读取和写入访问。例如,在注册表级别处可提供对在虚拟盘中存储的数据的访问。在414处可以提供用于处理的文件系统和注册表数据。例如,可允许对构造的文件系统和构造的注册表的访问。
作为选项,文件系统和注册表数据可以在重定基之前转换。例如,在一个实施例中,可转换文件系统和注册表数据来以外部处理机125能够处理的格式提供文件系统和注册表数据。只是以示例的方式,虚拟机注册表中的值可涉及被称为“c:\windows\something.dll”的文件。然而,从虚拟机的观点,“c:\windows\something.dll”可以是其自己的文件,以使可利用路径的转换用于防止这样的文件与在虚拟盘上存在的“\windows\something.dll”混淆。
在一个实施例中,外部处理机125可转换文件系统和注册表数据。例如,应用程序接口(API)可配备有外部处理机用于执行转换。在另一实施例中,外部处理机125可继续使用它理解的路径名(例如,C:\windows\something.dll,HKLM\Software\Microsoft)。然而,路径名可转换成对虚拟盘和注册表的访问。例如,可钩起外部处理机125调用的API用于执行转换。作为另一示例,如果利用物理系统的操作系统来访问在虚拟盘上存储的数据(例如,如在402和406处),由操作系统提供的截取功能可截取应用调用以使操作系统可执行转换。
图5是图示虚拟平台100的一个示例实施例中可与构造独立于虚拟机的虚拟文件系统和注册表数据关联的潜在操作的简化流程图500。在502处,虚拟盘的扇区被打包到容器文件。扇区可存储与利用虚拟盘的虚拟机关联的任何数据。此外,容器文件可包含封装虚拟盘的映像的虚拟盘文件。在504处,容器文件中的数据可变成看起来仿佛虚拟盘充满扇区。例如,如果虚拟盘的扇区还没被写入,这样的扇区可不存在于虚拟盘中。因此,在一个实施例中,可在506处创建不存在的扇区。例如,创建的扇区可充满零。
此外,在508处,充满扇区的虚拟盘可变成看起来仿佛是分层的文件系统。在一个实施例中,分层的文件系统可包含在虚拟盘中存储的数据的目录。可选地,可分析虚拟盘的原始数据扇区用于识别虚拟盘的分区和与这样的分区关联的文件系统。因此可利用识别的分区和关联的文件系统用于构造分层的文件系统。
在510处图示利用虚拟盘的扇区构造的分层的文件系统的示范性映像。如所示的,分层的文件系统可表示包含在虚拟盘中的驱动器,以及在这样的驱动器内部的各种文件。当然,应该注意到分层的文件系统可包含在虚拟盘上存储的任何信息。
仍然,在512处,可以利用来自虚拟盘的信息来构造虚拟注册表。在一个实施例中,可利用分层的文件系统用于识别在虚拟盘上存储的注册表文件。因此,可利用这样的注册表文件用于构造虚拟注册表。514图示从在虚拟盘上存储的信息构造的注册表的示例。
此外,在516处,文件系统数据和注册表数据可以成为对虚拟盘看起来是本地的。如所示的,映射到分层的文件系统的驱动器名可包含对虚拟盘是本地的驱动器。此外,包含在注册表中的注册表键可被映射到在虚拟盘中存储的数据。518示出映射到在扫描病毒的分层的文件系统的本地磁盘驱动器的示例。为此目的,重定基可执行在独立于与这样的虚拟盘关联的虚拟机的虚拟盘的分层的文件系统和/或注册表上。
图6是图示可与内部代理602和外部处理机604的示例实施例关联的潜在操作的简化交互图表。更特别地,图6图示其中内部代理602可以对于混合页面向外部处理机604提供安全和性能信息的场景。例如,在606处,外部处理机604可接收在地址X处的到页面的写入操作的通知并且从内部代理602请求附加的页面信息(在608处)。在610处,内部代理602可以确定页面是驱动器A.sys的一部分(参见图3A-图3C)。在612处,可以分析A.sys来确定地址X是否在A.sys的代码段或数据段中。在此示例中,确定地址X在A.sys的代码段中。因此,在614处,内部代理602可以发信号到外部处理机604通知地址X在代码段中。在616处,外部处理机604可再散列页面并且评价安全风险。外部处理机604可基于有关的预配置策略和评价安全风险的结果来采取适当的补救动作。
在618处,外部处理机604可接收在地址Y处的写入操作的通知并且请求关于页面的附加信息(在620处)。内部代理602可以将页面识别为A.sys的一部分(在622处)并且确定地址在A.sys的数据段中(在624处)。此信息可以返回到外部处理机604(在626处)。在此示例中,由于在数据段中期望这样的操作,外部处理机604可允许写入操作(在628处)。外部处理机604还可接收到地址Y的写入操作的后续通知(在630处),但由于已知该地址是在A.sys驱动器的数据段中,在632处可允许这些后续操作而没有与内部代理602的另外交互。
因此,虚拟平台100可以提供许多重要优势,特别地关于虚拟环境中的页面白名单。例如,虚拟平台100可以允许模块的预处理来大体上相当大地减少或消除页面白名单的学习阶段。此外,虚拟平台100可以相当大地减少或消除由模块重定位和混用页面导致的噪声、错误肯定、和安全漏洞,同时提供关于对管理员的潜在威胁的更好信息。
很重要的是注意所附的图表中的步骤只图示可由虚拟平台100执行或在其内部执行的可能的场景和模式中的一些。在适当时可删除或移除这些步骤中的一些,或可显著地修改或改变这些步骤而不背离本文提供的教导的范围。此外,多个这些操作已经描述为与一个或多个附加的操作同时或并行执行。然而,可显著地变更这些操作的定时。已经为了示例和论述的目的而提供前述操作流程。由虚拟平台100提供实质的灵活性,这是因为可提供任何合适的布置、时序、配置、和定时机制而不背离本文提供的教导。
此外,本文描述的原理可容易地应用于其它监测系统,其中回叫信号或其它事件通知可从客户或特殊容器传送到具有不同上下文的处理机,例如用于文档控制、审计、取证、和性能监测等。
许多其它改变、替换、变化、变更、和修改可对于本领域的技术人员是确认的并且旨在本公开包含落入所附的权利要求的范围的所有这样的改变、替换、变化、变更、和修改。为了辅助美国专利和商标局(USPTO)以及此外在本申请上发布的任何专利的任何读者来解释此处附上的权利要求,申请人想要注意申请人:(a)不旨在所附的权利要求中的任一项调用35 U.S.C第112节的第六(6)段,这是由于它存在于其的申请日期上,除非词语“用于…的装置”或“用于…的步骤”明确地用在特定权利要求中;并且(b)不旨在由说明书中的任何声明以没有以其它方式反映在所附的权利要求中的任何方式来限制本公开。
Claims (20)
1. 一种方法,包括:
重定基虚拟分区中的模块来在固定地址处加载;
存储与所述固定地址关联的存储器的页面的散列;
在外部处理机中接收与影响所述页面的事件关联的通知;
指示所述虚拟分区内的内部代理来执行任务并且将基于所述任务的结果返回到所述外部处理机;以及
基于由所述内部代理返回的所述结果来采取策略动作。
2. 如权利要求1所述的方法,其中所述外部处理机操作在第二虚拟分区中。
3. 如权利要求1所述的方法,其中所述外部处理机操作在虚拟化主机中。
4. 如权利要求1所述的方法,其中:
所述外部处理机操作在虚拟平台中的第一虚拟化客户中;以及
所述虚拟分区是所述虚拟平台中的第二虚拟化客户。
5. 如权利要求1所述的方法,其中所述事件通知是接收自虚拟平台中的管理程序扩展。
6. 如权利要求1所述的方法,其中重定基所述模块包括移除重定位数据并且修改所述模块中的报头来提供固定加载地址。
7. 如权利要求1所述的方法,其中重定基所述模块包括修补操作系统中的加载器来在所述固定地址上加载所述模块。
8. 如权利要求1所述的方法,其中所述任务包括基于与所述页面关联的虚拟地址来识别所述模块。
9. 如权利要求1所述的方法,其中所述任务包括识别所述页面作为混用页面。
10. 如权利要求1所述的方法,其中存储散列包括识别所述页面的代码部分和数据部分并且只存储所述代码部分的散列。
11. 如权利要求1所述的方法,还包括:
停用与导致所述事件的所述模块关联的线程;以及
在停用导致所述事件的所述线程之后恢复所述虚拟分区中的其它线程。
12. 一种逻辑,其编码在包含用于执行的代码的一个或多个非暂时性媒体中,并且所述代码当由一个或多个处理器执行时能够操作用于执行操作,所述操作包括:
重定基虚拟分区中的模块来在固定地址处加载;
存储与所述固定地址关联的存储器的页面的散列;
在外部处理机中接收与影响所述页面的事件关联的通知;
指示所述虚拟分区内的内部代理来执行任务并且将基于所述任务的结果返回到所述外部处理机;以及
基于由所述内部代理返回的所述结果来采取策略动作。
13. 如权利要求12所述的编码逻辑,其中重定基所述模块包括移除重定位数据并且修改所述模块中的报头来提供所述固定加载地址。
14. 如权利要求12所述的编码逻辑,其中重定基所述模块包括修补操作系统中的加载器来在所述固定地址上加载所述模块。
15. 如权利要求12所述的编码逻辑,其中所述任务包括基于与所述页面关联的虚拟地址来识别所述模块。
16. 如权利要求12所述的编码逻辑,其中所述任务包括识别所述页面作为混用页面。
17. 一种设备,包括:
虚拟分区;
所述虚拟分区内的内部代理;
外部处理机;以及
一个或多个处理器,其能够操作以执行与所述虚拟分区、所述内部代理、以及所述外部处理机关联的指令以使所述设备配置用于:
重定基虚拟分区中的模块来在固定地址处加载;
存储与所述固定地址关联的存储器的页面的散列;
在外部处理机中接收与影响所述页面的事件关联的通知;
指示所述虚拟分区内的内部代理来执行任务并且将基于所述任务的结果返回到所述外部处理机;以及
基于由所述内部代理返回的所述结果来采取策略动作。
18. 如权利要求17所述的设备,其中重定基所述模块包括移除重定位数据并且修改所述模块中的报头来提供固定加载地址。
19. 如权利要求17所述的设备,其中重定基所述模块包括修补操作系统中的加载器来在所述固定地址上加载所述模块。
20. 如权利要求17所述的设备,其中所述任务包括基于与所述页面关联的虚拟地址来识别所述模块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/192412 | 2011-07-27 | ||
US13/192,412 US9311126B2 (en) | 2011-07-27 | 2011-07-27 | System and method for virtual partition monitoring |
US13/192,412 | 2011-07-27 | ||
PCT/US2012/048386 WO2013016567A2 (en) | 2011-07-27 | 2012-07-26 | System and method for virtual partition monitoring |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103827809A true CN103827809A (zh) | 2014-05-28 |
CN103827809B CN103827809B (zh) | 2018-05-25 |
Family
ID=47598230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280037387.7A Active CN103827809B (zh) | 2011-07-27 | 2012-07-26 | 用于虚拟分区监测的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9311126B2 (zh) |
EP (1) | EP2737395B1 (zh) |
CN (1) | CN103827809B (zh) |
WO (1) | WO2013016567A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298910B2 (en) | 2011-06-08 | 2016-03-29 | Mcafee, Inc. | System and method for virtual partition monitoring |
US9311126B2 (en) | 2011-07-27 | 2016-04-12 | Mcafee, Inc. | System and method for virtual partition monitoring |
US8984478B2 (en) * | 2011-10-03 | 2015-03-17 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
US9348819B1 (en) * | 2011-12-31 | 2016-05-24 | Parallels IP Holdings GmbH | Method and system for file data management in virtual environment |
US20130219069A1 (en) * | 2012-02-22 | 2013-08-22 | Computer Associates Think, Inc. | System and method for managing virtual hard disks in cloud environments |
CN102768629B (zh) * | 2012-04-16 | 2017-02-08 | 中兴通讯股份有限公司 | 基于调度层实现虚拟机间通讯的方法和装置 |
US10075470B2 (en) * | 2013-04-19 | 2018-09-11 | Nicira, Inc. | Framework for coordination between endpoint security and network security services |
US20150261952A1 (en) * | 2014-03-13 | 2015-09-17 | Unisys Corporation | Service partition virtualization system and method having a secure platform |
US20150278512A1 (en) * | 2014-03-28 | 2015-10-01 | Intel Corporation | Virtualization based intra-block workload isolation |
US9760712B2 (en) * | 2014-05-23 | 2017-09-12 | Vmware, Inc. | Application whitelisting using user identification |
US10459850B2 (en) * | 2016-09-20 | 2019-10-29 | Advanced Micro Devices, Inc. | System and method for virtualized process isolation including preventing a kernel from accessing user address space |
US9894080B1 (en) * | 2016-10-04 | 2018-02-13 | The Florida International University Board Of Trustees | Sequence hopping algorithm for securing goose messages |
US10452420B1 (en) * | 2016-11-02 | 2019-10-22 | Parallels International Gmbh | Virtualization extension modules |
US10635479B2 (en) | 2016-12-19 | 2020-04-28 | Bitdefender IPR Management Ltd. | Event filtering for virtual machine security applications |
US11188367B2 (en) * | 2017-08-21 | 2021-11-30 | Nicira Inc. | Guest operating system physical memory page protection using hypervisor |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132123A1 (en) * | 2003-12-16 | 2005-06-16 | Microsoft Corporation | Creating file systems within a file in a storage technology-abstracted manner |
US20080016314A1 (en) * | 2006-07-12 | 2008-01-17 | Lixin Li | Diversity-based security system and method |
CN101404580A (zh) * | 2008-11-07 | 2009-04-08 | 江苏科技大学 | 一种具有自检能力的数据隔离方法 |
CN101853175A (zh) * | 2009-03-31 | 2010-10-06 | 甲骨文美国公司 | 虚拟化环境中促进的自检 |
CN102110007A (zh) * | 2009-12-29 | 2011-06-29 | 中国长城计算机深圳股份有限公司 | 一种bios/uefi与虚拟机监控器交互方法及系统 |
US20110167472A1 (en) * | 2009-11-02 | 2011-07-07 | International Business Machines Corporation | Endpoint-Hosted Hypervisor Management |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073142A (en) | 1997-06-23 | 2000-06-06 | Park City Group | Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments |
US5987610A (en) | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
US6460050B1 (en) | 1999-12-22 | 2002-10-01 | Mark Raymond Pace | Distributed content identification system |
US6901519B1 (en) | 2000-06-22 | 2005-05-31 | Infobahn, Inc. | E-mail virus protection system and method |
US7644287B2 (en) | 2004-07-29 | 2010-01-05 | Microsoft Corporation | Portion-level in-memory module authentication |
US7685635B2 (en) | 2005-03-11 | 2010-03-23 | Microsoft Corporation | Systems and methods for multi-level intercept processing in a virtual machine environment |
US7735136B2 (en) | 2005-04-18 | 2010-06-08 | Vmware, Inc. | 0-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security |
US20070106986A1 (en) | 2005-10-25 | 2007-05-10 | Worley William S Jr | Secure virtual-machine monitor |
US20070180509A1 (en) | 2005-12-07 | 2007-08-02 | Swartz Alon R | Practical platform for high risk applications |
US8949826B2 (en) | 2006-10-17 | 2015-02-03 | Managelq, Inc. | Control and management of virtual systems |
US8234641B2 (en) | 2006-10-17 | 2012-07-31 | Managelq, Inc. | Compliance-based adaptations in managed virtual systems |
US9015703B2 (en) | 2006-10-17 | 2015-04-21 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US8458695B2 (en) | 2006-10-17 | 2013-06-04 | Manageiq, Inc. | Automatic optimization for virtual systems |
US9038062B2 (en) | 2006-10-17 | 2015-05-19 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US8024790B2 (en) | 2007-04-11 | 2011-09-20 | Trend Micro Incorporated | Portable secured computing environment for performing online confidential transactions in untrusted computers |
US8621610B2 (en) | 2007-08-06 | 2013-12-31 | The Regents Of The University Of Michigan | Network service for the detection, analysis and quarantine of malicious and unwanted files |
WO2009058042A1 (en) | 2007-10-29 | 2009-05-07 | Intel Corporation | A method of external performance monitoring for virtualized environments |
US8151032B2 (en) | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US8738932B2 (en) | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
US8219990B2 (en) | 2009-05-28 | 2012-07-10 | Novell, Inc. | Techniques for managing virtual machine (VM) states |
US8813069B2 (en) | 2009-05-29 | 2014-08-19 | Red Hat, Inc. | Migration of functionalities across systems |
US8528091B2 (en) | 2009-12-31 | 2013-09-03 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for detecting covert malware |
US9298910B2 (en) | 2011-06-08 | 2016-03-29 | Mcafee, Inc. | System and method for virtual partition monitoring |
US9311126B2 (en) | 2011-07-27 | 2016-04-12 | Mcafee, Inc. | System and method for virtual partition monitoring |
-
2011
- 2011-07-27 US US13/192,412 patent/US9311126B2/en not_active Expired - Fee Related
-
2012
- 2012-07-26 CN CN201280037387.7A patent/CN103827809B/zh active Active
- 2012-07-26 EP EP12816928.1A patent/EP2737395B1/en not_active Not-in-force
- 2012-07-26 WO PCT/US2012/048386 patent/WO2013016567A2/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132123A1 (en) * | 2003-12-16 | 2005-06-16 | Microsoft Corporation | Creating file systems within a file in a storage technology-abstracted manner |
US20080016314A1 (en) * | 2006-07-12 | 2008-01-17 | Lixin Li | Diversity-based security system and method |
CN101404580A (zh) * | 2008-11-07 | 2009-04-08 | 江苏科技大学 | 一种具有自检能力的数据隔离方法 |
CN101853175A (zh) * | 2009-03-31 | 2010-10-06 | 甲骨文美国公司 | 虚拟化环境中促进的自检 |
US20110167472A1 (en) * | 2009-11-02 | 2011-07-07 | International Business Machines Corporation | Endpoint-Hosted Hypervisor Management |
CN102110007A (zh) * | 2009-12-29 | 2011-06-29 | 中国长城计算机深圳股份有限公司 | 一种bios/uefi与虚拟机监控器交互方法及系统 |
Non-Patent Citations (2)
Title |
---|
LIONEL LITTY 等: "Manitou: A Layer-Below Approach to Fighting Malware", 《PROCEEDINGS OF THE 1ST WORKSHOP ON ARCHITECTURAL AND SYSTEM SUPPORT FOR IMPROVING SOFTWARE DEPENDABILITY, ASID’06》 * |
THIADMER RIEMERSMA: "Rebasing Win32 DLLs", 《HTTP://WWW.DRDOBBS.COM/REBASING-WIN32-DLLS/184416272》 * |
Also Published As
Publication number | Publication date |
---|---|
EP2737395B1 (en) | 2017-03-15 |
WO2013016567A3 (en) | 2013-04-25 |
US9311126B2 (en) | 2016-04-12 |
EP2737395A4 (en) | 2015-04-08 |
CN103827809B (zh) | 2018-05-25 |
US20130031291A1 (en) | 2013-01-31 |
WO2013016567A2 (en) | 2013-01-31 |
EP2737395A2 (en) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103827809A (zh) | 用于虚拟分区监测的系统和方法 | |
US9880889B2 (en) | Virtual application extension points | |
CN106133698B (zh) | 用于用户模式崩溃报告的框架 | |
US11010355B2 (en) | Layer-based file access method and apparatus of virtualization instance | |
US20140053272A1 (en) | Multilevel Introspection of Nested Virtual Machines | |
US11221868B2 (en) | Security enhanced hypervisor userspace notifications | |
US10102373B2 (en) | Method and apparatus for capturing operation in a container-based virtualization system | |
US8839215B2 (en) | String cache file for optimizing memory usage in a java virtual machine | |
US20120266149A1 (en) | Class isolation to minimize memory usage in a device | |
CN103493011A (zh) | 与库操作系统的应用兼容性 | |
US10248424B2 (en) | Control flow integrity | |
US11188364B1 (en) | Compilation strategy for a sharable application snapshot | |
EP3113019A1 (en) | Policy-based compression of machine code generated by a virtual machine | |
US20130096908A1 (en) | Employing native routines instead of emulated routines in an application being emulated | |
US20150286490A1 (en) | I/o redirection method, i/o virtualization system and method, and content delivery apparatus | |
CN113176926B (zh) | 一种基于虚拟机自省技术的api动态监控方法及系统 | |
US10795575B2 (en) | Dynamically reacting to events within a data storage system | |
CN113296910B (zh) | 文件系统的调用方法、装置、终端设备及可读存储介质 | |
US20230086877A1 (en) | Method and apparatus for isolated execution of computer code with a native code portion | |
US20230418644A1 (en) | Efficient memory swap for virtual machines | |
WO2022044021A1 (en) | Exploit prevention based on generation of random chaotic execution context | |
Hu et al. | A Proactive Forensics Approach for Virtual Machines via Dynamic and Static Analysis | |
Zhang | Toward Fine-Grained Stateful Cloud Computing | |
Chaves | Enabling high productivity computing through virtualization | |
CN114840433A (zh) | 管理内核配置的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: McAfee limited liability company Address before: American California Patentee before: Mai Kefei company |
|
CP01 | Change in the name or title of a patent holder |