虚拟机管理器促进的选择性代码完整性实施制造技术

技术编号:15062079 阅读:62 留言:0更新日期:2017-04-06 11:22
虚拟机管理器促进选择性代码完整性实施。虚拟机管理器(或其他更高特权的实体)能验证存储器页中代码的完整性,且仅当虚拟机管理器(或其他更高特权的实体)验证了该代码的代码完整性时,以内核模式运行的虚拟处理器才能在存储器页上执行该代码。然而,当虚拟处理器以用户模式运行时,虚拟机管理器不需要验证存储器页中代码的完整性。相反,运行在虚拟处理器上的操作系统可应用各种各样策略中的任何策略(如任选地执行对代码的各种各样的不同检查或验证中的任何检查或验证)来判断该代码是否能以用户模式来执行。

【技术实现步骤摘要】
【国外来华专利技术】背景随着计算技术发展,计算设备已经变得越来越互连。尽管这种互连提供了许多益处,但它并非没有其问题。一种这样的问题是计算设备越来越多地暴露于恶意程序。恶意程序能以不同方式操作,诸如通过从计算设备窃取信息、禁用计算设备、使用计算设备发起针对其他计算设备的攻击等等。尽管已经开发了一些技术来保护计算设备以防范恶意程序,但是这样的恶意程序仍然存在且在它们感染用户的计算机时能导致破坏用户体验。概述提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。根据一个或多个方面,包括要由虚拟机的虚拟处理器执行的可执行代码的存储器页被标识,所述虚拟机由虚拟机管理器管理。作出关于该存储器页是否能以内核模式执行的判断。响应于判断出所述存储器页能以内核模式执行,对所述可执行代码的代码完整性检查被执行,且仅当所述代码完整性检查验证了所述可执行代码时所述可执行代码的执行才被允许用于所述内核模式。响应于判断出所述存储器页不能以内核模式执行,所述虚拟机的操作系统被允许判断是否允许所述可执行代码的执行。根据一个或多个方面,一种计算设备包括操作系统、虚拟机管理器以及处理器。所述处理器被配置成允许所述虚拟机管理器将存储器页的内核模式执行限制于具有其完整性已被比所述操作系统更高特权的更高特权的实体验证了的代码的存储器页,但允许存储器页的用户模式执行而不管存储器页上的代码的完整性是否已被所述更高特权的实体验证。附图简述在全部附图中,使用相同的附图标记来指示相同的特征。图1是例示出根据一个或多个实施例的实现本文所讨论的技术的示例计算设备的框图。图2例示出根据一个或多个实施例的实现本文所讨论的虚拟机管理器促进的选择性代码完整性实施技术的示例系统。图3是例示出根据一个或多个实施例的实现虚拟机管理器促进的选择性代码完整性实施的示例过程的流程图。图4例示出根据一个或多个实施例的实现虚拟机管理器促进的选择性代码完整性实施的另一示例系统。图5例示出包括示例计算设备的示例系统,该示例计算设备代表可实现本文所描述的各种技术的一个或多个系统和/或设备。详细描述本文讨论了虚拟机管理器促进的选择性代码完整性实施。虚拟机是物理设备的软件实现,该软件实现能够类似于物理设备来运行程序。虚拟机以及对物理设备的硬件的访问是由物理设备上的虚拟机管理器管理的。虚拟机和虚拟机管理器访问由多个块或部分(称为存储器页(或简称为页))组成的存储器。代码完整性被用于在物理设备上促进防范恶意代码。代码完整性指的是基于代码完整性策略来验证的代码(例如二进制)的完整性。如果代码基于代码完整性策略得到验证,则代码的完整性被验证且代码被允许执行;否则,代码的完整性未被验证且代码不被允许执行。处理器能以内核模式或用户模式执行代码。当虚拟机的虚拟处理器以内核模式运行时,虚拟处理器仅运行其完整性被虚拟机管理器(或被比虚拟处理器上运行的操作系统更高特权的另一实体)验证的代码。包括代码的存储器页的代码完整性被验证,且仅当虚拟机管理器(或其他更高特权的实体)已经验证了一存储器页上的代码的代码完整性时,以内核模式运行的虚拟处理器才能执行该存储器页上的代码。然而,当虚拟处理器以用户模式运行时,运行在虚拟处理器上的操作系统判断代码是否能被执行。操作系统能应用各种各样的策略中的任何策略(如执行对代码的各种各样的不同检查或验证中的任何检查或验证)以判断代码是否能以用户模式被执行,包括任选地以用户模式执行代码而不对代码执行任何检查或验证。图1是例示出根据一个或多个实施例的实现本文所讨论的技术的示例计算设备100的框图。计算设备100可以是各种各样不同类型的设备中的任何设备。例如,计算设备100可以是台式计算机、服务器计算机、膝上型或上网本计算机、平板或笔记本计算机、移动站、娱乐设备、通信上耦合到显示设备的机顶盒、电视机或其他显示设备、蜂窝式或其他无线电话、游戏控制台、车载计算机、可穿戴计算机等等。计算设备100包括虚拟机管理器102(也称为管理程序)以及一个或多个组件104。虚拟机管理器102管理对由组件104所提供的功能的访问。替代地,虚拟机管理器102可运行在主机操作系统(未示出)上,在该情况下主机操作系统管理对由组件104所提供的功能的访问。组件104可以是各种各样的不同处理器组件、输入/输出(I/O)组件、和/或其他组件或设备。例如,组件104可包括一个或多个处理器或处理器核、一个或多个存储器组件(如易失性和/或非易失性存储器)、一个或多个存储设备(如光盘和/或磁盘、闪存驱动器)、一个或多个通信组件(如有线和/或无线网络适配器)、它们的组合等等。尽管被例示为计算设备100的一部分,但是组件104中的一个或多个(如一个或多个存储设备)可被实现在计算设备100的外部。运行在计算设备100上的包括虚拟机管理器102在内的各种组件或模块可直接地和/或经由其他组件或模块间接地访问由组件104所提供的该功能。虚拟机管理器102允许虚拟机106在计算设备100上运行。单个虚拟机106被例示在计算设备100中,尽管另选地多个虚拟机可在计算设备100上运行。虚拟机指的是物理计算设备(或其他机器或系统)的软件实现,该软件实现能够类似于物理计算设备来运行程序。虚拟机包括类似于组件104(但却是组件104的软件实现)的一个或多个虚拟组件。操作系统以及其他应用可使用虚拟组件就好像它们在使用组件104时那样来执行,包括在虚拟处理器或虚拟处理器核上运行、访问虚拟存储器等等。虚拟机106中执行的操作系统和其他应用不需要知道且通常不知道它们正在虚拟机中执行。虚拟机106包括操作系统112、一个或多个应用114、以及一个或多个虚拟组件116。操作系统112在作为组件116中的一个或多个组件而被包括在内的一个或多个虚拟处理器或处理器核上运行或执行,并管理应用114的执行。虚拟机管理器102包括虚拟机(VM)控制模块122和页管理模块124。虚拟机控制模块122管理虚拟组件116到组件104的映射,包括对虚拟处理器或处理器核的调度以在物理处理器或处理器核上执行。页管理模块124标识哪些页能以内核模式执行,并可任选地对能以内核模式执行的存储器页执行对代码的代码完整性检查,如下文更详细讨论的那样。尽管被例示为两个分开的模块,但是应注意模块122和124的功能可被本文档来自技高网...

【技术保护点】
一种在计算设备中实现的方法,所述方法包括:标识包括要由虚拟机的虚拟处理器执行的可执行代码的存储器页,所述虚拟机由虚拟机管理器管理;判断所述存储器页是否能以内核模式执行;由比所述虚拟机的操作系统更高特权的实体且响应于判断出所述存储器页能以所述内核模式执行,对所述可执行代码执行代码完整性检查,且仅当所述代码完整性检查验证了所述可执行代码时才允许所述可执行代码针对所述内核模式的执行;以及响应于判断出所述存储器页不是可执行模式,允许所述虚拟机的所述操作系统判断是否允许所述可执行代码的执行。

【技术特征摘要】
【国外来华专利技术】2013.09.17 US 61/879,068;2014.02.12 US 14/179,3781.一种在计算设备中实现的方法,所述方法包括:
标识包括要由虚拟机的虚拟处理器执行的可执行代码的存储器页,所述虚
拟机由虚拟机管理器管理;
判断所述存储器页是否能以内核模式执行;
由比所述虚拟机的操作系统更高特权的实体且响应于判断出所述存储器
页能以所述内核模式执行,对所述可执行代码执行代码完整性检查,且仅当所
述代码完整性检查验证了所述可执行代码时才允许所述可执行代码针对所述
内核模式的执行;以及
响应于判断出所述存储器页不是可执行模式,允许所述虚拟机的所述操作
系统判断是否允许所述可执行代码的执行。
2.如权利要求1所述的方法,所述比所述虚拟机的操作系统更高特权的实
体包括所述虚拟机管理器。
3.如权利要求1所述的方法,进一步包括由所述操作系统且响应于判断出
所述存储器页不能以内核模式执行,执行对所述可执行代码的代码完整性检
查,且仅当所述操作系统执行的所述代码完整性检查验证了所述可执行代码时
才允许所述可执行代码的执行。
4.如权利要求1所述的方法,所述计算设备进一步包括一组件,所述组件
包括允许用于所述虚拟处理器的内核模式的执行权限与用于所述虚拟处理器
的用户模式的执行权限或策略被分开指定的属性。
5.一种计算设备,...

【专利技术属性】
技术研发人员:D·A·赫伯金K·D·约翰逊
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1