CN104995602B - 分层虚拟机完整性监视 - Google Patents
分层虚拟机完整性监视 Download PDFInfo
- Publication number
- CN104995602B CN104995602B CN201480008468.3A CN201480008468A CN104995602B CN 104995602 B CN104995602 B CN 104995602B CN 201480008468 A CN201480008468 A CN 201480008468A CN 104995602 B CN104995602 B CN 104995602B
- Authority
- CN
- China
- Prior art keywords
- vmm
- server
- instruction
- timer
- monitor
- 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.)
- Active
Links
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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- 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/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
各实施例一般涉及用于监视分层的虚拟机(VM)监视软件组件的状态的计算设备的各种硬件和软件组件的供应和使用。设备包括:第一处理器;以及逻辑,其用于:接收第一定时器已达到第一时段的结束的指示;监视由第二处理器元件对虚拟机监视器(VMM)监察器的执行;判断在第二定时器达到第二时段的结束之前,第二处理器元件是否完成了VMM监察器的执行以验证VMM的完整性;以及将对判断的指示传送到计算设备。描述了其他实施例,并要求它们的权利。
Description
技术领域
本文所描述的多个实施例一般涉及用于提供对虚拟机完整性的分层监视的多个硬件和软件组件的使用。
背景技术
随着基于服务器的计算服务(例如,所谓的“云”计算)的使用变得更加流行,用于提供那些服务的服务器的安全性变得愈加重要。同样,由此类服务器提供的服务类型已在种类上有所增加。结果,由那些寻求对提供给其他人的此类服务和对提供那些服务的服务器的未经授权的访问的人所做的企图(例如,所谓的“黑客操作”或“网络攻击”)已在数量上增长并在特点上发生变化。
破坏此类服务器的安全性的早期企图主要聚焦在破坏由服务器采用来提供特定类型或特定范围的服务的特定应用软件。作为示例,此类早期企图聚焦在破坏由服务器的处理器执行以提供特定类型的服务的数据库维护应用、搜索引擎应用、数据归档应用、货币或财务事务应用等。目标经常是通过破坏处理敏感数据的应用的安全性来获取对敏感数据的访问。
然而,破坏服务器的安全性的较新近的企图已更多地聚焦在破坏提供服务器自身的更基本的功能时所采用的操作系统或其他核心软件。在成为较新近的普遍目标的此类核心软件之间的是为不同的账户创建并维护单独的虚拟机的虚拟机监察器(monitor)(VMM),在这些不同的账户的顶上,采用此类服务器的服务的客户可执行各种不同的应用软件中的任何一个或应用软件的组合。
响应于该变化的安全威胁,已将VMM软件的各种片段设计成持续地监视在服务器上活动的每一个虚拟机,以指示已被破坏和/或其他问题。然而,破坏虚拟机的企图已继续变得更成熟,并且现在其包括破坏VMM软件自身的企图。正是针对这些和其他考虑才需要本文所述的多个实施例。
附图说明
图1示出多个计算设备之间的交互的第一实施例。
图2、3和4示出图1的实施例的诸部分。
图5示出图3的部分的变型。
图6示出第一逻辑流程的实施例。
图7示出第二逻辑流程的实施例。
图8示出第三逻辑流程的实施例。
图9示出处理架构的实施例。
具体实施方式
各实施例一般涉及用于监视分层的虚拟机监视(VMM)软件组件的状态的计算设备的各种硬件和软件组件的供应和使用。更具体而言,具有受限的访问的基于硬件的定时器、包括独立的处理器元件和存储设备的控制器以及去往管理设备的通信信道的辅助通信信道的组合协作以监视监察器软件,该监察器软件监视转而监视多个虚拟机会话的VMM软件。
在至少由服务器的处理器元件和存储设备定义的服务器的主操作环境中,VMM组件监视并控制多个虚拟机的操作,在这些虚拟机中的每一个之内,使该处理器元件执行应用软件的一个或多个片段。该VMM组件实施防止从一个虚拟机到另一个的访问的限制。该VMM可通过禁用或去除从其中尝试了此类未经授权的访问的虚拟机来响应在虚拟机之间的此类未经授权的访问处的尝试。
在主操作环境的存储设备的硬件保护区之内,VMM监察器执行对VMM组件的周期性状态校验以确保该VMM组件正在正确地运行,并且其完整性未遭破坏。由随机化硬件定时器触发该周期性状态校验,其中,在触发状态校验的每一个实例之间,时间间隔可随机改变。使得由VMM监察器将VMM组件的此类状态校验的结果的指示传送到与服务器分开并且与服务器不同的管理设备。
在与主操作环境分开并且与之不同的控制器环境中,存储在控制器存储设备中并由控制器处理器元件执行的监察器验证器校验VMM监察器以确保该VMM监察器(watcher)正在正确地运行,并且其完整性未遭破坏。对VMM监察器的这些校验需要监察器验证器监视由该VMM监察器进行的对VMM的状态校验的过程。独立于由VMM监察器引起的传输,由监察器验证器将对VMM监察器的此类校验的结果的指示传送到管理设备。
管理设备接收对VMM以及对VMM监察器的状态的这些单独的指示,并且采用这些指示来确定服务器的当前总体状态。管理设备可通过将重启服务器和/或采取其他服务器管理动作(诸如,将警告指示提供给操作者)的命令传送到控制器处理器元件来响应对服务器状态的一个或多个特定确定。应当注意,尽管集中于主要在单个服务器内进行的讨论,但是预想了将会将本文所公开的技术应用于多个服务器,并且管理设备将从多个服务器接收此类状态信息。
根据对本文中使用的标记法和命名法的一般引用,可以在计算机或计算机网络上执行的程序过程方面来呈现以下详细描述的多个部分。这些程序性描述和表示由本领域技术人员使用以便最有效地将它们工作的实质传递给本领域其他技术人员。过程在此一般被理解为导致所需结果的自洽的操作序列。这些操作是需要对物理量进行物理操控的操作。通常地但非必然地,这些量采取能被存储、转移、组合、比较并以其他方式操控的电、磁或光信号的形式。主要出于惯用法的原因,时不时地将这些信号称为位、值、元素、符号、字符、项、数字等被证明是方便的。然而,应当注意,所有这些和/或类似项旨在与适当的物理量相关联,并且仅仅是应用于那些量的方便的标记。
此外,通常按术语将这些操控称为常与由人类操作员执行的脑力操作相关联的相加或比较。然而,在形成一个或多个实施例的部分的本文所述的操作中的任何操作中,在多数情况下,没有人类操作员的此类能力是必需的或需要的。相反,这些操作是机器操作。用于执行各实施例的多个操作的有用的机器包括通用数字机器,其由根据本文的教导而写入的存储于其内的计算机程序选择性地激活或配置;并且/或者包括专门为所需目的而构造的装置。各实施例也涉及用于执行这些操作的装置或系统。可为所需目的专门构造这些装置,或者这些装置可包括通用计算机。各种这些机器的所需结构将从给定的描述中呈现。
现在将参考附图,自始至终同样的参考编号用于表示同样的元件。在以下描述中,为了进行解释,阐述了众多特定细节以便提供对该描述的全面理解。然而,显而易见的是,可以不利用这些特定细节而实施各新颖的实施例。在其他实例中,以框图形式示出了多个公知的结构和设备以便于对这些结构和设备的描述。本发明旨在涵盖在权利要求范围之内的所有修改、等效方案和替换方案。
图1描绘了计算服务系统1000的计算设备之间的交互的框图,计算服务系统1000包括寻求利用基于服务器的计算服务的操作者的交互设备100a-c中的一个或多个、用于提供此类服务的服务器300以及用于监督服务器300的操作的管理设备600。这些计算设备100a-c、300和600中的每一个可以是各种类型的计算设备中的任何一个,包括但不限于,台式计算机系统、数据录入终端、膝上型计算机、上网本计算机、超级本计算机、平板计算机、手持式个人数字助理、智能电话、数码相机、移动设备、合并到衣服中的身体穿戴的计算设备、集成到车辆中的计算设备、服务器、服务器群集、服务器场等。
如所描绘的那样,这些计算设备100a-c、300和600通过系统1000的网络999来交换信号,该信号传递表示对提供基于服务器的服务的状态的指示的数据。然而,这些计算设备中的一个或多个可交换与此类服务的供应完全不相关的其他数据。在各实施例中,网络999可以是可能限于在单个建筑或其他相对有限区域内延伸的单个网络、可能延伸相当长距离的多个经连接网络的组合和/或可包括因特网。由此,网络999可基于通过其可交换信号的各种通信技术(或通信技术的组合)中的任何技术,包括但不限于,采用电和/或光导电缆布线的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
应当注意,尽管对三个交互设备100a-c的数量进行了特定描绘,但是,可由寻求利用由服务器300提供的服务的任何数量的操作者采用各种数量中的任何数量的交互设备。因此,对这三个交互设备的该特定描绘仅是示例,其用于表达预想了可在任何给定时刻采用服务器300来将服务提供给多个交互设备,而无论它们的确切数量可能是什么。还应当注意,尽管将单个网络999描绘为在交互设备100a-c、服务器300以及管理设备600之间是共享的,但是应当理解,经由完全与被用于将服务器300耦合至诸如交互设备100a-c之类的交互设备的任何网络分开的网络(或其他形式的链路)将管理设备600耦合至服务器300和/或其他服务器的替代实施例是可能的。
在各实施例中,服务器300包括处理器元件350(担当服务器300的主处理器)、存储设备360、随机化定时器312、定时器313、中断控制器315、控制器400以及用于将服务器300耦合至网络999的接口390中的一个或多个。处理器元件350在存储设备360内定义了受保护位置367,从而从其中为存储于其中并由处理器元件350执行的指令的完整性提供基于硬件的保护。存储设备360将控制例程370、密钥337和状态数据339存储在受保护位置367之内。然而,多个虚拟机(VM)会话331x-z以及控制例程340被存储在存储设备360中的受保护位置367的外部。控制器400包括处理器元件450(担当服务器300的控制器400的控制器处理器)、存储设备460和一个或多个健康检测器417中的一个或多个。存储设备460存储控制例程440和状态数据439。
应当注意,尽管对三个VM会话331x-z的数量进行了特定描绘,但是,可由控制例程340实例化并维持各种数量中的任何数量的VM会话,可能仅由处理器元件350和存储设备360的容量限制。因此,三个VM会话的该特定描绘仅是示例,其用于表达预想了在任何给定时刻,在服务器300中可实例化并维持众多VM会话。还应当注意,不旨在表示三个所描绘的交互设备100a-c与三个所描绘的VM会话331x-z之间存在任何特定的对应关系。实际上,取决于在任何给定时刻对任何给定的VM会话的使用的性质和程度,在任何给定时刻,任何给定的VM会话可与多个交互设备相关联,或没有交互设备被耦合至服务器300都是完全可能的。可在各种应用软件中的任何应用软件或应用软件的组合的执行中采用VM会话331x-z中的每一个。
如本领域技术人员将容易地理解的那样,中断控制器315提供用于硬件和/或软件中断的中央收集点以及查找功能,以便呈现给处理器元件350来临时地停止由处理器元件350对一个指令序列的执行以支持执行另一序列。随机化定时器312在达到经随机选择的时间量的结束时发布中断(并且/或者经由某种其他机制用信号通知处理器元件350)。换言之,每当使用随机化定时器312时,所选择的时间量改变。相比之下,定时器313在达到明确选择的时间量的结束时发布中断(并且/或者经由某种其他机制用信号通知处理器元件350)。如将更详细地解释的那样,可使随机化定时器312和定时器313以其中一个计时器达到时间量的结束可充当使另一个定时器开始定时的触发的方式来协作。在对服务器300的初始化后(例如,在对其上电或重置其之后),可将指定的所选择的时间提供给定时器313,并且/或者可将这两个定时器将协作成使得一个触发另一个的方式的指示提供给这两个定时器。在一些实施例中,在对服务器300的初始化后,可将用于对时间量的随机选择的参数提供给随机化定时器312,使得每当该随机化定时器312被触发时,允许它自主地导出新的随机时段以进行计数。在其他实施例中,每当随机化定时器312每触发时,(受保护位置367中的)控制例程370可导出每一个新的随机时段以进行计数。替代地或附加地,控制例程370可将为使由该随机化定时器312进行的计数的结束与另一事件一致而选择的的时段提供给随机化定时器312,从而至少偶尔地使由随机化定时器312计数的时段可能实际上不是随机的。在对服务器300的初始化之后,可允许可由控制器400(和/或另一机制)实施的随机化定时器312和定时器313中的一者或两者的此类配置发生仅一次,并且在那之后都致使该配置不变直到服务器300的另一次初始化发生。
健康检测器417由一个或多个组件构成,可由这一个或多个组件监视服务器300的操作条件的不同方面。更具体而言,健康检测器417可包括监视服务器300的各种组件的温度的热传感器、监视以其将电功率提供给服务器300的组件中的一个或多个的电压的电压电平传感器、总线活动监察器、时钟信号监察器、处理器线程执行监察器等。
受保护位置367可由被处理器元件350定义为受制于相对严格的访问限制的一个或多个地址区段构成。此类限制可包括:授予被存储在受保护位置367内的可执行指令遍及存储设备360相对自由地在其他地址处访问数据和/或可执行指令的能力,同时可大大地限制或完全不准许由来自受保护位置367的外部的其他可执行指令进行的访问。替代地或附加地,可授予存储在受保护位置367之内的可执行指令在各个地址位置处访问服务器300的相对宽选择的组件的能力,同时由受保护位置367外部的其他可执行指令进行的访问可限于相对有限选择的组件。在对服务器300的初始化之后(例如,在对其上电或重置其之后),处理器元件350可配置成用于定义受保护位置367占据的存储设备360内的地址位置和/或在受保护范围360之内或之外两处的可执行指令的相对访问优先级程度。可由控制器400实施此类配置和/或可准许此类配置发生仅一次,并且之后直到服务器300的另一次初始化发生都(由处理器元件350和/或其他硬件)致使该配置不变。按此方式,受保护位置367不会由恶意软件暗中使其变得不安全。
控制例程340包括在按其作用作为服务器300的主处理器的处理器元件350上的操作以实现用于执行各种功能的逻辑的指令序列。在执行控制例程340的指令序列时,使处理器元件350实例化、维持并监视VM会话331x-z中的每一个。本质上,控制例程340实现VM监视器(VMM)的逻辑。在VM会话331x-z中的每一个之内,由处理器元件350作为向与VM会话331x-z中的不同会话相关联的交互设备110a-c中的不同设备提供基于服务器的计算服务的部分来执行应用软件或应用软件的组合。控制例程340使处理器元件350维持VM会话331x-z中的每一个之间的隔离度(a degree of isolation),使得该控制例程340不准许在这些VM会话中的一个之内的由处理器元件350执行的应用软件使该处理器元件350访问这些VM会话中的另一会话之内的数据或应用软件。在检测到由可执行指令在这些VM会话中的一个之内使处理器元件350进行此类不准许的访问的尝试后,控制例程340可使该处理器元件350禁用可从其中尝试该不准许的访问的VM会话、去除该VM会话和/或采取各种其他动作中的任何动作。因此,控制例程340通过在VM会话之间的隔离度的供应来使处理器元件350提供安全度。
控制例程370也包括在处理器元件350上操作以实现用于执行各种功能的逻辑的指令序列。通过随机化定时器312完成计数到(例如,倒计数到)随机选择的时段的结束,并且随后用信号通知处理器元件350临时地停止对控制例程340的执行并开始对控制例程370的执行来使由处理器元件350执行控制例程370。在执行控制例程370的指令序列时,使处理器元件350临时地(至少部分地)禁用中断控制器315,从而排除由可通过该中断控制器315传递到处理器元件350的至少一些类型的中断使处理器元件350停止对控制例程370的执行。然后,使处理器元件350按各种可能方法中的任何方法来检查控制例程340的至少部分的完整性。本质上,控制例程370实现VMM监察器(watcher)的逻辑。在一个可能的实施例中,能以对控制例程340的至少部分进行数字签名,并且可由控制例程370使处理器元件350使用匹配的密码密钥(即,密钥337)来以密码方式验证该数字签名。因此,控制例程370使处理器元件350通过测试控制例程340的完整性来提供另一安全度,以确保控制例程340没有遭破坏(例如,经恶意软件更改、扩充或替换)。
无论处理器元件350是否能够(通过无论什么方式)验证控制例程340的至少部分的完整性,随后,控制例程370都使该处理器元件350在状态数据339中指示其检查的结果,并且随后使得该状态数据339经由网络999被传送到管理设备600。在一些实施例中,禁用中断控制器315以允许对控制例程370的不中断执行的事实导致控制例程不得不具有相对紧凑的尺寸,以便可足够快地执行来允许对中断控制器315的相对快速的重新启用,从而避免对中断的预防性(forestalling)响应持续过久。因此,在此类实施例中,控制例程370可不包括直接使处理器元件350操作接口390以将状态数据339传送到管理设备600所需的指令。因此,在此类实施例中,控制例程370可使处理器元件350在完成对控制例程370的执行并恢复对控制例程340的执行之后才执行对状态数据339的此类传送。
在完成了至少检查了控制例程340的完整性之后,由控制例程370使处理器元件350重新启用中断控制器315,停止对控制例程370的执行并恢复执行控制例程340。此外,正如所讨论的那样,现在可采用被合并进控制例程340中以操作接口390来这样做的指令来使处理器元件350将状态数据339传送到管理设备600。然而,应当注意,如果控制例程340实际上遭破坏或以其他方式不起作用,则依赖控制例程340来使处理器元件350执行状态数据339向管理设备600的传送的事实会导致从不传送该状态数据339,使得管理设备600无法接收它。
控制例程440包括在按其作用作为控制器400的控制器处理器的处理器元件450上的操作以实现用于执行各种功能的逻辑的指令序列。也通过随机化定时器312完成计数到(例如,倒计数到)随机选择的时段的结束来导致由处理器元件450对控制例程440的执行。因此,将由随机化定时器312进行的计数的完成看作触发事件,该触发事件通过中断控制器315和/或由另一机制来触发对控制例程370和440两者的执行的开始。由随机化定时器312进行的计数的完成也触发由定时器313进行的计数的启动直至相对短的时段的结束,相对短的时段被选择成反映预期处理器元件350完成对控制例程370的执行的相对短的时段。预想了针对远小于秒(诸如,几十毫秒或几百毫秒持续时间)的时间量来设置定时器313。相比之下,预想了要么利用使随机化定时器312随机地选择几分钟到几天持续时间的时段的参数来配置该随机化定时器312,要么将几分钟到几天持续时间的随机选择的时段提供给该随机化定时器312。由随机化定时器312进行的计数的完成也导致用信号通知处理器元件450开始对控制例程440的执行。在执行控制例程440的指令序列时,在定时器313完成计数到其所选择的时段的结束之前,使处理器元件450判断处理器元件350是否完成了对控制例程370的执行。本质上,控制例程440实现VMM监察器验证功能。
如果在定时器313完成计数之前,处理器元件350完成了对控制例程370的执行,则(在一些实施例种)可作出在处理器元件350上的控制例程370的VMM监察器功能的操作正在正确地工作的推测。结果,可作出使处理器元件350在状态数据339中发送到管理设备600的无论什么结果的指示都是对控制例程340的完整性的准确评价的推测。然而,如果在处理器元件350完成对控制例程370的执行之前定时器313就完成了计数,则可作出要么(硬件或软件)故障已发生要么控制例程370的完整性已遭破坏的推测。在一些实施例种,在已被允许完成计数之后,定时器313可配置成用于自动地重新触发其自身,并且可将此看作重新触发处理器元件350再次执行控制例程370的触发事件。取决于稍早时在由定时器313进行的计数的完成之前对控制例程370的执行未能完成的原因,通过定时器313完成计数对处理器元件350进行此类触发以执行控制例程370可校正该问题。否则,定时器313可反复地完成计数并且反复地重新触发其自身以再次计数,这可由处理器元件450检测,并将其报告给管理设备600。
无论在定时器313完成计数之前处理器元件350是否能够完成对控制例程370的执行,都由控制例程440使处理器元件450在状态数据439中指示处理器元件350为了这样做而努力的结果。控制例程440包括在没有来自处理器元件350的辅助的情况下使处理器元件450能够操作接口390以将状态数据439传送到管理设备600所需的指令,并且控制例程440使处理器元件450这样做。结果,每当随机化定时器312完成计数到随机选择的时段的结束时,并且无论使得管理设备600可能无法接收状态数据339的控制例程340或370中的任何一个的条件如何,管理设备600仍然应当接收到状态数据439。
处理器元件450和存储设备460定义控制器400之内的操作环境的多个部分,该操作环境基本上与由至少处理器元件350和存储设备360定义的操作环境分开。该分开的操作环境使得能够执行控制例程440,同时遭可由处理器元件350执行的其他较不可信的软件破坏的风险大大降低。将状态数据439中的一个或多个存储在存储设备460之内进一步辅助确保控制例程440的执行的完整性。因此,预想了很有可能即便伴随着控制例程340和370两者的损坏或使得处理器元件350停止有效地执行指令(例如,机器校验)的故障,控制器400应当保持具有足够的功能以将状态数据439提供给管理设备600。
在各实施例中,管理设备600包括处理器元件650、存储设备660以及将管理设备600耦合至网络999的接口690中的一个或多个。存储设备660存储控制例程640以及从服务器300接收到的状态数据339和439中的一者或两者。控制例程640包括在处理器元件650上操作以实现用于执行各种功能的逻辑的指令序列。在执行控制例程640的指令序列时,使处理器元650评价分别由处理器元件350和450对控制例程370和440的执行结果的指示以确定服务器300的状态。例如,在状态数据339指示对控制例程340的完整性的成功验证的情况下,随后使处理器元件650确定服务器300正在正常并安全地运行。
或者,在完全没有接收到状态数据339但接收到状态数据439的情况下,随后使处理器元件650检查在状态数据439中指示的内容来尝试确定为何没有接收到状态数据339。在状态数据439指示了在定时器313完成计数之前处理器元件350成功地完成了对控制例程370的执行以评价控制例程340的完整性的情况下,随后使处理器元件650判断控制例程340是遭破坏还是严重地故障而阻碍了状态数据339的传送。在状态数据439指示了在定时器313完成计数(例如,反复地重新触发了定时器313以及每当定时器313完成时)之前处理器元件350未成功地完成对控制例程370的执行的情况下,随后使处理器元件650确定至少控制例程370遭破坏,或者处理器元件350或其他组件已发生故障。
为了弄清处理器元件350是否已发生故障,处理器元件650可评估对可包括在状态数据439中的服务器300的健康的一个或多个指示。更具体而言,在由随机化定时器312的倒计数触发以监视控制例程370的执行的实例之间,可使处理器元件450操作健康检测器417中的一个或多个以监视服务器300的健康的各方面,并且反复地将关于服务器300的健康的检测到的内容的指示传送到管理设备600(也许作为状态数据439的附加数据)。因此,相比每当随机化定时器312完成计数时所生成的触发事件,可使处理器元件450以更频繁的时间间隔来将关于服务器300的健康的状态数据439的变型传送到管理设备600。
对服务器300的健康的此类指示可指示处理器元件350在较早时一般可能由于进入了其不能够从中恢复的未定义状态而停止执行指令。或者,可能存在未能将向服务器300供应电功率的电压电平维持在所指定的容差之内使得处理器元件350和/或其他组件正间歇地或不可预测地运行的指示。由于包括了对服务器300的各种组件的健康的此类指示,可由处理器元件650将故障与安全漏洞的实例区分开来。取决于处理器元件650对发生在服务器300之内的不正确行为的原因作出了什么确定,可使处理器元件650将停机或重置的命令传送到服务器300,并且/或者可使其将问题的指示呈现给负责服务器300的操作的人员。
在各实施例中,处理器元件350、450和650中的每一个可包括各种商业上可获得的处理器中的任何处理器,包括但不限于,的 或 处理器;的应用、嵌入式或安全处理器;的和/或的 或处理器;IBM和/或的Cell处理器;或的 酷睿(2)酷睿(2)酷睿酷睿酷睿 或处理器。此外,这些处理器元件中的一个或多个可包括多核处理器(无论多个核共同位于相同的管芯上还是在分开的管芯上)和/或凭借其能以某种方式链接多个物理上分开的处理器的某个其他种类的多处理器架构。
在各实施例中,存储设备360、460和660中的每一个可基于各种信息存储技术中的任何技术,可能包括需要不中断的电力供应的易失性技术,并且可能包括需要使用可以是或可以不是可移动的机器可读存储介质的技术。因此,这些存储设备中的每一个包括各种类型(或各种类型的组合的)存储设备中的任何存储设备,包括但不限于,只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡、一个或多个单铁磁盘驱动器或组织为一个或多个阵列的多个存储设备(例如,组织为独立盘冗余阵列的阵列(或RAID阵列)的多个铁磁盘驱动器)。应当注意,尽管将这些存储设备中的每一个描绘为单个块,但是这些中的一个或多个可包括可基于不同存储技术的多个存储设备。因此,例如这些所描绘的存储设备中的每一种的一个或多个可表示下列的组合:光驱动器或闪存卡读取器,凭借其可存储并在某种形式的机器可读存储介质上传递程序和/或数据;铁磁盘驱动器,用于在本地存储程序和/或数据达相对延长的时期;以及一个或多个易失性固态存储设备(例如,SRAM或DRAM),其允许对程序和/或数据的相对快的访问。还应当注意,这些存储设备中的每一个可由基于完全相同的存储技术但因使用中的专用性而被分开保持的多个存储组件组成(例如,将一些DRAM设备用作主存储设备,而将其他DRAM设备用作不同的图形控制器的帧缓冲器)。
在各实施例中,接口390和690中的每一个可采用如已描述的那样允许计算设备300和600中的每一个通过网络999而耦合的各种信令技术中的任何技术。这些接口中的每一个包括提供用于启用此类耦合的必不可少的功能中的至少一些的电路。然而,也可利用由处理器元件350、450和650中的对应元件所执行的指令序列来至少部分地实现这些接口中的每一个(例如,实现协议栈或其他特征)。在网络999中的一个或多个部分采用电和/或光导电缆布线的情况下,接口390和690中的对应接口可采用符合各种行业标准中的任何标准的信令和/或协议,这些行业标准包括但不限于,RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。替代地或附加地,在网络999的一个或多个部分需要使用无线信号传输的情况下,这些接口中的对应接口可采用符合各种行业标准中的任何标准的信令和/或协议,各种行业标准包括但不限于,IEEE802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线访问”);蓝牙;ZigBee;或蜂窝无线电电话服务,诸如,利用通用分组无线电服务的GSM(GSM/GPRS)、CDMA/lxRTT、用于全球演进的增强型数据速率(EDGE)、演进仅数据/演进经优化数据(EV-DO)、针对数据和语音的演进(EV-DV)、高速下行链路分组访问(HSDPA)、高速上行链路分组访问(HSUPA)、4G LTE等。应当注意,尽管将接口190和390中的每一个描绘为单个块,但是这些中的一个或多个可包括可基于不同信令技术的多个接口。尤其在这些接口中的一个或多个将计算设备100和300中的对应设备耦合至各自采用不同的通信技术的多于一个的网络的情况下,情况可能如此。
图2更详细地描绘了服务器300的组件之间的握手的可能实现的多个方面。具体而言,可能包括一个或多个寄存器,通过这一个或多个寄存器可在处理器元件350和450和/或定时器312和313之间实现某种程度的协调。
具体而言,在一些实施例中,随机化定时器312可包括寄存器322,通过该寄存器322,处理器元件350和450中的一者或两者可能能够监视其状态。尽管预想了通过由随机化定时器312完成随机选择的时段的计数而触发的中断而使处理器元件350从执行控制例程340过渡到执行控制例程370,但是在替代实施例中,也可以由控制例程340使处理器元件350通过反复地读取寄存器322来判断是否已完成对随机选择的时段的计数以反复地校验随机化定时器312的状态。实际上,处理器元件350不能够校验随机化定时器312的状态以避免将该信息提供给已成功地破坏了控制程序340和370中的一者或两者的恶意软件是所期望的。
无论处理器元件350是否能够读取寄存器322,都可由控制例程440使处理器元件450通过读取寄存器322来反复地校验随机化定时器312的状态。也许可以做到这一点以确定随机化定时器312何时可完成计数以使处理器元件450能够准备好监视控制例程370的执行。替代地或附加地,可使处理器元件450将对随机化定时器312的当前状态的指示包括在其传送到管理设备600的状态数据439中。
在一些实施例中,定时器313可包括寄存器323,通过该寄存器323,处理器元件350和450中的一者或两者可能能够监视和/或控制其状态。可能使处理器元件450反复地监视寄存器323以判断在定时器313完成计数之前,处理器元件350是否成功地完成了对控制例程370的执行。更具体而言,可能使处理器元件350向寄存器323写入,以便在成功地完成控制例程370时由定时器313使计数停止。处理器元件450可反复地校验寄存器323中的、发生在定时器完成计数之前的由处理器元件350进行的此类写入操作的指示,其作为处理器元件350实际上已完成对控制例程370的执行的指示。
在一些实施例中,中断控制器315可包括寄存器325,通过该寄存器325,处理器元件350和450中的一者或两者可能能够监视和/或控制其状态。如先前所讨论的那样,预想了由控制例程370使处理器元件350至少部分地禁用中断控制器315以启用对控制例程370的不中断执行。寄存器325可能是使这发生的机制。寄存器325可以在可由存储在受保护位置367中的可执行指令(诸如,控制例程370)访问、但不可由存储在受保护位置367外部的可执行指令(诸如,控制例程340或VM会话)访问的组件之间,以便在控制例程340已遭破坏但控制例程370未遭破坏的情况下防范对中断控制器315的操控。也可由处理器元件450在其监视由处理器元件350对控制例程370的执行时读取寄存器325。由于将禁用中断控制器315预想为处理器元件在开始对控制例程370的执行时的第一动作中的一个,并且将重新启用中断控制器315预想为停止执行控制例程370时的最后动作中的一个,因此处理器元件450可监视寄存器325以判断对中断控制器315的禁用或重新启用是否已发生来作为所收集以便包括在状态数据439中的信息的部分。
在一些实施例中,可将寄存器326合并进服务器300(可能合并进处理器元件350)以作为用于在执行控制例程340和370中的一个或另一个的实例之间交换信息的机制。具体而言,可由控制例程370的执行使处理器元件350利用指示状态数据339所存储的地址位置的值来写入寄存器326,使得在恢复对控制例程340的执行后,处理器元件将能够定位状态数据339以启用状态数据339向管理设备600的传送。
在一些实施例中,接口390可结合寄存器329,通过该寄存器329,处理器元件350和450中的一者或两者可能能够监视和/或控制其状态。具体而言,可由控制例程440使处理器元件450读取寄存器329以获取是否由控制例程340使处理器元件350在恢复对控制例程340的执行后至少尝试将状态数据339传送到管理设备600的指示。
图3更详细地示出了图1的框图的部分的框图。更具体而言,描绘了计算设备300和控制器400的操作环境的多个方面,其中,由控制例程340、370和440中的对应例程的执行使处理器元件350和450执行上述功能。如本领域技术人员将理解的那样,选择这些控制例程中的每一个(包括组成每一个的多个组件)以在经选择以实现这些处理器元件中的每一个的对应元件的无论什么类型的一个或多个处理器上操作。
在各实施例中,控制例程340、370和440中的每一个可包括操作系统、设备驱动程序和/或应用级例程(例如,提供在盘介质上的所谓的“软件套件(software suite)”、从远程服务器获取的“小应用程序(applet)”等)的组合。在包括了操作系统的情况下,该操作系统可以是各种可用的操作系统中的任何一个,可用的操作系统包括但不限于WindowsTM、OSXTM、或安卓OSTM。在包括了一个或多个设备驱动程序的情况下,那些设备驱动程序可提供对计算设备300和控制器400的各种其他组件中的任何组件(无论是硬件还是软件组件)的支持。
控制例程340和440中的每一个包括通信组件349和449,这些通信组件分别由处理器元件350和450执行以操作接口390和490以便如已描述的那样经由网络999(或其他链路)传送并接收信号。如本领域技术人员将理解的那样,选择这些通信组件中的每一个以与经选择以实现这些接口中的对应接口的无论什么类型的接口技术一起操作。
控制例程340包括可由处理器元件350执行以实例化、维持并监视VM会话(例如,VM会话331a-c)的VMM组件341。VMM组件341通过不准许在不同的VM会话之间的访问以在这些不同的VM会话之内的应用软件的执行之间提供安全度。此外,如已讨论的那样,响应于检测到进行此类未经准许的访问的尝试,VMM组件341可通过禁用或去除从中尝试此类访问的VM会话来进行动作。
控制例程370包括VMM监察器371,该VMM监察器371由处理器元件350响应于随机化定时器312完成其倒数到随机选择的时间段的结束的触发事件来执行以校验控制例程340(例如,VMM组件341)的至少部分的完整性。在VMM监察器371可采用以便这样做的技术中,VMM监察器371可采用密钥337来校验嵌入在控制例程340的至少那部分之内的数字签名。凭借存储在受保护位置367之内的VMM监察器371和密钥337,可提供免受由存储在受保护位置367外部的恶意软件破坏的某种程度的保护。
控制例程440包括监察器验证器441,其可由处理器元件450响应于随机化定时器312完成其倒计数到随机选择的时段的触发事件来执行以监视控制例程370的执行,从而判断在定时器312(也由随机化定时器312的完成的到计数来触发)完成倒计数之前是否由处理器元件350成功地执行了控制例程370。监察器验证器441随后将结果(无论它们是什么)记录在状态数据439中,以便传送到管理设备600。
控制例程440包括健康监察器447,其可由处理器元件450执行以反复地操作健康传感器417中的一个或多个来检测服务器300的健康(操作条件)的指示。如已讨论的那样,预想了在除与对处理器元件350执行控制例程370的监视有关的时机之外的时刻被发送的状态数据439的变体中记录服务器300的健康的指示,使得管理设备600接收服务器300的健康的指示是某种频繁度。
图4示出图3中所描绘的控制例程340和370的变型的框图。为了描绘和讨论清楚起见,在图4中省略了在图3中也描绘了的对服务器300的多个其他组件的描绘。在图4的控制例程340的变型中(相比于图3中的其对等物),VMM组件附加地包括嵌入式监察器344和密钥334。同样,在图4的控制例程370的变型中,VMM监察器371校验嵌入式监察器344的(也许也校验密钥334的)完整性以验证该嵌入式监察器344未遭破坏。假定如此验证了该嵌入式监察器344,则横跨处理器元件执行控制例程370与执行控制例程340之间的过渡传递将执行该嵌入式监察器344的指示。在由处理器元件350执行之后,嵌入式监察器344对控制例程340的另一部分(也许是VMM组件341的其余部分)执行完整性校验,可能在对嵌入式数字签名的密码校验中使用密钥334。在可用于控制例程370的执行的时间量足够短使得不能够完成对控制例程340和/或其VMM组件341的完整性的有效验证的情况下,可做到这一点。在此类实例中,对控制例程340的相对小的嵌入式监察器的验证可以是可行的。对嵌入式监察器344的完整性的成功验证可使该嵌入式监察器344被视为足够可信以执行对控制例程340中的更多的完整性校验。
图5更详细地示出了图1的框图的部分的另一框图。更具体而言,描绘了计算设备600的操作环境的多个方面,其中,由控制例程640的执行使处理器元件650执行上述功能。如本领域技术人员将理解的那样,选择该控制例程(包括组成其的多个组件)以在经选择以实现该处理器元件的无论什么类型的一个或多个处理器上操作。
在各实施例中,控制例程640可包括操作系统、设备驱动程序和/或应用级例程(例如,提供在盘介质上的所谓的“软件套件”、从远程服务器获取的“小应用程序”等)的组合。在包括了操作系统的情况下,该操作系统可以是各种可用的操作系统中的任何一个,可用的操作系统包括但不限于WindowsTM、OS XTM、或安卓OSTM。在包括了一个或多个设备驱动程序的情况下,那些设备驱动程序可提供对计算设备600的各种其他组件中的任何组件(无论是硬件还是软件组件)的支持。
控制例程640包括通信组件649,其可由处理器元件650执行以操作接口690(并可能也操作接口790)以便如已描述的那样经由在计算设备300和600之间的网络999和/或另一链路来传送和接收信号。如已讨论的那样,服务器300的控制器400可采用单独的接口490来与管理设备600通信,并且如图5中所描绘的那样,管理设备600可采用单独的接口790以经由与该接口490完全分开的链路来支持此类通信。如本领域技术人员将理解的那样,选择该通信组件以与经选择以实现这些接口中的一者或两者的无论什么类型的接口技术一起操作。
控制例程640包括可由处理器元件650执行以分析状态数据339(如果接收到)和状态数据439的评价组件645。响应于接收到处理器元件尝试验证控制例程340的完整性时的故障的指示,评价组件645检查从控制器400接收到的在状态数据439中的服务器300的健康的指示。如果接收到状态数据439,则评价组件645也检查该状态数据339中所指示的内容。此外,评价组件645可检查从控制器400接收到的并被存储在历史数据635中的服务器300过去健康指示。然后,评价组件645判断可通过重新初始化服务器300来校正的故障已发生,还是需要对服务器300进行修理的故障已发生,或是控制例程340(包括VMM组件341)和370中的一者或两者的完整性已遭破坏。
图6示出逻辑流程2100的一个实施例。逻辑流程2100可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2100可示出由处理器元件350在执行至少控制例程340和/或370时所执行的和/或由服务器300的其他组件执行的操作。
在2110处,服务器的主处理器元件(例如,服务器300的处理器元件350)接收服务器的随机化定时器达到(例如,倒计数遍历)随机选择的时段的结束的指示。如已讨论的那样,在服务器的初始化之后(例如,在对其上电或重置其之后),可给予随机化定时器用于随机选择每个新时段的长度的参数,并且在设置后可锁定那些设置,使得在没有对服务器的重新初始化的情况下不能够改变它们。
在2120处,响应于该定时器事件,主处理器元件停止执行VMM(例如,控制例程340的VMM 341),并开始VMM监察器(例如,控制例程370的VMM监察器371)的执行以校验至少该VMM的完整性。如已描述的那样,随机化定时器达到时段的结束可触发作为触发主处理器元件作出执行中的该改变的机制的中断。替代地,可由主处理器元件监视随机化定时器的寄存器。
在2130处,主处理器元件至少部分地禁用服务器的中断控制器,以便基本上不中断地启用VMM监察器的执行。在2140处,主处理器元件校验VMM的完整性(可能通过使用密码密钥来校验嵌入在VMM之内的数字签名),并且将该校验的结果的指示存储为结果数据以传送到管理设备(例如,管理设备600)。
在2150处,主处理器元件为VMM作安排,以便一旦该主处理器元件停止执行VMM监察器并恢复执行该VMM就将结果数据传送到管理设备。如已讨论的那样,可采用握手机制,其中,在VMM监察器和VMM的执行之间(可能通过寄存器)传递结果数据所存储的位置的指示。
在2160处,主处理器元件重新启用中断控制器,并且在2170处,用信号通知另一定时器停止计数。如已讨论的那样,就如同随机化定时器达到随机选择的时段充当使主处理器元件从执行VMM切换到执行VMM监察器的触发事件那样,它也充当用于由另一计数器启动对另一时段的倒计数的触发。该另一计数器担当“看守定时器(watchdog timer)”,其针对主处理器元件成功地完成VMM监察器的执行的时间量。通过用信号通知该另一定时器停止计数,主处理器元件传递其已完成VMM监察器的执行的指示。
在2180处,主处理器停止VMM监察器的执行并恢复VMM的执行。如已讨论的那样,正是在此刻,结果数据的传送才应当发生,并且这可能是由于VMM监察器不得不在此类事件约束之内被执行,并且它自身不包括用于操作接口以将结果数据传送到管理设备的可执行指令。
图7示出逻辑流程2200的一个实施例。逻辑流程2200可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2200可示出由处理器元件450在执行至少控制例程440时执行的和/或由控制器400的其他组件执行的操作。
在2210处,服务器的控制器处理器元件(例如,服务器300的控制器400的处理器元件450)接收服务器的随机化定时器达到(例如,倒计数遍历)随机选择的时段的结束的指示。如已讨论的那样,在服务器的初始化之后(例如,在对其上电或重置其之后),可给予随机化定时器用于随机选择每个新时段的长度的参数,并且在设置后可锁定那些设置,使得在没有对服务器的重新初始化的情况下不能够改变它们。
在2220处,控制器处理器监视由服务器的主处理器元件对VMM监察器的执行(例如,由处理器元件350对控制例程370的VMM监察器371的执行)。如已讨论的那样,控制器处理器可采用各种技术来监视此类执行,包括但不限于,监视中断控制器的寄存器和/或接口来判断是否已达到了一个或另一个执行的状态被改变的阶段。在2230处,控制器处理器也监视担当“看守”定时器的另一定时器的倒计数以对由主处理元件对VMM监察器的执行定时。
在2240处,控制器处理器元件将在该另一定时器完成了倒计数之前是否已由主处理器元件完成了对VMM监察器的执行的指示传送到管理设备(例如,管理设备600)。在2250处,控制器处理器元件也将服务器的健康的指示传送到管理设备。如已讨论的那样,相比在该另一定时器完成倒计数之前是否执行了VMM监察器的指示,可更频繁地将服务器的健康的指示传送到管理设备。此外,在传送了VMM监察器的执行的结果的场合下,那些结果可与服务器的健康指示的传送相结合。
图8示出逻辑流程2300的一个实施例。逻辑流程2300可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2300可示出由管理设备600的处理器元件650在执行至少控制例程640时执行的和/或由管理设备600的其他组件执行的操作。
在2310处,管理设备(例如,管理设备600)接收服务器的随机化定时器(例如,服务器300的随机化定时器312)达到(例如,倒计数遍历)随机选择的时段的结束的指示。在2320处,管理设备接收在服务器的另一定时器(例如,定时器313)完成倒计数之前服务器的主处理器元件(例如,处理器元件350)是否已成功地完成了对VMM监察器(例如,控制例程370的VMM监察器371)的执行的指示。在2330处,管理设备600接收服务器的健康的指示。可在共同的结果数据(例如,结果数据439)中一起接收到这些各种指示,或者可在由服务器的控制器(例如,控制器400)经由其间的网络或其他链路进行的单独传送中接收。如已讨论的那样,可将控制器耦合至管理设备,以便经由网络或其他链路传送此类指示,该网络或其他链路与服务器的主处理器元件通过其可与管理设备通信的网络完全分开。
在2340处,进行关于是否已由主处理器元件接收到指示VMM组件(例如,控制例程340的VMM组件341)的完整性校验的有利结果的结果数据的校验。如果没有接收到结果数据(有利的或其他形式的),或者如果接收到指示不利结果的结果数据,则在2350处,管理设备分析已从其主处理器元件或其控制器接收到的信息。
在分析之后,在2350处,管理设备判断是否从服务器请求附加状态信息(诸如,当前寄存器设置的指示、特定位置处的存储的内容等)以便在2360处启用对已发生内容的进一步分析。在2370处,管理设备判断是否将重新初始化的命令发送到服务器。如果服务器的健康的指示不显示发生了需要对服务器进行修理的问题(例如,不起作用的冷却或继续以规范之外的电压供应电功率),则重启服务器可克服当前问题。在2380处,管理设备判断是否将服务器的问题呈现给人员(例如,视觉化地在显示器上呈现指示)。
图9示出适于实现如前所述的各实施例的示例性处理架构3000的实施例。更具体地说,可将处理架构3000(或其变型)实现为计算设备300和600中的一个或多个的部分。应当注意,给予处理架构3000的多个组件参考标号,按这些参考标号的末两位数字对应于较早描绘以及描述为计算组件300和600中的每一个的部分的组件的参考标号的末两位数字。在各实施例中,做到这一点以作为使可采用该示例性处理架构的计算设备300和600中的无论什么设备中的此类组件相关联的辅助。
处理架构3000包括通常在数字处理中采用的各种元件,包括但不限于,一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请中所使用的那样,术语“系统”和“组件”旨在是指在其中实施数字处理的计算设备的实体,无论该实体是硬件、硬件和软件的组合、软件还是执行中的软件,由所描绘的该示例性处理架构来提供其示例。例如,组件可以是但不限于是在处理器元件上运行的进程、处理器元件自身、可采用光和/或磁存储介质的存储设备(例如,硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、可执行指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。作为说明,在服务器上运行的应用和该服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且可将组件局部化在一个计算设备上和/或分布在两个或更多计算设备之间。此外,组件可通过各种类型的通信介质彼此通信地耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件能以在通信介质上传递的信号的形式来传递信息。可将该信息实现为分配给一根或多根信号线的信号。每一个消息可以是串行地或基本上并行地传送的一个或多个信号。
如所描绘的那样,在实现处理架构3000时,计算设备包含至少处理器元件950、存储设备960、到其他设备的接口990和耦合装置(coupling)955。取决于实现处理架构3000的计算设备的各方面(包括其预期使用和/或使用条件),此类计算设备可进一步包含附加组件,诸如但不限于随机化定时器912、定时器913和/或中断控制器915。
耦合装置955包括将至少处理器元件950通信地耦合至存储设备960的一个或多个总线、点对点互连、收发机、缓冲器、交叉点开关和/或其他导体和/或逻辑。耦合装置955可进一步将处理器元件950耦合至接口990和显示接口985中的一个或多个(取决于这些中的哪个和/或其他组件也是存在的)。随着由耦合装置955这样来耦合处理器元件950,该处理器元件950能够执行上述针对实现处理架构3000的计算设备200和700中的无论哪些所详细描述的任务中的各种任务。可利用凭借其以光和/或电方式传递信号的各种技术中的任何技术或多种技术的组合来实现耦合装置955。此外,耦合装置955的至少多个部分可采用符合各种行业标准中的任何标准的时序和/或协议,各种行业标准包括但不限于,加速图形端口(AGP)、卡片式总线、扩展的工业标准架构(E-ISA)、微通道架构(MCA)、网络用户总线(NuBus)、外围组件互连(扩展式)(PCI-X)、PCI快速(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、超传输TM、快速路径等。
如先前所讨论的那样,处理器元件950(对应于处理器元件350、450、650和750中的一个或多个)可包括采用各种技术并且利用以多种方式中的任何方式物理地组合的一个或多个核而实现的各种商业上可获得的处理器中的任何处理器。
如先前所讨论的那样,存储设备960(对应于存储设备360、460和660中的一个或多个)可包括基于各种技术中的任何技术或多种技术的组合的一个或多个不同的存储设备。更具体而言,如所描绘的那样,存储设备960可包括易失性存储设备961(例如,基于一种或多种形式的RAM技术的固态存储设备)、非易失性存储设备962(例如,不需要恒定的电力供应来保持其内容的固态、铁磁或其他存储设备)和可移动介质存储设备963(例如,可利用其在多个计算设备之间传递信息的可移动盘或固态存储卡存储设备)中的一个或多个。将存储设备960描绘为可能包括多个不同类型的存储设备的这种描绘承认了在计算设备中对多于一种类型的存储设备的普遍使用,其中,一种类型提供允许由处理器元件950对数据的更迅速操控的相对迅速的读取和写入能力(但是可能使用持续地需要电力的“易失性”技术),而另一类型提供相对高密度的非易失性存储设备(但是可能提供相对慢的读取和写入能力)。
考虑到采用不同技术的不同的存储设备之间通常具有的不同特性,通过不同的存储控制器将此类不同的存储设备耦合至计算设备的其他多个部分也是常见的,这些不同的存储控制器通过不同接口被耦合到它们不同的存储设备。作为示例,在易失性存储设备961存在并且基于RAM技术的情况下,可通过提供到可能采用行和列寻址的易失性存储设备961的合适接口的存储控制器965a将易失性存储设备961通信地耦合至耦合装置955,并且其中存储控制器965a可执行行刷新和/或其他维护任务来辅助保持被存储在易失性存储设备961中的信息。作为另一示例,在非易失性存储设备962存在并且包括一个或多个铁磁和/或固态盘驱动器的情况下,可通过提供到可能采用对信息块和/或磁柱和扇区的寻址的非易失性存储设备962的合适接口的存储控制器965b将该非易失性存储设备962通信地耦合至耦合装置955。作为又一示例,在可移动介质存储设备963存在并且包括采用可移动机器可读存储介质969的一个或多个片段的一个或多个光盘和/或固态盘驱动器的情况下,可通过提供到可能采用信息块的寻址的可移动介质存储设备963的合适接口的存储控制器965c将可移动介质存储设备963通信地耦合至耦合装置955,并且其中,存储控制器965c能以专用于延长机器可读存储介质969的寿命的方式来协调读取、擦除和写入操作。
易失性存储设备961或非易失性存储设备962中的一个或另一个可包括机器可读存储介质形式的制品,取决于每一个所基于的技术,可在其上存储包括可由处理器元件950执行的指令序列的例程。作为示例,在非易失性存储设备962包括基于铁磁的盘驱动器(例如,所谓的“硬驱动器”)的情况下,每一个此类盘驱动器通常采用一个或多个旋转盘片,在这些盘片上,沉积磁响应粒子的涂层,并且按各种图案进行磁取向,以便按类似于诸如软盘之类的可移动存储介质之类的方式存储诸如指令序列之类的信息。作为另一示例,非易失性存储设备962可由固态存储设备的多个存储库(bank)组成,它们用于以类似于紧凑型闪存卡之类的方式来存储诸如指令序列之类的信息。同样,在不同时刻,在计算设备中采用不同类型的存储设备来存储可执行例程和/或数据是常见的。因此,最初可将包括将由处理器元件950执行的指令序列的例程存储在机器可读存储介质969中,随后可采用可移动介质存储设备963来将该例程存储到非易失性存储设备962中,以便不需要机器可读存储介质969的持续存在就可实现更长期的存储,并且/或者将该例程复制到易失性存储设备961,以便在执行该例程时,允许处理器元件950更迅速的访问。
如先前所讨论的那样,接口990(对应于接口390、490、690和790中的一个或多个)可采用对应于可用于将计算设备通信地耦合至一个或多个其他设备的各种通信技术中的任何技术的各种信令技术中的任何技术。同样,可采用各种形式的有线或无线信令中的一种或两种来使处理器元件950能够可能通过网络(例如,网络999)或经互连的网络集与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他计算设备交互。认可通常必须由任何一个计算设备支持的多种类型的信令和/或协议的通常显著不同的特点,将接口990描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可采用用于从诸如所描绘的键盘920之类的用户输入设备中接收串行传输的消息的各种类型的有线数字串行接口或射频无线接口中的任何接口。接口控制器995b可采用用于通过所描绘的网络999(可能是包括一条或多条链路的网络、较小的网络或可能是因特网)来访问其他计算设备的各种基于电缆布线的或无线信令、时序和/或协议中的任何一个。接口995c可采用允许串行或并行信号传输的使用以将数据传递到所描绘的打印机925的各种导电光缆布线中的任何一种。可通过接口990的一个或多个接口控制器而被通信地耦合的设备的其他示例包括但不限于,话筒、远程控制装置、指示笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操控杆、其他键盘、视网膜扫描仪、触屏的触摸输入组件、跟踪球、各种传感器、激光打印机、喷墨打印机、机械机器人、铣床等。
在将计算设备通信地耦合至(或者可能实际包括)显示器(例如,所描绘的示例显示器980)的情况下,实现处理架构3000的此类计算设备也可包括显示接口985。虽然可在通信地耦合至显示器时采用更通用类型的接口,但是当在显示器上可视化地显示各种形式的内容时经常需要的略微专业化的附加处理以及所使用的基于电缆布线的接口的略微专业化的性质通常使不同的显示接口的提供是令人满意的。可由显示接口985在显示器980的通信式耦合中采用的有线和/或无线信令技术可利用符合各种行业标准中的任何标准的信令和/或协议,各种行业标准包括但不限于,各种模拟视频接口、数字视频接口(DVI)、显示端口等中的任何一个。
更一般而言,计算设备200和700的各种元件可包括各种硬件元件、软件元件或这两者的组合。硬件元件的示例可包括器件、逻辑器件、组件、处理器、微处理器、电路、处理器元件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。然而,确定使用硬件元件和/或软件元件来实现实施例可能根据任意数量的因素而不同,这些因素诸如对于给定实现所期望的所需的计算速率、功率等级、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
可使用表述“一个实施例”和“实施例”及其派生词来描述一些实施例。这些术语意思是结合该实施例所描述的特定特征、结构或特性被包括在至少一个实施例中。在本说明书中的不同位置处出现短语“在一个实施例中”不一定全都指同一个实施例。此外,可以用表述“耦合的”和“连接的”及其派生词来描述一些实施例。这些术语不一定旨在作为彼此的同义词。例如,可使用术语“连接的”和/或“耦合的”来描述一些实施例以指示两个或更多元件彼此直接物理接触或电接触。然而,术语“耦合的”还可意味着两个或更多元件彼此不直接接触,但仍然彼此协作或相互作用。
需要强调,提供本公开的摘要以使读者快速地确定本技术公开的性质。提交该摘要,并且理解该摘要将不用于解释或限制权利要求的范围或含义。此外,在前述具体实施方式中可以看出,为了使本公开流畅,在单个实施例中,将各个特征成组到一起。这种公开方法不应被解释为反映要求保护的实施例需要比每一项权利要求中明确陈述的更多的特征的意图。相反,如所附权利要求所反映的那样,发明主题在于少于单个公开的实施例的所有特征。因此,所附权利要求在此被合并到具体实施方式中,其中每项权利要求作为单独的实施例而独立存在。在所附权利要求中,术语“包括”和“其中”分别被用作相应的术语“包括”和“其中”的简明英语对等词。此外,术语“第一”、“第二”、“第三”等仅用作标记,并不旨在对它们的对象施加数值要求。
上文已描述的包括所公开架构的多个示例。当然,描述组件和/或方法的每一个可想到的组合是不太可能的,但本领域普通技术人员会理解,许多进一步的组合和排列都是可能的。因此,该新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的所有此类更改、修改和变型。详细公开现在转到提供涉及进一步实施例的示例。以下提供的示例不旨在是限制性的。
用于监视虚拟机的完整性的设备的示例包括:第一处理器元件;以及第一逻辑,其用于:接收第一定时器已达到第一时段的结束的指示;监视由第二处理器元件对虚拟机监视器(VMM)监察器的执行;判断在第二定时器达到第二时段的结束之前,第二处理器元件是否完成了VMM监察器的执行以验证VMM的完整性;以及将对该判断的指示传送到计算设备。
设备的上述示例,其中,第一逻辑用于:监视中断控制器的状态以监视由第二处理器元件对VMM监察器的执行;以及判断第二处理器元件是否已重新启用中断控制器。
设备的上述示例中的任何一个,其中,第一逻辑用于:监视第二定时器的状态以监视由第二处理器元件对VMM监察器的执行;以及判断第二处理器元件是否已停止第二定时器以指示VMM监察器的执行的完成。
设备的上述示例中的任何一个,其中,第一逻辑用于:监视服务器的健康检测器,该服务器包括该健康检测器以及第一和第二处理器元件;以及将服务器的健康的指示传送到计算设备。
设备的上述示例中的任何一个,其中,健康检测器包括热传感器、电压传感器、总线活动监察器以及时钟信号监察器中的一个。
设备的上述示例中的任何一个,其中,该设备包括第二处理器元件和中断控制器;并且VMM监察器包括第二逻辑,其用于:向中断控制器的寄存器写入以重新启用中断控制器;停止VMM监察器的执行;以及执行VMM。
设备的上述示例中的任何一个,其中,该设备包括第二处理器;并且VMM监察器包括第二处理器元件;并且VMM监察器包括第二逻辑,其用于:在VMM的执行期间,安排指示对VMM的完整性的验证结果的结果数据将被传送到计算设备;以及使VMM监察器的执行停止,并且使VMM的执行开始。
设备的上述示例中的任何一个,其中,该设备包括第一定时器,并且该第一定时器包括用于随机选择第一时段的持续时间的随机化定时器。
设备的上述示例中的任何一个,其中,该设备包括第二处理器元件,并且VMM监察器包括用于使用密钥来验证嵌入在VMM中的数字签名的第二逻辑。
设备的上述示例中的任何一个,其中,该设备包括第二处理器元件,并且VMM监察器包括第二逻辑,该第二逻辑用于向第二定时器的寄存器写入以停止该第二定时器,从而指示VMM监察器的完成。
用于监视虚拟机完整性的另一设备的示例,其包括:处理器元件;第一接口,用于将该处理器元件耦合至服务器;以及逻辑,其用于:接收服务器的第一定时器已达到第一时段的结束的指示;接收第一结果数据,该第一结果数据指示在服务器的第二定时器达到第二时段的结束之前是否由该服务器的处理器元件执行了VMM监察器以验证VMM的完整性;以及等待指示验证的结果的第二结果数据的接收。
另一设备的上述示例,其中,逻辑用于:响应于缺乏对来自服务器的第二结果数据的接收,分析至少第一结果数据以判断缺乏对第二结果数据的接收的原因。
另一设备的上述示例中的任何一个,其中,逻辑用于接收服务器的健康的指示,该指示包括以下至少一项:服务器的组件的温度、对服务器的电功率供应的电压电平、对服务器的总线的活动的指示、对未修正阵列/逻辑误差的指示以及对服务器的时钟信号的存在或缺失的指示。
另一设备的上述示例中的任何一个,其中,逻辑用于判断是否用信号通知服务器的控制器重新初始化该服务器。
另一设备的上述示例中的任何一个,其中,逻辑用于:响应于服务器的健康的指示,呈现需要修理该服务器的指示。
另一设备的上述示例中的任何一个,其中,该设备包括显示器,并且逻辑用于:响应于对指示VMM的完整性未经VMM监察器验证的第二结果的接收,将VMM的完整性的指示视觉地呈现为遭破坏。
监视虚拟机完整性的计算机实现的方法的示例,其包括:接收服务器的第一定时器已达到第一时段的结束的指示;监视由服务器的主处理器元件对VMM(虚拟机监视器)监察器的执行;判断在服务器的第二定时器达到第二时段的结束之前,主处理器元件是否完成了VMM监察器的执行以验证VMM的完整性;监视服务器的健康状态的至少一个检测器;以及将指示该健康状态和该判断的结果数据传送到计算设备。
计算机实现的方法的上述示例,其中,该方法包括:监视服务器的中断控制器的状态以监视由主处理器元件对VMM监察器的执行;以及判断主处理器元件是否已重新启用中断控制器。
计算机实现的方法的上述示例中的任何一个,其中,该方法包括:向中断控制器的寄存器写入,以便在对VMM的完整性验证之后重新启用该中断控制器。
计算机实现的方法的上述示例中的任何一个,其中,该方法包括:监视第二定时器的状态以监视由主处理器元件对VMM监察器的执行;以及判断主处理器元件是否已停止第二定时器以指示VMM监察器的执行的完成。
计算机实现的方法的上述示例中的任何一个,其中,该方法包括:向第二定时器的寄存器写入以停止定时器,从而指示VMM监察器的完成。
计算机实现的方法的上述示例中的任何一个,其中,该方法包括以下至少一项:服务器的组件的温度、向服务器供应电功率的电压电平、对服务器的总线的活动的指示、对未修正阵列/逻辑误差的指示以及对服务器的时钟信号的存在或缺失的指示。
计算机实现的方法的上述示例中的任何一个,其中,该方法包括:使用密钥来验证嵌入在VMM中的数字签名。
用于监视虚拟机完整性的设备的示例,其包括用于执行计算机实现的方法的上述示例中的任何一个的装置。
至少一种机器可读存储介质的示例,其包括指令,当由计算设备执行这些指令时,这些指令使该计算设备:接收计算设备的第一定时器已达到第一时段的结束的指示;监视由计算设备的主处理器元件对VMM(虚拟机监视器)监察器的执行;判断在计算设备的第二定时器达到第二时段的结束之前,主处理器元件是否完成了VMM监察器的执行以验证计算设备的VMM的完整性;以及将指示该判断的结果数据传送到另一计算设备。
至少一种机器可读存储介质的上述示例,其中,使该计算设备:监视该计算设备的健康状态的至少一个检测器;以及将该健康状态的指示包括在结果数据中。
至少一种机器可读存储介质的上述示例中的任何一个,其中,健康状态包括以下至少一项:计算设备的组件的温度、向计算设备供应电功率的电压电平、对计算设备的总线的活动的指示、对未修正阵列/逻辑误差的指示以及对计算设备的时钟信号的存在或缺失的指示。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备:监视该计算设备的中断控制器的状态以监视由主处理器元件对VMM监察器的执行;以及判断主处理器元件是否已重新启用中断控制器。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备:监视第二定时器的状态以监视由主处理器元件对VMM监察器的执行;以及判断主处理器元件是否已停止第二定时器以指示VMM监察器的执行的完成。
用于监视虚拟机完整性的又一设备的示例,其包括多个装置,这些装置用于:接收计算设备的第一定时器已达到第一时段的结束的指示;监视由计算设备的主处理器元件对VMM(虚拟机监视器)监察器的执行;判断在计算设备的第二定时器达到第二时段的结束之前,主处理器元件是否完成了VMM监察器的执行以验证计算设备的VMM的完整性;以及将指示该判断的结果数据传送到另一计算设备。
又一设备的上述示例,其中,该设备包括用于监视计算设备的健康状态的至少一个检测器的装置;以及用于将该健康状态的指示包括在结果数据中的装置。
又一设备的上述示例中的任何一个,其中,健康状态包括以下至少一项:计算设备的组件的温度、向计算设备供应电功率的电压电平、对计算设备的总线的活动的指示、对未修正阵列/逻辑误差的指示以及对计算设备的时钟信号的存在或缺失的指示。
又一设备的上述示例中的任何一个,其中,该设备包括:用于计算设备的中断控制器的状态以监视由主处理器元件对VMM监察器的执行的装置;以及用于判断主处理器元件是否已重新启用中断控制器的装置。
又一设备的上述示例中的任何一个,其中,该设备包括:用于监视第二定时器的状态以监视由主处理器元件对VMM监察器的执行的装置;以及用于判断主处理器元件是否已停止第二定时器以指示VMM监察器的执行的完成的装置。
Claims (23)
1.一种用于监视虚拟机完整性的设备,包括:
第一处理器元件;以及
第一逻辑,在所述第一处理器元件上执行,用于:
接收第一定时器已达到第一时段的结束的指示;
监视中断控制器的状态以监视由第二处理器元件对虚拟机监视器(VMM)监察器的执行;
判断在第二定时器达到第二时段的结束之前,第二处理器元件是否完成了所述VMM监察器的执行以验证VMM的完整性,所述判断基于所述第二处理器元件是否已重新启用所述中断控制器;以及
将对所述判断的指示传送到计算设备。
2.如权利要求1所述的设备,其特征在于,所述第一逻辑用于:
监视所述第二定时器的状态以监视由所述第二处理器元件对所述VMM监察器的执行;以及
判断所述第二处理器元件是否已停止所述第二定时器以指示所述VMM监察器的执行的完成。
3.如权利要求1所述的设备,其特征在于,所述第一逻辑用于:
监视服务器的健康检测器,所述服务器包括所述健康检测器以及所述第一和第二处理器元件;以及
将所述服务器的健康的指示传送到所述计算设备。
4.如权利要求3所述的设备,其特征在于,所述健康检测器包括热传感器、电压传感器、总线活动监视器和时钟信号监视器中的一个。
5.如权利要求1所述的设备,其特征在于,包括所述第二处理器元件和中断控制器,所述VMM监察器包括第二逻辑,所述第二逻辑用于:
向所述中断控制器的寄存器写入以重新启用所述中断控制器;
停止所述VMM监察器的执行;以及
执行所述VMM。
6.如权利要求1所述的设备,其特征在于,包括所述第二处理器,所述VMM监察器包括第二逻辑,所述第二逻辑用于:
在所述VMM的执行期间,安排指示对所述VMM的完整性的验证结果的结果数据将被传送到所述计算设备;以及
使所述VMM监察器的执行停止,并且使所述VMM的执行开始。
7.如权利要求1所述的设备,其特征在于,包括所述第一定时器,所述第一定时器包括随机化定时器,所述随机化定时器用于随机选择所述第一时段的持续时间。
8.如权利要求1所述的设备,其特征在于,包括所述第二处理器元件,所述VMM监察器包括第二逻辑,所述第二逻辑用于使用密钥来验证嵌入在所述VMM中的数字签名。
9.如权利要求1所述的设备,其特征在于,包括所述第二处理器元件,所述VMM监察器包括第二逻辑,所述第二逻辑用于向所述第二定时器的寄存器写入以停止所述第二定时器,从而指示所述VMM监察器的完成。
10.一种用于监视虚拟机完整性的设备,包括:
处理器元件;
第一接口,用于将所述处理器元件耦合至服务器;以及
逻辑,在所述处理器元件上执行,用于:
接收所述服务器的第一定时器已达到第一时段的结束的指示;
监视所述服务器的中断控制器的状态以监视由所述处理器元件对虚拟机监视器(VMM)监察器的执行;
接收第一结果数据,所述第一结果数据指示在所述服务器的第二定时器达到第二时段的结束之前是否由所述服务器的处理器元件执行了VMM监察器以验证VMM的完整性;以及
等待对第二结果数据的接收,所述第二结果数据指示所述验证的结果。
11.如权利要求10所述的设备,其特征在于,所述逻辑用于:响应于缺乏对来自所述服务器的所述第二结果数据的接收,分析至少所述第一结果数据以判断缺乏对所述第二结果数据的接收的原因。
12.如权利要求11所述的设备,其特征在于,所述逻辑用于接收所述服务器的健康的指示,所述指示包括以下至少一项:所述服务器的组件的温度、对所述服务器的电功率供应的电压电平、对所述服务器的总线的活动的指示、对未修正阵列/逻辑误差的指示以及对所述服务器的时钟信号的存在或缺失的指示。
13.如权利要求12所述的设备,其特征在于,所述逻辑用于判断是否用信号通知所述服务器的控制器重新初始化所述服务器。
14.如权利要求12所述的设备,其特征在于,所述逻辑用于:响应于所述服务器的健康的指示,呈现需要修理所述服务器的指示。
15.如权利要求10所述的设备,其特征在于,包括显示器,所述逻辑用于:响应于对指示所述VMM的完整性未经所述VMM监察器验证的所述第二结果的接收,将所述VMM的完整性的指示视觉地呈现为遭破坏。
16.一种监视虚拟机完整性的计算机实现的方法,包括:
接收服务器的第一定时器已达到第一时段的结束的指示;
监视所述服务器的中断控制器的状态以监视由所述服务器的主处理器元件对VMM(虚拟机监视器)监察器的执行;
判断在所述服务器的第二定时器达到第二时段的结束之前,所述主处理器元件是否完成了所述VMM监察器的执行以验证VMM的完整性,所述判断基于所述主处理器元件是否已重新启用所述中断控制器;
监视所述服务器的健康状态的至少一个检测器;以及
将指示所述健康状态和所述判断的结果数据传送到计算设备。
17.如权利要求16所述的计算机实现的方法,其特征在于,包括:向所述中断控制器的寄存器写入,以便在对所述VMM的完整性验证之后重新启用所述中断控制器。
18.如权利要求16所述的计算机实现的方法,其特征在于,包括:
监视所述第二定时器的状态以监视由所述主处理器元件对所述VMM监察器的执行;以及
判断所述主处理器元件是否已停止所述第二定时器以指示所述VMM监察器的执行的完成。
19.如权利要求18所述的计算机实现的方法,其特征在于,包括:向所述第二定时器的寄存器写入以停止所述定时器,从而指示所述VMM监察器的完成。
20.如权利要求16所述的计算机实现的方法,其特征在于,所述健康状态包括以下至少一项:所述服务器的组件的温度、对所述服务器的电功率供应的电压电平、对所述服务器的总线的活动的指示、对未修正阵列/逻辑误差的指示以及对所述服务器的时钟信号的存在或缺失的指示。
21.如权利要求16所述的计算机实现的方法,其特征在于,包括使用密钥来验证嵌入在所述VMM中的数字签名。
22.一种用于监视虚拟机完整性的设备,包括用于执行如权利要求16-21中任何一项所述的方法。
23.一种存储指令的机器可读存储介质,当所述指令由所述机器执行时,使所述机器执行如权利要求16-21中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/797,924 | 2013-03-12 | ||
US13/797,924 US9720716B2 (en) | 2013-03-12 | 2013-03-12 | Layered virtual machine integrity monitoring |
PCT/US2014/022260 WO2014159158A1 (en) | 2013-03-12 | 2014-03-10 | Layered virtual machine integrity monitoring |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104995602A CN104995602A (zh) | 2015-10-21 |
CN104995602B true CN104995602B (zh) | 2018-09-28 |
Family
ID=51534724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008468.3A Active CN104995602B (zh) | 2013-03-12 | 2014-03-10 | 分层虚拟机完整性监视 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9720716B2 (zh) |
EP (1) | EP2972853B1 (zh) |
JP (1) | JP6017709B2 (zh) |
KR (1) | KR101725211B1 (zh) |
CN (1) | CN104995602B (zh) |
WO (1) | WO2014159158A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10009371B2 (en) * | 2013-08-09 | 2018-06-26 | Nicira Inc. | Method and system for managing network storm |
CN103488937B (zh) * | 2013-09-16 | 2017-02-22 | 华为技术有限公司 | 一种度量方法、电子设备及度量系统 |
US10063445B1 (en) * | 2014-06-20 | 2018-08-28 | Amazon Technologies, Inc. | Detecting misconfiguration during software deployment |
US8937496B1 (en) * | 2014-08-20 | 2015-01-20 | Xilinx, Inc. | Clock monitor |
US10037424B1 (en) * | 2015-12-22 | 2018-07-31 | Amazon Technologies, Inc. | Isolated virtual environments for untrusted applications |
US10459747B2 (en) * | 2016-07-05 | 2019-10-29 | Red Hat Israel, Ltd. | Exitless timer access for virtual machines |
CN106502868B (zh) * | 2016-11-18 | 2020-02-14 | 国云科技股份有限公司 | 一种适用于云计算的动态调整监测频率方法 |
CN112364343B (zh) * | 2020-11-16 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 虚拟机监控器秘密的保护方法、装置和电子设备 |
US12038806B2 (en) * | 2022-06-02 | 2024-07-16 | Micron Technology, Inc. | Evaluation of memory device health monitoring logic |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069439B1 (en) * | 1999-03-05 | 2006-06-27 | Hewlett-Packard Development Company, L.P. | Computing apparatus and methods using secure authentication arrangements |
CN101027640A (zh) * | 2004-09-30 | 2007-08-29 | 英特尔公司 | 为与虚拟机监控程序相关联的定时器提供支持 |
US7774855B2 (en) * | 2002-05-07 | 2010-08-10 | Savvis Communications Corporation | Integrity monitoring system and data visualization tool for viewing data generated thereby |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123107A (en) * | 1989-06-20 | 1992-06-16 | Mensch Jr William D | Topography of CMOS microcomputer integrated circuit chip including core processor and memory, priority, and I/O interface circuitry coupled thereto |
US5926640A (en) * | 1996-11-01 | 1999-07-20 | Digital Equipment Corporation | Skipping clock interrupts during system inactivity to reduce power consumption |
US5987598A (en) * | 1997-07-07 | 1999-11-16 | International Business Machines Corporation | Method and system for tracking instruction progress within a data processing system |
US6718482B2 (en) * | 1997-09-12 | 2004-04-06 | Hitachi, Ltd. | Fault monitoring system |
DE19928061C2 (de) * | 1999-06-15 | 2003-08-28 | Francotyp Postalia Ag | Sicherheitsmodul zur Überwachung der Systemsicherheit und Verfahren |
US20020161961A1 (en) | 2001-01-17 | 2002-10-31 | Ajile Systems, Inc. | Multiple virtual machine environment management system |
US20030074315A1 (en) * | 2001-10-16 | 2003-04-17 | Sterling National Bank | System and apparatus for remotely printing certified documents |
US20030130953A1 (en) * | 2002-01-09 | 2003-07-10 | Innerpresence Networks, Inc. | Systems and methods for monitoring the presence of assets within a system and enforcing policies governing assets |
US6993681B2 (en) * | 2002-04-15 | 2006-01-31 | General Electric Corporation | Remote administration in a distributed system |
WO2004055634A2 (en) * | 2002-12-12 | 2004-07-01 | Finite State Machine Labs, Inc. | Systems and methods for detecting a security breach in a computer system |
WO2005017690A2 (en) * | 2003-08-11 | 2005-02-24 | Chorus Systems, Inc. | Systems and methods for creation and use of an adaptive reference model |
US7937759B2 (en) * | 2003-10-02 | 2011-05-03 | Auburn University | System and method for protecting communication devices from denial of service attacks |
US7567974B2 (en) * | 2004-09-09 | 2009-07-28 | Microsoft Corporation | Method, system, and apparatus for configuring a data protection system |
US8271838B2 (en) * | 2004-11-16 | 2012-09-18 | Siemens Corporation | System and method for detecting security intrusions and soft faults using performance signatures |
US20060200726A1 (en) * | 2005-03-03 | 2006-09-07 | Seagate Technology Llc | Failure trend detection and correction in a data storage array |
US7694331B2 (en) * | 2005-04-01 | 2010-04-06 | Nokia Corporation | Phone with secure element and critical data |
US7953980B2 (en) * | 2005-06-30 | 2011-05-31 | Intel Corporation | Signed manifest for run-time verification of software program identity and integrity |
US7685638B1 (en) * | 2005-12-13 | 2010-03-23 | Symantec Corporation | Dynamic replacement of system call tables |
US20080147247A1 (en) * | 2006-12-18 | 2008-06-19 | Anton Weldin | Circuit for controlling an acceleration, braking and steering system of a vehicle |
JP4958641B2 (ja) * | 2007-05-29 | 2012-06-20 | 株式会社日立製作所 | 記憶制御装置及びその制御方法 |
US7831818B2 (en) * | 2007-06-20 | 2010-11-09 | Freescale Semiconductor, Inc. | Exception-based timer control |
US7962738B2 (en) * | 2007-12-20 | 2011-06-14 | Intel Corporation | Hypervisor runtime integrity support |
US8402536B2 (en) * | 2008-04-15 | 2013-03-19 | Nokia Corporation | Signature based authentication of the configuration of a configurable logic component |
US20090327741A1 (en) * | 2008-06-30 | 2009-12-31 | Zimmer Vincent J | System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid) |
US8464011B2 (en) * | 2008-10-27 | 2013-06-11 | Advanced Micro Devices, Inc. | Method and apparatus for providing secure register access |
JP5322620B2 (ja) * | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
US8140668B2 (en) | 2009-06-24 | 2012-03-20 | Red Hat Israel, Ltd. | Pre-scheduling the timelines of virtual machines |
KR20110111855A (ko) * | 2010-04-05 | 2011-10-12 | 주식회사 팬택 | 채널상태정보 피드백 장치와 그 방법, 기지국 |
CN101847188A (zh) * | 2010-04-28 | 2010-09-29 | 北京飞天诚信科技有限公司 | 一种基于时钟的安全装置的软件保护方法及安全装置 |
US9158564B2 (en) * | 2012-04-30 | 2015-10-13 | American Megatrends, Inc. | Virtual service processor stack |
US9046570B2 (en) * | 2012-08-03 | 2015-06-02 | Freescale Semiconductor, Inc. | Method and apparatus for limiting access to an integrated circuit (IC) |
US8978032B2 (en) * | 2012-11-15 | 2015-03-10 | Bank Of America Corporation | Host naming application programming interface |
US8954546B2 (en) * | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
-
2013
- 2013-03-12 US US13/797,924 patent/US9720716B2/en active Active
-
2014
- 2014-03-10 KR KR1020157021737A patent/KR101725211B1/ko active IP Right Grant
- 2014-03-10 WO PCT/US2014/022260 patent/WO2014159158A1/en active Application Filing
- 2014-03-10 JP JP2015561750A patent/JP6017709B2/ja active Active
- 2014-03-10 CN CN201480008468.3A patent/CN104995602B/zh active Active
- 2014-03-10 EP EP14775763.7A patent/EP2972853B1/en active Active
-
2017
- 2017-07-31 US US15/665,382 patent/US10671416B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069439B1 (en) * | 1999-03-05 | 2006-06-27 | Hewlett-Packard Development Company, L.P. | Computing apparatus and methods using secure authentication arrangements |
US7774855B2 (en) * | 2002-05-07 | 2010-08-10 | Savvis Communications Corporation | Integrity monitoring system and data visualization tool for viewing data generated thereby |
CN101027640A (zh) * | 2004-09-30 | 2007-08-29 | 英特尔公司 | 为与虚拟机监控程序相关联的定时器提供支持 |
Also Published As
Publication number | Publication date |
---|---|
WO2014159158A1 (en) | 2014-10-02 |
US20140282502A1 (en) | 2014-09-18 |
EP2972853A1 (en) | 2016-01-20 |
CN104995602A (zh) | 2015-10-21 |
US10671416B2 (en) | 2020-06-02 |
EP2972853A4 (en) | 2016-10-19 |
JP2016515249A (ja) | 2016-05-26 |
JP6017709B2 (ja) | 2016-11-02 |
US20170371689A1 (en) | 2017-12-28 |
KR20150105990A (ko) | 2015-09-18 |
EP2972853B1 (en) | 2019-04-24 |
KR101725211B1 (ko) | 2017-04-10 |
US9720716B2 (en) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104995602B (zh) | 分层虚拟机完整性监视 | |
US7827592B2 (en) | Implicit authentication to computer resources and error recovery | |
CN104572168B (zh) | 一种bios自更新保护系统及方法 | |
CN107506663A (zh) | 基于可信bmc的服务器安全启动方法 | |
CN103164643B (zh) | 一种通过硬件进行反调试的方法和装置 | |
CN103500308A (zh) | 用于对抗由恶意软件对仿真的检测的系统和方法 | |
CN109840430A (zh) | Plc的安全处理单元及其总线仲裁方法 | |
US20170032573A1 (en) | Touchscreen image mapping for augmented reality devices | |
US20170193237A1 (en) | Techniques for security auditing of cloud resources | |
DE112013005184T5 (de) | Für einen Benutzer vertrauenswürdige Einheit zum Erkennen einer virtualisierten Umgebung | |
CN102194063A (zh) | 一种基于虚拟机技术安全管理使用密钥证书的方法和系统 | |
US20140096270A1 (en) | Secure data containers and data access control | |
US9679134B1 (en) | Systems and methods for detecting display-controlling malware | |
CN107832616A (zh) | 计算机预启动安全验证、实施和修复 | |
CN107918911A (zh) | 用于执行安全网上银行交易的系统和方法 | |
CN106446667B (zh) | 一种密码数据处理方法、装置及设备 | |
CN108351936A (zh) | 检测虚拟机或者仿真器的程序规避 | |
US10445481B1 (en) | Systems and methods for performing human-verification procedures | |
CN104361298A (zh) | 信息安全保密的方法和装置 | |
US20180032761A1 (en) | System and method for preventing thin/zero client from unauthorized physical access | |
US10402556B2 (en) | Information handling system display security access through totem interactions | |
Linthicum | The evolution of cloud service governance | |
Sluganovic et al. | IntegriScreen: Visually Supervising Remote User Interactions on Compromised Clients | |
Pfleeger | Technology, transparency, and trust | |
US9734312B1 (en) | Systems and methods for detecting when users are uninstalling 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |