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

文档序号:9278175阅读:来源:国知局
受保护位置367内的可执行指令遍 及存储设备360相对自由地在其他地址处访问数据和/或可执行指令的能力,同时可大大 地限制或完全不准许由来自受保护位置367的外部的其他可执行指令进行的访问。替代地 或附加地,可授予存储在受保护位置367之内的可执行指令在各个地址位置处访问服务器 300的相对宽选择的组件的能力,同时由受保护位置367外部的其他可执行指令进行的访 问可限于相对有限选择的组件。在对服务器300的初始化之后(例如,在对其上电或重置 其之后),处理器元件350可配置成用于定义受保护位置367占据的存储设备360内的地址 位置和/或在受保护范围360之内或之外两处的可执行指令的相对访问优先级程度。可由 控制器400实施此类配置和/或可准许此类配置发生仅一次,并且之后直到服务器300的 另一次初始化发生都(由处理器元件350和/或其他硬件)致使该配置不变。按此方式, 受保护位置367不会由恶意软件暗中使其变得不安全。
[0029] 控制例程340包括在按其作用作为服务器300的主处理器的处理器元件350上的 操作以实现用于执行各种功能的逻辑的指令序列。在执行控制例程340的指令序列时,使 处理器元件350实例化、维持并监视VM会话331x-z中的每一个。本质上,控制例程340实 现VM监视器(VMM)的逻辑。在VM会话331x-z中的每一个之内,由处理器元件350作为向 与VM会话331X-Z中的不同会话相关联的交互设备llOa-c中的不同设备提供基于服务器 的计算服务的部分来执行应用软件或应用软件的组合。控制例程340使处理器元件350维 持VM会话331x_z中的每一个之间的隔离度(a degree of isolation),使得该控制例程 340不准许在这些VM会话中的一个之内的由处理器元件350执行的应用软件使该处理器 元件350访问这些VM会话中的另一会话之内的数据或应用软件。在检测到由可执行指令 在这些VM会话中的一个之内使处理器元件350进行此类不准许的访问的尝试后,控制例程 340可使该处理器元件350禁用可从其中尝试该不准许的访问的VM会话、去除该VM会话和 /或采取各种其他动作中的任何动作。因此,控制例程340通过在VM会话之间的隔离度的 供应来使处理器元件350提供安全度。
[0030] 控制例程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没有遭破坏(例如,经恶意软件更改、扩充或替换)。
[0031] 无论处理器元件350是否能够(通过无论什么方式)验证控制例程340的至少部 分的完整性,随后,控制例程370都使该处理器元件350在状态数据339中指示其检查的 结果,并且随后使得该状态数据339经由网络999被传送到管理设备600。在一些实施例 中,禁用中断控制器315以允许对控制例程370的不中断执行的事实导致控制例程不得不 具有相对紧凑的尺寸,以便可足够快地执行来允许对中断控制器315的相对快速的重新启 用,从而避免对中断的预防性(forestalling)响应持续过久。因此,在此类实施例中,控制 例程370可不包括直接使处理器元件350操作接口 390以将状态数据339传送到管理设备 600所需的指令。因此,在此类实施例中,控制例程370可使处理器元件350在完成对控制 例程370的执行并恢复对控制例程340的执行之后才执行对状态数据339的此类传送。
[0032] 在完成了至少检查了控制例程340的完整性之后,由控制例程370使处理器元件 350重新启用中断控制器315,停止对控制例程370的执行并恢复执行控制例程340。此外, 正如所讨论的那样,现在可采用被合并进控制例程340中以操作接口 390来这样做的指令 来使处理器元件350将状态数据339传送到管理设备600。然而,应当注意,如果控制例程 340实际上遭破坏或以其他方式不起作用,则依赖控制例程340来使处理器元件350执行状 态数据339向管理设备600的传送的事实会导致从不传送该状态数据339,使得管理设备 600无法接收它。
[0033] 控制例程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监察器验证功能。
[0034] 如果在定时器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。
[0035] 无论在定时器313完成计数之前处理器元件350是否能够完成对控制例程370的 执行,都由控制例程440使处理器元件450在状态数据439中指示处理器元件350为了这 样做而努力的结果。控制例程440包括在没有来自处理器元件350的辅助的情况下使处理 器元件450能够操作接口 390以将状态数据439传送到管理设备600所需的指令,并且控 制例程440使处理器元件450这样做。结果,每当随机化定时器312完成计数到随机选择 的时段的结束时,并且无论使得管理设备600可能无法接收状态数据339的控制例程340 或370中的任何一个的条件如何,管理设备600仍然应当接收到状态数据439。
[0036] 处理器元件450和存储设备460定义控制器400之内的操作环境的多个部分,该 操作环境基本上与由至少处理器元件350和存储设备360定义的操作环境分开。该分开的 操作环境使得能够执行控制例程440,同时遭可由处理器元件350执行的其他较不可信的 软件破坏的风险大大降低。将状态数据439中的一个或多个存储在存储设备460之内进一 步辅助确保控制例程440的执行的完整性。因此,预想了很有可能即便伴随着控制例程340 和370两者的损坏或使得处理器元件350停止有效地执行指令(例如,机器校验)的故障, 控制器400应当保持具有足够的功能以将状态数据439提供给管理设备600。
[0037] 在各实施例中,管理设备600包括处理器元件650、存储设备660以及将管理设备 600耦合至网络999的接口 690中的一个或多个。存储设备660存储控制例程640以及从 服务器300接收到的状态数据339和439中的一者或两者。控制例程640包括在处理器元 件650上操作以实现用于执行各种功能的逻辑的指令序列。在执行控制例程640的指令序 列时,使处理器元650评价分别由处理器元件350和450对控制例程370和440的执行结 果的指示以确定服务器300的状态。例如,在状态数据339指示对控制例程340的完整性 的成功验证的情况下,随后使处理器元件650确定服务器300正在正常并安全地运行。
[0038] 或者,在完全没有接收到状态数据339但接收到状态数据439的情况下,随后使处 理器元件650检查在状态数据439中指示的内容来尝试确定为何没有接收到状态数据339。 在状态数据439指示了在定时器313完成计数之前处理器元件350成功地完成了对控制例 程370的执行以评价控制例程340的完整性的情况下,随后使处理器元件650判断控制例 程340是遭破坏还是严重地故障而阻碍了状态数据339的传送。在状态数据439指示了在 定时器313完成计数(例如,反复地重新触发了定时器313以及每当定时器313完成时) 之前处理器元件350未成功地完成对控制例程370的执行的情况下,随后使处理器元件650 确定至少控制例程370遭破坏,或者处理器元件350或其他组件已发生故障。
[0039] 为了弄清处理器元件350是否已发生故障,处理器元件650可评估对可包括在状 态数据439中的服务器300的健康的一个或多个指示。更具体而言,在由随机化定时器312 的倒计数触发以监视控制例程370的执行的实例之间,可使处理器元件450操作健康检测 器417中的一个或多个以监视服务器300的健康的各方面,并且反复地将关于服务器300 的健康的检测到的内容的指示传送到管理设备600 (也许作为状态数据439的附加数据)。 因此,相比每当随机化定时器312完成计数时所生成的触发事件,可使处理器元件450以更 频繁的时间间隔来将关于服务器300的健康的状态数据439的变型传送到管理设备600。
[0040] 对服务器300的健康的此类指示可指示处理器元件350在较早时一般可能由于进 入了其不能够从中恢复的未定义状态而停止执行指令。或者,可能存在未能将向服务器300 供应电功率的电压电平维持在所指定的容差之内使得处理器元件350和/或其他组件正间 歇地或不可预测地运行的指示。由于包括了对服务器300的各种组件的健康的此类指示, 可由处理器元件650将故障与安全漏洞的实例区分开来。取决于处理器元件650对发生在 服务器300之内的不正确行为的原因作出了什么确定,可使处理器元件650将停机或重置 的命令传送到服务器300,并且/或者可使其将问题的指示呈现给负责服务器300的操作的 人员。
[0041] 在各实施例中,处理器元件350、450和650中的每一个可包括各种商业上可 获得的处理器中的任何处理器,包括但不限于,AMD?的速龙? (Athlon?)、毒龙? (Duron?)或皓龙? (Opteron?)处理器;ARM?的应用、嵌入式或安全处理器;IBM? 的和/或摩托罗拉?的龙珠? (DragonBall?)或powerpc?处理器;IBM和/或索尼? 的Cell处理器;或英特尔?的赛扬? (Celeron?)、酷睿⑵Duo?、酷睿⑵Quad?、 酷睿i3?、酷睿i5?、酷睿i7?、凌动? (Atom?)、安腾? (Itanium?)、奔腾? (Pentium? )、(Xeon?)或XScale?处理器。此外,这些处理器兀件中的一个或多 个可包括多核处理器(无论多个核共同位于相同的管芯上还是在分开的管芯上)和
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1