分层虚拟机完整性监视的制作方法

文档序号:9278175阅读:370来源:国知局
分层虚拟机完整性监视的制作方法
【技术领域】
[0001] 本文所描述的多个实施例一般涉及用于提供对虚拟机完整性的分层监视的多个 硬件和软件组件的使用。
【背景技术】
[0002] 随着基于服务器的计算服务(例如,所谓的"云"计算)的使用变得更加流行,用 于提供那些服务的服务器的安全性变得愈加重要。同样,由此类服务器提供的服务类型已 在种类上有所增加。结果,由那些寻求对提供给其他人的此类服务和对提供那些服务的服 务器的未经授权的访问的人所做的企图(例如,所谓的"黑客操作"或"网络攻击")已在数 量上增长并在特点上发生变化。
[0003] 破坏此类服务器的安全性的早期企图主要聚焦在破坏由服务器采用来提供特定 类型或特定范围的服务的特定应用软件。作为示例,此类早期企图聚焦在破坏由服务器的 处理器执行以提供特定类型的服务的数据库维护应用、搜索引擎应用、数据归档应用、货币 或财务事务应用等。目标经常是通过破坏处理敏感数据的应用的安全性来获取对敏感数据 的访问。
[0004] 然而,破坏服务器的安全性的较新近的企图已更多地聚焦在破坏提供服务器自身 的更基本的功能时所采用的操作系统或其他核心软件。在成为较新近的普遍目标的此类核 心软件之间的是为不同的账户创建并维护单独的虚拟机的虚拟机监察器(monitor) (VMM), 在这些不同的账户的顶上,采用此类服务器的服务的客户可执行各种不同的应用软件中的 任何一个或应用软件的组合。
[0005] 响应于该变化的安全威胁,已将VMM软件的各种片段设计成持续地监视在服务器 上活动的每一个虚拟机,以指示已被破坏和/或其他问题。然而,破坏虚拟机的企图已继续 变得更成熟,并且现在其包括破坏VMM软件自身的企图。正是针对这些和其他考虑才需要 本文所述的多个实施例。
【附图说明】
[0006] 图1示出多个计算设备之间的交互的第一实施例。
[0007] 图2、3和4示出图1的实施例的诸部分。
[0008] 图5示出图3的部分的变型。
[0009] 图6示出第一逻辑流程的实施例。
[0010] 图7示出第二逻辑流程的实施例。
[0011] 图8示出第三逻辑流程的实施例。
[0012] 图9示出处理架构的实施例。
【具体实施方式】
[0013] 各实施例一般涉及用于监视分层的虚拟机监视(VMM)软件组件的状态的计算设 备的各种硬件和软件组件的供应和使用。更具体而言,具有受限的访问的基于硬件的定时 器、包括独立的处理器元件和存储设备的控制器以及去往管理设备的通信信道的辅助通信 信道的组合协作以监视监察器软件,该监察器软件监视转而监视多个虚拟机会话的VMM软 件。
[0014] 在至少由服务器的处理器元件和存储设备定义的服务器的主操作环境中,VMM组 件监视并控制多个虚拟机的操作,在这些虚拟机中的每一个之内,使该处理器元件执行应 用软件的一个或多个片段。该VMM组件实施防止从一个虚拟机到另一个的访问的限制。该 VMM可通过禁用或去除从其中尝试了此类未经授权的访问的虚拟机来响应在虚拟机之间的 此类未经授权的访问处的尝试。
[0015] 在主操作环境的存储设备的硬件保护区之内,VMM监察器执行对VMM组件的周期 性状态校验以确保该VMM组件正在正确地运行,并且其完整性未遭破坏。由随机化硬件定 时器触发该周期性状态校验,其中,在触发状态校验的每一个实例之间,时间间隔可随机改 变。使得由VMM监察器将VMM组件的此类状态校验的结果的指示传送到与服务器分开并且 与服务器不同的管理设备。
[0016] 在与主操作环境分开并且与之不同的控制器环境中,存储在控制器存储设备中并 由控制器处理器元件执行的监察器验证器校验VMM监察器以确保该VMM监察器(watcher) 正在正确地运行,并且其完整性未遭破坏。对VMM监察器的这些校验需要监察器验证器监 视由该VMM监察器进行的对VMM的状态校验的过程。独立于由VMM监察器引起的传输,由 监察器验证器将对VMM监察器的此类校验的结果的指示传送到管理设备。
[0017] 管理设备接收对VMM以及对VMM监察器的状态的这些单独的指示,并且采用这些 指示来确定服务器的当前总体状态。管理设备可通过将重启服务器和/或采取其他服务器 管理动作(诸如,将警告指示提供给操作者)的命令传送到控制器处理器元件来响应对服 务器状态的一个或多个特定确定。应当注意,尽管集中于主要在单个服务器内进行的讨论, 但是预想了将会将本文所公开的技术应用于多个服务器,并且管理设备将从多个服务器接 收此类状态信息。
[0018] 根据对本文中使用的标记法和命名法的一般引用,可以在计算机或计算机网络上 执行的程序过程方面来呈现以下详细描述的多个部分。这些程序性描述和表示由本领域技 术人员使用以便最有效地将它们工作的实质传递给本领域其他技术人员。过程在此一般被 理解为导致所需结果的自洽的操作序列。这些操作是需要对物理量进行物理操控的操作。 通常地但非必然地,这些量采取能被存储、转移、组合、比较并以其他方式操控的电、磁或光 信号的形式。主要出于惯用法的原因,时不时地将这些信号称为位、值、元素、符号、字符、 项、数字等被证明是方便的。然而,应当注意,所有这些和/或类似项旨在与适当的物理量 相关联,并且仅仅是应用于那些量的方便的标记。
[0019] 此外,通常按术语将这些操控称为常与由人类操作员执行的脑力操作相关联的相 加或比较。然而,在形成一个或多个实施例的部分的本文所述的操作中的任何操作中,在多 数情况下,没有人类操作员的此类能力是必需的或需要的。相反,这些操作是机器操作。用 于执行各实施例的多个操作的有用的机器包括通用数字机器,其由根据本文的教导而写入 的存储于其内的计算机程序选择性地激活或配置;并且/或者包括专门为所需目的而构造 的装置。各实施例也涉及用于执行这些操作的装置或系统。可为所需目的专门构造这些装 置,或者这些装置可包括通用计算机。各种这些机器的所需结构将从给定的描述中呈现。
[0020] 现在将参考附图,自始至终同样的参考编号用于表示同样的元件。在以下描述中, 为了进行解释,阐述了众多特定细节以便提供对该描述的全面理解。然而,显而易见的是, 可以不利用这些特定细节而实施各新颖的实施例。在其他实例中,以框图形式示出了多个 公知的结构和设备以便于对这些结构和设备的描述。本发明旨在涵盖在权利要求范围之内 的所有修改、等效方案和替换方案。
[0021] 图1描绘了计算服务系统1000的计算设备之间的交互的框图,计算服务系统1000 包括寻求利用基于服务器的计算服务的操作者的交互设备l〇〇a- C中的一个或多个、用于 提供此类服务的服务器300以及用于监督服务器300的操作的管理设备600。这些计算设 备100a-c、300和600中的每一个可以是各种类型的计算设备中的任何一个,包括但不限 于,台式计算机系统、数据录入终端、膝上型计算机、上网本计算机、超级本计算机、平板计 算机、手持式个人数字助理、智能电话、数码相机、移动设备、合并到衣服中的身体穿戴的计 算设备、集成到车辆中的计算设备、服务器、服务器群集、服务器场等。
[0022] 如所描绘的那样,这些计算设备100a-c、300和600通过系统1000的网络999来 交换信号,该信号传递表示对提供基于服务器的服务的状态的指示的数据。然而,这些计算 设备中的一个或多个可交换与此类服务的供应完全不相关的其他数据。在各实施例中,网 络999可以是可能限于在单个建筑或其他相对有限区域内延伸的单个网络、可能延伸相当 长距离的多个经连接网络的组合和/或可包括因特网。由此,网络999可基于通过其可交 换信号的各种通信技术(或通信技术的组合)中的任何技术,包括但不限于,采用电和/或 光导电缆布线的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
[0023] 应当注意,尽管对三个交互设备100a-C的数量进行了特定描绘,但是,可由寻求 利用由服务器300提供的服务的任何数量的操作者采用各种数量中的任何数量的交互设 备。因此,对这三个交互设备的该特定描绘仅是示例,其用于表达预想了可在任何给定时刻 采用服务器300来将服务提供给多个交互设备,而无论它们的确切数量可能是什么。还应 当注意,尽管将单个网络999描绘为在交互设备100a- C、服务器300以及管理设备600之间 是共享的,但是应当理解,经由完全与被用于将服务器300耦合至诸如交互设备100a- C之 类的交互设备的任何网络分开的网络(或其他形式的链路)将管理设备600耦合至服务器 300和/或其他服务器的替代实施例是可能的。
[0024] 在各实施例中,服务器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。
[0025] 应当注意,尽管对三个VM会话331X-Z的数量进行了特定描绘,但是,可由控制例 程340实例化并维持各种数量中的任何数量的VM会话,可能仅由处理器元件350和存储 设备360的容量限制。因此,三个VM会话的该特定描绘仅是示例,其用于表达预想了在任 何给定时刻,在服务器300中可实例化并维持众多VM会话。还应当注意,不旨在表示三个 所描绘的交互设备l〇〇a-C与三个所描绘的VM会话331x-z之间存在任何特定的对应关系。 实际上,取决于在任何给定时刻对任何给定的VM会话的使用的性质和程度,在任何给定时 亥IJ,任何给定的VM会话可与多个交互设备相关联,或没有交互设备被耦合至服务器300都 是完全可能的。可在各种应用软件中的任何应用软件或应用软件的组合的执行中采用VM 会话331x-z中的每一个。
[0026] 如本领域技术人员将容易地理解的那样,中断控制器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的另一次初始化发生。
[0027] 健康检测器417由一个或多个组件构成,可由这一个或多个组件监视服务器300 的操作条件的不同方面。更具体而言,健康检测器417可包括监视服务器300的各种组件 的温度的热传感器、监视以其将电功率提供给服务器300的组件中的一个或多个的电压的 电压电平传感器、总线活动监察器、时钟信号监察器、处理器线程执行监察器等。
[0028] 受保护位置367可由被处理器元件350定义为受制于相对严格的访问限制的一个 或多个地址区段构成。此类限制可包括:授予被存储在
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1