虚拟化环境中促进的自检的制作方法

文档序号:6601408阅读:154来源:国知局
专利名称:虚拟化环境中促进的自检的制作方法
技术领域
本发明的实施方式涉及用于对虚拟机的执行进行管理的技术。更具体地,本发明 的实施方式涉及用于促进虚拟机的自检(introspection)的方法和系统。
背景技术
虚拟化可以用来在单个物理机器上运行多个操作系统实例。例如,虚拟化可以允 许多种类型的操作系统在单个服务器上的虚拟机内运行,并且共享服务器的物理资源。因 此,计算系统中的虚拟化提供了多个优点,诸如改善的资源利用、成本的降低、服务器整合 和/或避绕互操作性约束。然而,虚拟化环境可能受制于与本机环境相同的安全性和完整性风险。具体地,物 理机器内的每个虚拟机可能易受来自各种源的入侵和攻击。而且,在单个计算系统上执行 多种类型的操作系统可能由于需要安全性测量考虑该计算系统上的每类操作系统的安全 隐患,而使计算系统的安全性测量的实现复杂化。因此,对单个物理机器中的虚拟机的攻击 可能难以检测、分析和/或管理。因此,需要一种促进对虚拟机上的攻击和漏洞利用进行检测、分析和管理的机制。

发明内容
某些实施方式提供了一种管理虚拟化环境中的软件组件的执行的系统。在操作期 间,该系统从虚拟化环境的外部位置监测软件组件的执行。接下来,该系统通过将监测到的 执行与软件组件的预期操作进行比较,来评估软件组件的完整性,其中预期操作基于软件 组件的源代码而确定。最后,该系统使用所评估的软件组件的完整性,来促进软件组件的执 行。在某些实施方式中,该系统还附加地从外部位置监测与软件组件的等同软件组件 的执行,并且通过将软件组件的监测到的执行与等同软件组件的附加监测到的执行进行比 较,来进一步评估软件组件的完整性。在某些实施方式中,促进软件组件的执行包括以下至少一个验证软件组件的执 行,调试软件组件,以及对软件组件的漏洞利用做出响应。在某些实施方式中,评估软件组件的完整性包括以下至少一个检测监测到的执 行相对于软件组件的预期操作的偏离,以及确定相对于预期操作的偏离的源。 在某些实施方式中,软件组件是非开源的。 在某些实施方式中,软件组件是操作系统和应用的至少一个。
5
在某些实施方式中,通过在虚拟机中执行操作系统的管理程序(hypervisor)来 监测操作系统的执行。在某些实施方式中,通过在虚拟化环境中执行应用的内核来监测应用的执行。


图1A示出了按照一个实施方式的计算系统。图1B示出了按照一个实施方式的计算系统。图2示出了说明按照一个实施方式在虚拟化环境中管理软件组件执行的过程的 流程图。
具体实施例方式给出下文描述以使本领域的任何技术人员能够实现和使用实施方式,并且下文描 述是在特定应用及其需求的上下文中提供的。对所公开实施方式的各种修改对于本领域技 术人员而言将是易见的,并且在此定义的一般性原理可以应用于其他实施方式和应用,而 不脱离本公开的精神和范围。由此,本发明不限于示出的实施方式,而是按照符合与在此公 开的原理和特征的最宽泛范围。本详细描述中所描述的数据结构和代码通常存储在计算机可读存储介质上,该介 质可以是能够存储供计算机系统使用的代码和/或数据的任何设备或者介质。计算机可读 存储介质包括但不限于易失性存储器;非易失性存储器;磁性和光学存储设备,诸如盘驱 动、磁带、CD (压缩盘)、DVD(数字通用盘或者数字视频盘);或者能够存储计算机可读介质 的现在已知或者今后开发的其他介质。在详细描述部分中描述的方法和过程可以具体化为代码和/或数据,其可以存储 在如上所述的计算机可读存储介质中。当计算机系统读取和执行存储在计算机可读存储介 质上的代码和/或数据时,该计算机系统执行具体化为数据和结构、并且被存储在计算机 可读存储介质中的方法和过程。此外,下面描述的方法和过程可以包括在硬件模块中。例如,硬件模块可以包括但 不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及现在已知或今后开发的 其他可编程逻辑器件。当硬件模块被激活时,硬件模块执行包括在该硬件模块中的方法和 过程。实施方式提供了一种用于在虚拟化环境中对软件组件的执行进行管理的方法和 系统。软件组件可以对应于在计算系统上执行的应用、操作系统和/或驱动。而且,可以通 过计算系统上的管理程序和/或操作系统内核来管理虚拟化环境。例如,虚拟化环境可以 对应于通过计算系统上的管理程序所提供的服务在操作系统上运行的虚拟机。备选地,虚 拟化环境可以对应于通过计算系统上的操作系统内核来执行的应用的运行时环境。更具体地,实施方式提供了一种用于促进在虚拟化环境中执行的软件组件的自检 的方法和系统。可以通过虚拟化环境的外部位置处的自检模块来监测软件组件的执行。该 自检模块可以周期性地、随机地和/或在检测到与软件组件相关联的事件时监测软件组 件。自检模块还可以通过将软件组件的监测到的执行与该软件组件的预期操作和/或等同 软件组件的监测到的执行进行比较,来评估该软件组件的完整性。
在一个或多个实施方式中,软件组件的预期操作是基于该软件组件的源代码来确 定的。因此,由于自检模块包括理解从软件组件观测到的低层信息的功能性,这些低层信 息诸如存储器页面、网络分组、系统调用、变量的域范围、代码模块、数据结构、硬件事件和/ 或输入/输出(I/O)事件,所以自检模块可以克服由虚拟化环境带来的语义差异。在一个或多个实施方式中,评估软件组件的完整性包括检测监测到的执行相对 于软件组件的预期操作的偏离,和/或确定相对于预期操作的偏离的源(例如,漏洞利用、 缺陷(bug)、错误等)。继而可以使用评估的软件组件完整性来促进软件组件的执行。具体 地,可以通过自检模块来验证和调试软件组件的执行。此外,自检模块可以支持对软件组件 的漏洞利用的响应。图1A示出了按照一个实施方式的计算系统102。具体地,图1A示出了用于对虚 拟化环境中的一个或多个操作系统(例如,操作系统126-128)的执行进行管理的计算系统 102中的配置。该配置包括硬件104,管理程序106,控制域108,一组服务域110-112,以 及一组访客域114-116。这些组件中的每一个都将在下文进一步详述。计算系统102可以对应于向用户提供一个或多个服务或功能的电子计算设备。例 如,计算系统102可以作为个人计算机、膝上型计算机、服务器和/或工作站来进行操作。此 外,计算系统102的功能性可以由计算系统102中诸如处理器、存储器、输入/输出(I/O) 设备和/或网络接口卡等的硬件104组件上的软件的执行来提供。例如,计算系统102可 以包括操作系统,其协调对计算系统102上的硬件104和软件资源的使用;以及一个或多 个应用,其为用户执行专门化任务。更具体地,计算系统102上的软件(诸如操作系统和应用)可以在一个或多个虚 拟机中执行。每个虚拟机可以对应于用于物理机器(例如,计算系统102)的在硬件104上 执行的基于软件的虚拟化环境。每个虚拟机还可以配置用于独立于计算系统102上的其他 虚拟机来执行各种应用、过程和/或操作系统。换言之,在单组硬件104资源上的多个虚拟 机的独立执行可以提供提高的通用性、资源利用率和/或计算系统102的安全性。在一个或多个实施方式中,计算系统102充当服务器,诸如应用服务器、Web服 务器和/或电子邮件服务器。因此,计算系统102可以配置用于处理来自多个用户的传 入事件和/或向用户提供种类广泛的服务。为了改善基于服务器的功能性和性能,计算 系统102可以在虚拟机中执行各种操作系统实例。例如,计算系统102可以包括分别 运行 Linux、Solaris (Solaris 是 Sun Microsystems 公司的注册商标)和 Microsoft Windows (Microsoft Windows 是微软公司的注册商标)的三个虚拟机。由此,特定于操作 系统的应用和/或过程可以在计算系统102上包含该操作系统的虚拟机中运行。此外,可 以将对一个操作系统的安全性漏洞利用限定于包含该操作系统的虚拟机,并且可以不影响 计算系统102中其他虚拟机上的其他操作系统的执行。在一个或多个实施方式中,计算系统102上的虚拟机作为访客域(例如,访客域 114-116)来执行。计算系统102还可以包括其他域,诸如控制域108和服务域110-112。每 个域可以对应于计算系统102中的软件、资源和/或标识的区别于其他域的逻辑分组。例 如,每个域可以包括操作系统内核、内核补丁以及针对内核的调节参数;一组用户账户和 /或管理员;一组盘;和/或一组网络接口和地址。而且,管理程序106可以允许对计算系 统102上的域的控制和执行。
管理程序106可以对应于计算系统102上的固件层,其作为针对域的硬件控制来 操作。换言之,管理程序106可以通过控制从每个域对硬件104资源的访问以及保持这些 域之间的隔离来管理域的执行。例如,管理程序106可以向给定的域分配计算系统102上 的处理器、存储器和/或I/O资源的子集。因此,管理程序106可以支持计算系统102上的 多个操作系统的同时执行,其中每个操作系统都在访客域中。备选地,管理程序106可以对 应于托管的管理程序,其在计算系统102上的本机操作系统中运行,并且通过本机操作系 统来获得用于域的资源。在一个或多个实施方式中,通过控制域108来执行对计算系统102中域的管理。更 具体地,在控制域108中执行的域管理器118可以包括通过管理程序106获得的、用以创建 和管理域以及为域分配资源的功能性。换言之,域管理器118可以对应于控制域108中的 软件组件,其向控制域108的用户外露管理程序106的能力。可以通过域管理器118向管 理程序106发送来自用户的用于管理域的命令,管理程序106可以通过与硬件104对接来 实现命令。例如,可以由域管理器118从用户处获得域之间的资源分配改变,并且将其发送 至管理程序106,以便更新与域相关联的硬件104资源分区。服务域110-112可以向计算系统102的其他域提供虚拟设备服务122-124。例如, 服务域110-112可以向其他域提供虚拟化设备,诸如虚拟交换机、盘服务器和/或网络接口 卡。其他域可以按照其与物理设备交互的相同方式来进一步与虚拟化设备交互。本领域技术人员将会理解,操作系统126-128可能包括安全性隐患。尽管对安全 性隐患的漏洞利用可能仅影响包含该安全性隐患的操作系统,但是此类漏洞利用可能禁用 或者不利地影响由受影响的操作系统提供的特性或者服务。此外,由于操作系统在其中执 行的虚拟化环境(例如,访客域114-116)与该虚拟化环境外部的监测机制之间的语义差 异,可能难以检测或者分析该漏洞利用。为了解决与虚拟机相关的安全性问题,可以使用自检技术来管理虚拟机在计算系 统102上的执行,该自检技术允许检测和分析对虚拟机的漏洞利用。具体地,可以由控制域 108或者其他域中的自检模块120在执行期间监测每个虚拟机的异常操作。自检模块120 可以对应于如下软件组件,该软件组件基于虚拟机的预期基本操作来执行针对虚拟机的完 整性检查。而且,自检模块120可以克服与虚拟机的语义差异,因为该自检模块是基于该虚 拟机的源代码来操作的。具体地,自检模块120可以在对应的操作系统126-128的隔离虚拟环境(例如,访 客域114-116)的外部位置处执行。因此,自检模块120可以不受操作系统执行中的改变、漏 洞利用和/或错误的影响。此外,如果对应的操作系统发生故障或者被禁用,自检模块120 可以继续执行。在一个或多个实施方式中,自检模块120通过将操作系统的监测到的执行与操作 系统的预期操作进行比较,来评估操作系统的完整性。在一个或多个实施方式中,基于操作 系统的源代码来确定每个操作系统的预期操作。换言之,操作系统的预期操作可以对应于 按照该操作系统的设计师、架构师和/或工程师的意图的操作系统的基本功能性。因此,自 检模块120可以由熟悉自检模块120将要监测的操作系统的架构和/或预计功能性的人员 来编与。例如,对于Microsoft Windows操作系统而言,可以由MicrosoftWindows的架构师来编写一个或多个自检模块。架构师可以熟悉Microsoft Windows的预计功能性和/或 行为二者,并且还可以访问Microsoft Windows的源代码。因此,架构师可能能够实现针 对Microsoft Windows的一组自检模块,其从Microsoft Windows实例的外部准确地评估 在计算系统102中执行的一个或多个MicrosoftWindows实例的完整性。此外,在创建针对 Microsoft Windows的自检模块时,架构师无需公开Microsoft Windows的源代码。换言 之,架构师可以创建用于准确评估Microsoft Windows实例的完整性的自检模块,同时维持 Microsoft Windows的非开源特性。在一个或多个实施方式中,监测操作系统的执行包括监测低层信息,诸如存储器 页面、网络分组、系统调用、变量的域范围、代码模块、数据结构、硬件事件以及输入/输 出(I/O)事件。自检模块120可以理解从操作系统观测到的此类低层、外部观测的信息, 因为自检模块120是由熟悉操作系统的结构和预计操作的人员创建的。由此,自检模块 120可以克服操作系统中的低层信息与高层数据表示之间的语义差异。而且,由熟悉操作 系统的预计功能性的人员来创建自检模块120,这使得即使是在非开源操作系统(诸如 Microsoftffindows)中也可以克服语义差异。本领域技术人员将会理解,计算系统102可以包括用于监测一个或多个操作系统 的多个自检模块。例如,每个自检模块可以监测对应操作系统的一个或多个组件。因此,在 计算系统102中的访客域(例如,虚拟机)内执行的一个操作系统可以包括多个自检模块, 每个自检模块监测操作系统中执行的不同区域。类似地,操作系统的每个实例可以由用于 该操作系统的独立自检模块组来监测,或者同一自检模块组可以用来并发地监测在计算系 统102中执行的操作系统的多个实例。由此,自检模块和操作系统的不同配置可以允许对 每个操作系统的周期性监测、随机监测和/或基于事件的监测。因为操作系统可以在计算环境102中的虚拟化环境中执行,因此操作系统可以在 与一组等同虚拟机相结合的虚拟机中执行。例如,操作系统126-128可以对应于Microsoft Windows,Solaris和/或Linux的等同实例。两个实例可以包括计算系统102上的应用、过 程和/或硬件资源使用的等同配置。因此,可以通过以下来检测计算系统102中的一个操 作系统实例的操作中的错误和/或改变,即,附加地监测计算系统102中的等同操作系统实 例的执行、以及将该一个操作系统实例的监测到的执行与其他操作系统实例的执行进行比 较。例如,计算系统102可以包括Microsoft Windows的n个实例。每个实例可以等同地配 置,并且执行相同的应用和/或过程。由此,通过将一个Microsoft Windows实例的监测到 的执行与其他n-1个MicrosoftWindows实例的执行进行比较,可以检测该一个Microsoft Windows实例的操作中的错误和/或改变。换言之,一个Microsoft Windows实例的行为相 对于其他Microsoft Windows实例的行为的偏离可以指示该Microsoft Windows实例中的 错误、故障和/或漏洞利用。在一个或多个实施方式中,评估软件组件的完整性包括检测监测到的执行相对 于操作系统的预期操作的偏离,和/或确定相对于预期操作的偏离的源。检测监测到的执 行相对于预期操作的偏离可以对应于对操作系统的监测到的执行所确定的操作系统正确 性的一般性分析。例如,存储器页面、系统调用、变量域范围和/或从操作系统监测到的其 他信息较之此类信息的预期表示的改变,可以代表监测到的执行相对于预期操作的偏离。 另一方面,确定相对于预期操作的偏离的源可以涉及对从操作系统观测到的不正确行为的具体分析,以确定该不正确行为的原因。例如,可以分析来自操作系统的外部观测信息的 改变来得到对该改变的特定源进行揭示的模式和/或趋势,该改变的特定源诸如引起该改 变的特定漏洞利用、错误和/或缺陷。最后,可以使用评估出的操作系统完整性来促进该操作系统的执行。具体地,可以 使用评估出的操作系统完整性来验证操作系统的执行、调试操作系统和/或对操作系统的 漏洞利用做出响应。例如,可以使用操作系统的经过检验的完整性来验证操作系统的执行。 类似地,可以使用操作系统的完整性的失效来防止该失效扩散到其他操作系统、挂起该操 作系统的执行和/或恢复该操作系统的执行的完整性。在一个或多个实施方式中,促进操作系统的执行包括实现用于操作系统的快照和 损坏包含(damage containment)技术。这种快照和损坏包含技术可以允许在受影响的操 作系统中包含和/或修正漏洞利用。在与本申请同日提交的、序列号和申请日待分配的、名 ^"Virtual Machine Snapshotting and Damage Containment" (SUN09-0136) 的共同未决非临时申请中,描述了虚拟机快照和损坏包含。图1B示出了按照一个实施方式的计算系统。更具体地,图1B示出了用于管理一 个或多个应用(例如,应用142-144)在虚拟化运行时环境(例如,运行时环境134-136)中 的执行的计算系统102中的配置。该配置包括硬件104、内核130、一组自检模块138-140 以及运行时环境134-136。在一个或多个实施方式中,图1B中计算系统102的配置用来促进在运行时环境 134-136中执行的应用142-144的自检。每个应用142-144可以对应于电子邮件客户端、地 址本、文档编辑器、报税应用、Web浏览器和/或配置用于为计算系统102的一个或多个用 户执行专门任务的其他软件组件。为了执行用户的任务,应用142-144可以从内核130(例 如,操作系统内核)获得对计算系统102上的硬件104 (例如,处理器、存储器、I/O组件、无 线发射机等)的使用。此外,可以由内核130来管理应用142-144在计算系统102上的执 行。例如,内核130可以包括用于初始化、运行和/或终止应用142-144的功能性,以及用 于执行应用142-144的一个或多个过程。如图1B所示,可以由自检模块138-140来监测应用142-144。与图1A的自检模 块120类似,自检模块138-140可以用来评估计算系统102中的软件组件的完整性。更具 体地,自检模块138-140可以用来评估由内核130管理的、在运行时环境134-136中执行 的应用142-144的完整性。例如,自检模块138可以用来监测和分析Java (Java 是Sun Microsystems公司的注册商标)应用142在计算系统102上的Java运行时环境中的执行。 另一方面,自检模块140可以用来评估计算系统102上的本机应用144的完整性。与针对操作系统的自检模块类似,自检模块138-140可以用来以各种方式监测计 算系统102中的应用。例如,一个应用可以由一个自检模块来监测。备选地,如果应用较大 和/或复杂,该应用可以由一组自检模块来监测和分析。该组自检模块还可以用来监测计 算系统102中应用的等同实例,或者,应用的每个实例可以由自检模块的独立实例来监测。与图1A中的自检模块120类似,自检模块138-140可以基于应用142-144的源代 码。例如,自检模块138可以由应用142的工程师和/或架构师来编写。自检模块138还 可以利用应用142来发布,以允许在执行期间针对攻击来测试、调试和/或分析应用142。 而且,自检模块138-140独立于应用142-144执行可以允许自检模块138-140保持不包含应用142-144中的攻击和/或缺陷,以及检测应用142-144中的此类包含。由此,自检模块138-140可以用于通过检测应用142-144中的漏洞利用和/或支 持对所检测漏洞利用的响应,来增强应用142-144的安全性。例如,自检模块138-140可以 包括用于通过内核130以各种方式来监测和分析应用142-144的功能性,包括观测从应用 142-144的执行获得的信息(例如,存储器、系统调用、变量域范围、网络分组、代码模块、数 据结构、事件等);挂起应用142-144的执行;对应用142-144应用仪器;和/或修改应用 142-144的执行。在一个或多个实施方式中,图1B的自检模块138-140可以用来监测运行于不同于 图1A中自检模块120的抽象级别的软件组件。图1A中的计算系统102可以配置用于在虚 拟化硬件环境(例如,虚拟机)中执行操作系统,而图1B中的计算系统102可以配置用于 在虚拟化抽象环境、虚拟化操作系统平台、动态语言运行时抽象环境和/或用于应用的其 他虚拟化运行时环境134-136中来执行应用142-144。此外,图1B的配置可以完全在图1A的一个或多个组件中执行。例如,内核130、自 检模块138-140和/或运行时环境134-136可以在图1A的访客域(例如,访客域114-116) 中执行。由此,在计算系统102上的硬件能够支持此类嵌套的程度上,多组应用、操作系统、 虚拟机和/或自检模块可以相互嵌套。在管理程序和/或操作系统内核所提供的抽象级别 之外,还可以进行对计算系统102上的其他软件组件的自检。例如,可以通过与管理程序 106 一起执行和/或在管理程序106中执行的自检模块,来分析用于计算系统102的硬件组 件的软件驱动。换言之,图1A-图1B的配置可以促进在计算系统102中的不同平台、虚拟 环境和/或抽象级别中运行的软件组件的执行。图2示出了说明按照一个实施方式的管理虚拟化环境中的软件组件执行的过程 的流程图。在一个或多个实施方式中,一个或多个步骤可以省略、重复和/或以不同的顺序 执行。因此,图2中所示的特定步骤安排不应认为是限制本发明的范围。最初,从软件组件的外部位置监测该软件的执行(操作202)。监测可以周期性地 (例如,每几秒钟)进行、随机进行和/或在检测到与软件组件相关联的事件(例如,硬件事 件、I/O事件、基于网络的事件等)时进行。如上所述,软件组件可以指在计算系统中执行 的任何软件组件,诸如操作系统、应用和/或驱动。而且,软件组件可以在虚拟化运行时环 境中执行。例如,软件组件可以在虚拟机、动态语言运行时抽象环境、虚拟化过程抽象环境 和/或虚拟操作系统平台中执行。可选地,还可以监测该软件组件的等同软件组件(操作204)。等同软件组件可以 对应于与该软件组件等同地安装、配置和/或执行的软件组件。例如,软件组件可以对应于 一个操作系统实例,该操作系统实例与在相同物理计算环境(例如,图1A-图1B的计算系 统102)中和/或跨多个计算系统(例如,在数据中心中)分布的多个其他等同操作系统实 例一起执行。接下来,评估软件组件的完整性(操作206)。具体地,可以通过将软件组件的监 测到的执行与该组件的预期操作进行比较,来评估软件组件的完整性。组件的预期操作可 以进一步基于该软件组件的源代码。例如,软件组件的预期操作可以由该软件组件的工程 师、设计师和/或架构师来确定。因此,即使软件组件是非开源的,在评估该软件组件完整 性时使用源代码可以克服从软件组件外部观测到的低层信息与该软件组件所关联的高层数据结构和/或对象之间的语义差异。此类低层信息可以包括存储器页面、网络分组、系统 调用、变量的域范围、代码模块、数据结构、硬件事件和/或输入/输出(I/O)事件。评估的软件组件的完整性还可以基于在操作204中附加监测的等同软件组件的 执行。换言之,通过将软件组件的监测到的执行与附加监测的任何等同软件组件的执行进 行比较,可以进一步评估该软件组件的完整性。软件组件的执行相对于等同软件组件的执 行的改变可以指示该软件中存在错误、故障、缺陷和/或漏洞利用。最后,所评估的完整性用于促进软件组件的执行(操作208)。促进软件组件的执 行可以包括出于测试和/或发布目的而验证软件组件的执行,调试软件组件,和/或对在 评估软件组件完整性中检测到的软件组件的漏洞利用做出响应。例如,可以使用所评估的 软件组件完整性来批准软件组件的发布、挂起或者变更软件组件的执行和/或改变软件组 件的源代码和/或后续执行。仅仅出于说明和描述目的而给出了对各种实施方式的上文描述。其并非意在是穷 尽性的或是将本发明限于所公开的形式。因此,多种修改和变形对于本领域技术人员来说 将是易见的。而且,上述公开并非意在限制本发明。
权利要求
一种用于管理虚拟化环境中的软件组件的执行的计算机实现的方法,包括从所述虚拟化环境的外部位置监测所述软件组件的执行;通过将监测到的执行与所述软件组件的预期操作进行比较,来评估所述软件组件的完整性,其中所述预期操作基于所述软件组件的源代码而确定;以及使用所评估的所述软件组件的完整性,来促进所述软件组件的执行。
2.根据权利要求1所述的计算机实现的方法,进一步包括从所述外部位置附加地监测所述软件组件的等同软件组件的执行;以及 通过对所述软件组件的监测到的执行与所述等同软件组件的附加监测到的执行进行 比较,进一步评估所述软件组件的完整性。
3.根据权利要求1所述的计算机实现的方法,其中促进所述软件组件的执行包括以下 至少一个验证所述软件组件的执行; 调试所述软件组件;以及 对所述软件组件的漏洞利用做出响应。
4.根据权利要求1所述的计算机实现的方法,其中评估所述软件组件的完整性包括以 下至少一个检测所述监测到的执行相对于所述软件组件的所述预期操作的偏离;以及 确定相对于所述预期操作的所述偏离的源。
5.根据权利要求1所述的计算机实现的方法,其中所述软件组件是非开源的。
6.根据权利要求1所述的计算机实现的方法,其中所述软件组件是操作系统和应用中 的至少一个。
7.根据权利要求6所述的计算机实现的方法,其中通过在虚拟机中执行所述操作系统 的管理程序来监测所述操作系统的执行。
8.根据权利要求6所述的计算机实现的方法,其中通过在所述虚拟化环境中执行所述 应用的内核来监测所述应用的执行。
9.根据权利要求1所述的计算机实现的方法,其中监测所述软件组件的执行包括监测 以下至少一个存储器页面; 网络分组; 系统调用; 变量的域范围; 代码模块; 数据结构; 硬件事件;以及 输入/输出(I/O)事件。
10.根据权利要求1所述的计算机实现的方法,其中周期性地、随机地或者在检测到与 所述软件组件相关联的事件时监测所述软件组件的执行。
11.一种用于管理虚拟机的执行的系统,包括管理程序,其配置用于执行所述虚拟机以及所述虚拟机外部的一个或多个自检模块,其中所述一个或多个自检模块配置用于 监测所述虚拟机的执行;以及通过将监测到的执行与所述虚拟机的预期操作进行比较来评估所述虚拟机的完整性, 其中所述预期操作基于所述虚拟机的源代码而确定。
12.根据权利要求11所述的系统,其中所述管理程序进一步配置用于执行所述虚拟机的一组等同虚拟机,以及 其中所述一个或多个自检模块进一步配置用于 附加地监测每个所述等同虚拟机的执行;以及通过对所述虚拟机的监测到的执行与所述等同虚拟机的附加监测到的执行进行比较, 进一步评估所述虚拟机的完整性。
13.根据权利要求11所述的系统,其中通过以下来使用所评估的所述虚拟机的完整性 促进所述虚拟机的执行验证所述虚拟机的执行; 调试所述虚拟机;以及 对所述虚拟机的漏洞利用做出响应。
14.根据权利要求11所述的系统,其中评估所述虚拟机的完整性包括以下至少一个 检测所述监测到的执行相对于所述虚拟机的所述预期操作的偏离;以及确定相对于所述预期操作的所述偏离的源。
15.根据权利要求11所述的系统,其中所述虚拟机包括非开源操作系统。
16.根据权利要求11所述的系统,其中监测所述虚拟机的执行包括监测以下至少一个存储器页面; 网络分组; 系统调用; 变量的域范围; 代码模块; 数据结构; 硬件事件;以及 输入/输出(I/O)事件。
17.根据权利要求11所述的系统,其中周期性地、随机地或者在检测到与所述虚拟机 相关联的事件时监测所述虚拟机的执行。
18.一种用于管理虚拟化环境中的应用的执行的系统,包括内核,其配置用于执行所述应用以及所述虚拟化环境外部的一个或多个自检模块, 其中所述一个或多个自检模块配置用于 监测所述应用的执行;以及通过将监测到的执行与所述应用的预期操作进行比较来评估所述应用的完整性,其中 所述预期操作基于所述应用的源代码而确定,其中评估的所述应用的完整性用来增强所述应用的安全性。
19.根据权利要求18所述的系统,其中评估所述应用的完整性包括以下至少一个检测所述监测到的执行相对于所述应用的所述预期操作的偏离;以及 确定相对于所述预期操作的所述偏离的源。
20.根据权利要求19所述的系统,其中增强所述应用的安全性包括对与所述偏离的 源相对应的漏洞利用做出响应。
全文摘要
本发明涉及虚拟化环境中促进的自检。一些实施方式提供了管理虚拟化环境中的软件组件执行的系统。在操作期间,该系统从虚拟化环境的外部位置监测软件组件的执行。接下来,该系统通过将监测到的执行与软件组件的预期操作进行比较,来评估软件组件的完整性,其中所述预期操作基于该软件组件的源代码而确定。最后,该系统使用所评估的软件组件的完整性来促进该软件组件的执行。
文档编号G06F11/36GK101853175SQ201010158239
公开日2010年10月6日 申请日期2010年3月30日 优先权日2009年3月31日
发明者C·L·舒巴, T·P·玛斯兰德 申请人:甲骨文美国公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1