CN101853175A - 虚拟化环境中促进的自检 - Google Patents

虚拟化环境中促进的自检 Download PDF

Info

Publication number
CN101853175A
CN101853175A CN201010158239A CN201010158239A CN101853175A CN 101853175 A CN101853175 A CN 101853175A CN 201010158239 A CN201010158239 A CN 201010158239A CN 201010158239 A CN201010158239 A CN 201010158239A CN 101853175 A CN101853175 A CN 101853175A
Authority
CN
China
Prior art keywords
execution
virtual machine
component software
integrality
software
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
Application number
CN201010158239A
Other languages
English (en)
Other versions
CN101853175B (zh
Inventor
C·L·舒巴
T·P·玛斯兰德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle America Inc
Original Assignee
Oracle America Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle America Inc filed Critical Oracle America Inc
Publication of CN101853175A publication Critical patent/CN101853175A/zh
Application granted granted Critical
Publication of CN101853175B publication Critical patent/CN101853175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及虚拟化环境中促进的自检。一些实施方式提供了管理虚拟化环境中的软件组件执行的系统。在操作期间,该系统从虚拟化环境的外部位置监测软件组件的执行。接下来,该系统通过将监测到的执行与软件组件的预期操作进行比较,来评估软件组件的完整性,其中所述预期操作基于该软件组件的源代码而确定。最后,该系统使用所评估的软件组件的完整性来促进该软件组件的执行。

Description

虚拟化环境中促进的自检
相关申请
本申请的主题涉及与本申请相同发明人的、与本申请同日提交的、序列号和申请日待分配的、名为“Virtual Machine Snapshotting andDamage Containment”(代理卷号SUN09-0136)的共同未决非临时申请中的主题。
技术领域
本发明的实施方式涉及用于对虚拟机的执行进行管理的技术。更具体地,本发明的实施方式涉及用于促进虚拟机的自检(introspection)的方法和系统。
背景技术
虚拟化可以用来在单个物理机器上运行多个操作系统实例。例如,虚拟化可以允许多种类型的操作系统在单个服务器上的虚拟机内运行,并且共享服务器的物理资源。因此,计算系统中的虚拟化提供了多个优点,诸如改善的资源利用、成本的降低、服务器整合和/或避绕互操作性约束。
然而,虚拟化环境可能受制于与本机环境相同的安全性和完整性风险。具体地,物理机器内的每个虚拟机可能易受来自各种源的入侵和攻击。而且,在单个计算系统上执行多种类型的操作系统可能由于需要安全性测量考虑该计算系统上的每类操作系统的安全隐患,而使计算系统的安全性测量的实现复杂化。因此,对单个物理机器中的虚拟机的攻击可能难以检测、分析和/或管理。
因此,需要一种促进对虚拟机上的攻击和漏洞利用进行检测、分析和管理的机制。
发明内容
某些实施方式提供了一种管理虚拟化环境中的软件组件的执行的系统。在操作期间,该系统从虚拟化环境的外部位置监测软件组件的执行。接下来,该系统通过将监测到的执行与软件组件的预期操作进行比较,来评估软件组件的完整性,其中预期操作基于软件组件的源代码而确定。最后,该系统使用所评估的软件组件的完整性,来促进软件组件的执行。
在某些实施方式中,该系统还附加地从外部位置监测与软件组件的等同软件组件的执行,并且通过将软件组件的监测到的执行与等同软件组件的附加监测到的执行进行比较,来进一步评估软件组件的完整性。
在某些实施方式中,促进软件组件的执行包括以下至少一个:验证软件组件的执行,调试软件组件,以及对软件组件的漏洞利用做出响应。
在某些实施方式中,评估软件组件的完整性包括以下至少一个:检测监测到的执行相对于软件组件的预期操作的偏离,以及确定相对于预期操作的偏离的源。
在某些实施方式中,软件组件是非开源的。
在某些实施方式中,软件组件是操作系统和应用的至少一个。
在某些实施方式中,通过在虚拟机中执行操作系统的管理程序(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(SolarisTM是Sun Microsystems公司的注册商标)和Microsoft Windows(Microsoft WindowsTM是微软公司的注册商标)的三个虚拟机。由此,特定于操作系统的应用和/或过程可以在计算系统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,这使得即使是在非开源操作系统(诸如MicrosoftWindows)中也可以克服语义差异。
本领域技术人员将会理解,计算系统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(JavaTM是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)。促进软件组件的执行可以包括:出于测试和/或发布目的而验证软件组件的执行,调试软件组件,和/或对在评估软件组件完整性中检测到的软件组件的漏洞利用做出响应。例如,可以使用所评估的软件组件完整性来批准软件组件的发布、挂起或者变更软件组件的执行和/或改变软件组件的源代码和/或后续执行。
仅仅出于说明和描述目的而给出了对各种实施方式的上文描述。其并非意在是穷尽性的或是将本发明限于所公开的形式。因此,多种修改和变形对于本领域技术人员来说将是易见的。而且,上述公开并非意在限制本发明。

Claims (20)

1.一种用于管理虚拟化环境中的软件组件的执行的计算机实现的方法,包括:
从所述虚拟化环境的外部位置监测所述软件组件的执行;
通过将监测到的执行与所述软件组件的预期操作进行比较,来评估所述软件组件的完整性,其中所述预期操作基于所述软件组件的源代码而确定;以及
使用所评估的所述软件组件的完整性,来促进所述软件组件的执行。
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所述的系统,其中增强所述应用的安全性包括:对与所述偏离的源相对应的漏洞利用做出响应。
CN201010158239.3A 2009-03-31 2010-03-30 虚拟化环境中促进的自检 Active CN101853175B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/415,801 US8356285B2 (en) 2009-03-31 2009-03-31 Facilitated introspection of virtualized environments
US12/415,801 2009-03-31

Publications (2)

Publication Number Publication Date
CN101853175A true CN101853175A (zh) 2010-10-06
CN101853175B CN101853175B (zh) 2014-07-23

Family

ID=42352762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010158239.3A Active CN101853175B (zh) 2009-03-31 2010-03-30 虚拟化环境中促进的自检

Country Status (3)

Country Link
US (1) US8356285B2 (zh)
EP (1) EP2237154A3 (zh)
CN (1) CN101853175B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103827882A (zh) * 2011-06-08 2014-05-28 迈可菲公司 用于虚拟分区监视的系统和方法
CN103827809A (zh) * 2011-07-27 2014-05-28 迈可菲公司 用于虚拟分区监测的系统和方法
CN104750536A (zh) * 2013-12-30 2015-07-01 华为技术有限公司 一种实现虚拟机自省的方法和装置
CN105659211A (zh) * 2013-09-17 2016-06-08 微软技术许可有限责任公司 虚拟机管理器促进的选择性代码完整性实施
CN107766192A (zh) * 2017-11-06 2018-03-06 长沙曙通信息科技有限公司 一种备份容灾系统任务自检方法与装置
CN108874499A (zh) * 2018-04-12 2018-11-23 彭根 软件评估方法及装置
CN109960937A (zh) * 2019-04-02 2019-07-02 中国传媒大学 一种漏洞演练环境的构建方法及系统

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8863094B2 (en) * 2010-05-18 2014-10-14 International Business Machines Corporation Framework for a software error inject tool
US8918785B1 (en) * 2010-12-29 2014-12-23 Amazon Technologies, Inc. Managing virtual machine network through security assessment
US8745734B1 (en) 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
WO2013134206A1 (en) * 2012-03-05 2013-09-12 The Board Of Regents, The University Of Texas System Automatically bridging the semantic gap in machine introspection
CN102799522A (zh) * 2012-06-28 2012-11-28 浪潮(北京)电子信息产业有限公司 一种软件版本追溯测试的管理方法和系统
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
WO2014021881A1 (en) * 2012-08-01 2014-02-06 Empire Technology Development, Llc Anomaly detection for cloud monitoring
US9003408B2 (en) 2012-09-28 2015-04-07 Adventium Enterprises Providing virtual machine services by isolated virtual machines
US9582402B2 (en) * 2013-05-01 2017-02-28 Advanced Micro Devices, Inc. Remote task queuing by networked computing devices
US9619346B2 (en) 2013-10-31 2017-04-11 Assured Information Security, Inc. Virtual machine introspection facilities
US9483250B2 (en) * 2014-09-15 2016-11-01 International Business Machines Corporation Systems management based on semantic models and low-level runtime state
US10176019B2 (en) 2015-03-19 2019-01-08 International Business Machines Corporation Dynamic management of computing platform resources
US10228978B2 (en) * 2015-03-19 2019-03-12 International Business Machines Corporation Dynamic management of computing platform resources
US10243873B2 (en) 2015-03-19 2019-03-26 International Business Machines Corporation Dynamic management of computing platform resources
US9996374B2 (en) 2015-06-16 2018-06-12 Assured Information Security, Inc. Deployment and installation of updates in a virtual environment
US10061659B1 (en) * 2015-06-26 2018-08-28 EMC IP Holding Company LLC Direct access to backup copy
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
US10078576B2 (en) 2016-03-29 2018-09-18 International Business Machines Corporation Remotely debugging an operating system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506792A (en) * 1992-10-22 1996-04-09 Base 10 Systems, Inc. System for operating application software in a safety critical environment
WO2005098616A2 (en) * 2004-03-30 2005-10-20 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US20080015808A1 (en) * 2006-05-02 2008-01-17 The Johns Hopkins University Methods and system for program execution integrity measurement

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901582B1 (en) * 1999-11-24 2005-05-31 Quest Software, Inc. Monitoring system for monitoring the performance of an application
US6988263B1 (en) * 2000-07-10 2006-01-17 International Business Machines Corporation Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
US7461369B2 (en) * 2001-03-30 2008-12-02 Bmc Software, Inc. Java application response time analyzer
US7047522B1 (en) * 2001-04-30 2006-05-16 General Electric Capital Corporation Method and system for verifying a computer program
US7047521B2 (en) * 2001-06-07 2006-05-16 Lynoxworks, Inc. Dynamic instrumentation event trace system and methods
US6978446B2 (en) * 2001-11-01 2005-12-20 International Business Machines Corporation System and method for protecting against leakage of sensitive information from compromising electromagnetic emanations from computing systems
US7313564B2 (en) * 2002-12-03 2007-12-25 Symbioware, Inc. Web-interactive software testing management method and computer system including an integrated test case authoring tool
US7596778B2 (en) * 2003-07-03 2009-09-29 Parasoft Corporation Method and system for automatic error prevention for computer software
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
EP1680741B1 (en) * 2003-11-04 2012-09-05 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
US7464373B1 (en) * 2003-12-10 2008-12-09 The Mathworks, Inc. System and method for using a graphical debugging tool in a modeling and execution environment
US7546587B2 (en) * 2004-03-01 2009-06-09 Microsoft Corporation Run-time call stack verification
US7779238B2 (en) * 2004-06-30 2010-08-17 Oracle America, Inc. Method and apparatus for precisely identifying effective addresses associated with hardware events
GB0418306D0 (en) * 2004-08-17 2004-09-15 Ibm Debugging an application process at runtime
US7721260B2 (en) * 2004-09-08 2010-05-18 Kozio, Inc. Embedded Test I/O Engine
US7908590B1 (en) * 2006-03-02 2011-03-15 Parasoft Corporation System and method for automatically creating test cases through a remote client
US8024708B2 (en) * 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US7797748B2 (en) * 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
US8166459B2 (en) * 2008-02-27 2012-04-24 Sap Ag Apparatus and method of generating self-debugging computer software

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506792A (en) * 1992-10-22 1996-04-09 Base 10 Systems, Inc. System for operating application software in a safety critical environment
WO2005098616A2 (en) * 2004-03-30 2005-10-20 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US20080015808A1 (en) * 2006-05-02 2008-01-17 The Johns Hopkins University Methods and system for program execution integrity measurement

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BRYAND.PAYNE ETC.: "《Secure and Flexible Monitoring of Virtual Machines》", 《COMPUTER SECURITY APPLICATION CONFERENCE 2007》 *
KENICHI KOURAI ET AL: "《HyperSpector: Virtual Distributed Monitoring Environments for Secure Intrusion Detection》", 《PROCEEDING OF THE FIRST ACM/USENIX INTERNATIONAL CONFERENCE ON VIRTUAL EXECUTION ENVIRONMENTS VEE"05》 *

Cited By (17)

* Cited by examiner, † Cited by third party
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
US10032024B2 (en) 2011-06-08 2018-07-24 Mcafee, Llc System and method for virtual partition monitoring
CN103827882A (zh) * 2011-06-08 2014-05-28 迈可菲公司 用于虚拟分区监视的系统和方法
CN103827882B (zh) * 2011-06-08 2017-03-29 迈可菲公司 用于虚拟分区监视的系统和方法
CN103827809B (zh) * 2011-07-27 2018-05-25 迈可菲公司 用于虚拟分区监测的系统和方法
CN103827809A (zh) * 2011-07-27 2014-05-28 迈可菲公司 用于虚拟分区监测的系统和方法
CN105659211A (zh) * 2013-09-17 2016-06-08 微软技术许可有限责任公司 虚拟机管理器促进的选择性代码完整性实施
US10198572B2 (en) 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
CN105659211B (zh) * 2013-09-17 2019-03-22 微软技术许可有限责任公司 虚拟机管理器促进的选择性代码完整性实施
WO2015101148A1 (zh) * 2013-12-30 2015-07-09 华为技术有限公司 一种实现虚拟机自省的方法和装置
CN104750536A (zh) * 2013-12-30 2015-07-01 华为技术有限公司 一种实现虚拟机自省的方法和装置
US10007785B2 (en) 2013-12-30 2018-06-26 Huawei Technologies Co., Ltd. Method and apparatus for implementing virtual machine introspection
CN104750536B (zh) * 2013-12-30 2018-08-21 华为技术有限公司 一种实现虚拟机自省的方法和装置
CN107766192A (zh) * 2017-11-06 2018-03-06 长沙曙通信息科技有限公司 一种备份容灾系统任务自检方法与装置
CN108874499A (zh) * 2018-04-12 2018-11-23 彭根 软件评估方法及装置
CN109960937A (zh) * 2019-04-02 2019-07-02 中国传媒大学 一种漏洞演练环境的构建方法及系统
CN109960937B (zh) * 2019-04-02 2020-10-27 中国传媒大学 一种漏洞演练环境的构建方法及系统

Also Published As

Publication number Publication date
US20100251238A1 (en) 2010-09-30
EP2237154A2 (en) 2010-10-06
EP2237154A3 (en) 2012-12-26
US8356285B2 (en) 2013-01-15
CN101853175B (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN101853175B (zh) 虚拟化环境中促进的自检
US8516471B2 (en) Detecting impact of operating system upgrades
US11023325B2 (en) Resolving and preventing computer system failures caused by changes to the installed software
US8868987B2 (en) Systems and methods for visual correlation of log events, configuration changes and conditions producing alerts in a virtual infrastructure
US9323549B2 (en) Systems and methods for triggering scripts based upon an alert within a virtual infrastructure
US10203974B2 (en) Probe insertion via background virtual machine
US20130013953A1 (en) Health monitoring of applications in a guest partition
CN101853346A (zh) 虚拟机快照和损坏抑制
JP2022100301A (ja) ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨)
US20170068526A1 (en) Identifying issues prior to deploying software
US9612827B2 (en) Automatically complete a specific software task using hidden tags
US10552282B2 (en) On demand monitoring mechanism to identify root cause of operation problems
US11656930B2 (en) Minimizing impact of first failure data capture on computing system using recovery process boost
US20220391310A1 (en) Autonomous testing of software robots
CN108090352A (zh) 检测系统及检测方法
US10346286B2 (en) Problem diagnosis technique of memory corruption based on regular expression generated during application compiling
CN115840691A (zh) 远程修复崩溃进程
US9329856B2 (en) Managing a code load
US9122551B2 (en) Methods and systems for generating read-only operating systems
US11947420B2 (en) Hardware memory error tolerant software system
Sultania Monitoring and Failure Recovery of Cloud-Managed Digital Signage
Song et al. MBR Image Automation Analysis Techniques Utilizing Emulab
Muñoz et al. Dynamic security monitoring and accounting for virtualized environments
Pecchia et al. Criticality-driven component integration in complex software systems
Pecchia et al. Leveraging Fault Injection Techniques in Critical Industrial Applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant