首页 / 专利库 / 保护装置和系统 / 安全完整性等级 / 一种在VT环境中操作的软件代理的篡改保护方法和装置

一种在VT环境中操作的软件代理的篡改保护方法和装置

阅读:723发布:2020-11-13

专利汇可以提供一种在VT环境中操作的软件代理的篡改保护方法和装置专利检索,专利查询,专利分析的服务。并且这里描述了用于比较物理设备的第一 存储器 页面的第一安全域和该物理设备的第二存储器页面的第二安全域的方法、装置、物品以及系统,所述安全域存储在该物理设备的处理器的一个或多个寄存器中。基于该比较,如果第一安全域与第二安全域不同,则处理器禁止来自第一存储器页面的指令 访问 第二存储器页面。结果,可以在VT环境中更为有效和有 力 地保护 软件 代理,尤其是关键性的软件代理。,下面是一种在VT环境中操作的软件代理的篡改保护方法和装置专利的具体信息内容。

1.一种方法,包括:
将物理设备的第一存储器页面的第一安全域和所述物理设备的 第二存储器页面的第二安全域存储在所述物理设备的处理器的转换 后备缓冲器的寄存器中;
当所述第一存储器页面的指令试图引用或访问所述第二存储器 页面时,分析所述第一和第二存储器页面的第一和第二安全域;以及
至少部分地基于对所述第一和第二安全域的分析,禁止所述第一 存储器页面的指令引用或访问所述第二存储器页面。
2.如权利要求1所述的方法,其中所述存储操作包括:当试图 进行引用或访问时,从所述转换后备缓存中检索所述第一和第二安全 域,并且将所检索到的第一和第二安全域存储在所述转换后备缓存的 寄存器中。
3.如权利要求2所述的方法,其中所述方法进一步包括:从所 述物理设备的虚拟机管理器的页表中检索所述第一和第二安全域,并 且将所检索到的第一和第二安全域高速缓存在所述转换后备缓存中, 并且所述虚拟机管理器的页表是扩展页表,其包括:
扩展页表指针结构,每个扩展页表指针结构指示是否已经为相关 的存储器页面设置了安全域以及指示与所述安全域相关的特性,以及
扩展页表项结构,用于存储分配给相关的存储器页面的安全域。
4.如权利要求3所述的方法,其中来自多个扩展页表项结构的 位可被用于存储一个安全域,其中所述多个扩展页表项结构中的至少 一些具有彼此不同的嵌套级别。
5.如权利要求1所述的方法,其中所述禁止操作包括:如果所 述第一安全域与所述第二安全域不同,则引发页面错误,并且禁止所 述第一存储器页面的指令引用或访问所述第二存储器页面。
6.如权利要求1所述的方法,其中所述方法进一步包括:确定 所述第二存储器页面是否是隐藏的存储器页面,并且如果所述第二存 储器页面是隐藏的存储器页面,则也禁止所述第一存储器页面的指令 引用或访问所述第二存储器页面。
7.如权利要求6所述的方法,其中所述方法进一步包括:确定 所述引用或访问是否是读或写引用或访问,并且,如果所述第二存储 器页面不是隐藏的存储器页面,则如果所述第一安全域与所述第二安 全域不同并且所述引用或访问是读引用或访问则不禁止所述指令引 用或访问所述第二存储器页面,如果所述第一安全域低于所述第二安 全域并且所述引用或访问是写引用或访问则禁止所述指令引用或访 问所述第二存储器页面。
8.如权利要求1所述的方法,进一步包括:如果所述引用或访 问是到所述第二存储器页面的允许入口点的跳转或调用之一,则不管 所述第一安全域是否与所述第二安全域不同,都不禁止所述指令引用 或访问所述第二存储器页面。
9.如权利要求1所述的方法,进一步包括:如果所述第二安全 域不比至少一个预定安全域具有更高的特权,则不禁止所述指令引用 或访问所述第二存储器页面。
10.如权利要求1所述的方法,其中所述第二存储器页面存储关 键的操作系统组件,并且所述第二安全域是管理安全域。
11.如权利要求1所述的方法,进一步包括:由所述物理设备的 虚拟机管理器的安全域分配服务分配至少所述第一和第二安全域。
12.如权利要求1所述的方法,进一步包括:由所述物理设备的 虚拟机管理器的完整性测量模验证分配有所述第一存储器页面的 所述物理设备的虚拟机的代理的完整性。
13.一种处理器,包括:
转换后备缓冲器,包括第一和第二寄存器,用于存储具有所述处 理器的物理设备的第一和第二存储器页面的第一和第二安全域;以及
比较逻辑,其耦合到所述转换后备缓冲器,用于:
比较所述第一存储器页面的第一安全域和所述第二存储器 页面的第二安全域,其中所述安全域已经从所述转换后备缓冲器 中检索出,以及
如果所述第一安全域高于或等于所述第二安全域,则不禁止 所述第一存储器页面的指令引用或访问所述第二存储器页面。
14.如权利要求13所述的处理器,其中存储在所述转换后备缓 存中的安全域是从所述物理设备的虚拟机管理器的页表中检索的,并 且所述虚拟机管理器的页表是扩展页表,其包括:
扩展页表指针结构,每个扩展页表指针结构被配置为指示是否已 经为相关的存储器页面设置了安全域以及指示与所述安全域相关的 特性,以及
扩展页表项结构,其被配置为存储分配给相关的存储器页面的安 全域。
15.如权利要求13所述的处理器,其中所述比较逻辑进一步用 于:如果所述第一安全域与所述第二安全域不同,则引起页面错误, 以禁止所述指令引用或访问所述第二存储器页面。
16.如权利要求13所述的处理器,其中所述比较逻辑进一步用 于:确定所述第二存储器页面是否是隐藏的存储器页面,并且如果所 述第二存储器页面是隐藏的存储器页面则也禁止所述第一存储器页 面的指令引用或访问所述第二存储器页面。
17.如权利要求16所述的处理器,其中所述比较逻辑进一步用 于:确定所述引用或访问是否是读或写引用或访问,并且,如果所述 第二存储器页面不是隐藏的存储器页面,则如果所述第一安全域与所 述第二安全域不同并且所述引用或访问是读引用或访问则不禁止所 述指令引用或访问所述第二存储器页面,如果所述第一安全域与所述 第二安全域不同并且所述引用或访问是写引用或访问则禁止所述指 令引用或访问所述第二存储器页面。
18.如权利要求13所述的处理器,其中所述比较逻辑进一步用 于:如果所述引用或访问是到所述第二存储器页面的允许入口点的跳 转或调用之一,则不管所述第一安全域与所述第二安全域是否不同, 都不禁止所述指令引用或访问所述第二存储器页面。
19.如权利要求13所述的处理器,其中所述第二存储器页面存 储关键的操作系统组件,并且所述第二存储器页面的第二安全域是管 理安全域。
20.如权利要求13所述的处理器,其中具有所述处理器的物理 设备的虚拟机管理器包括安全域分配服务以用于分配至少所述第一 和第二安全域,其中所述虚拟机管理器由所述处理器操作。
21.如权利要求13所述的处理器,其中具有所述处理器的物理 设备的虚拟机管理器包括完整性管理模块以用于验证所述第一存储 器页面的完整性,其中所述虚拟机管理器由所述处理器操作。
22.一种制造物品,包括:
存储介质;以及
多个存储在所述存储介质上的编程指令,用于例示物理设备的虚 拟机管理器的安全域分配服务,以
为所述物理设备的第一和第二存储器页面分配至少第一和 第二安全域,以及
将所分配的至少第一和第二安全域存储在所述虚拟机管理 器的页表中,便于所述物理设备的处理器的比较逻辑检索所述至 少第一和第二安全域,所述比较逻辑比较所述第一存储器页面的 第一安全域和所述第二存储器页面的第二安全域,其中所述第一 存储器页面的指令正试图引用或访问所述第二存储器页面,并且 如果第一安全等级与第二安全等级相同则所述比较逻辑不禁止 来自所述第一存储器页面的指令引用或访问所述第二存储器页 面。
23.如权利要求22所述的物品,其中所述虚拟机管理器的页表 是扩展页表,包括:
扩展页表指针结构,每个扩展页表指针结构指示是否已经为相关 的存储器页面设置了安全域以及指示与所述安全域相关的特性,以及
扩展页表项结构,用于存储分配给相关的存储器页面的安全域。
24.如权利要求23所述的物品,其中所述指令进一步用于例示 所述安全域分配服务以便为所述至少第一和第二存储器页面中的至 少一个,确定与所确定的安全域相关的一个或多个特性,并将所述一 个或多个特性存储在所述扩展页表指针结构中。
25.一种系统,包括:
大容量存储装置,其中存储有至少一个可实例化为关键的操作系 统组件代理的关键的操作系统组件程序;以及
处理器,其耦合到所述大容量存储装置,所述处理器包括
转换后备缓冲器,其包括第一和第二寄存器以存储所述系统 的第一和第二存储器页面的第一和第二安全域,所述第二存储器 页面具有所述关键的操作系统组件代理;以及
比较逻辑,其耦合到所述转换后备缓冲器,并且用于
比较所述第一存储器页面的第一安全域和所述第二存 储器页面的第二安全域,其中所述安全域已经从所述转换后 备缓冲器中检索出,以及
如果所述第一安全域和所述第二安全域相同,则不禁止 来自所述第一存储器页面的指令访问所述第二存储器页面。
26.如权利要求25所述的系统,其中存储在所述转换后备缓冲 器中的安全域是从所述系统的虚拟机管理器的页表中检索的,并且所 述虚拟机管理器的页表是扩展页表,其包括:
扩展页表指针结构,每一个扩展页表指针结构被配置为指示是否 已经为相关的存储器页面设置了安全域以及指示与所述安全域相关 的特性,以及
扩展页表项结构,其被配置为存储分配给相关的存储器页面的安 全域。
27.如权利要求25所述的系统,其中所述比较逻辑进一步用于: 如果所述第一安全域与所述第二安全域不同,则引发页面错误以禁止 所述指令引用或访问所述第二存储器页面。
28.如权利要求25所述的系统,其中所述比较逻辑进一步用于: 如果所述引用或访问是到所述第二存储器页面的允许入口点的跳转 或调用之一,则不管所述第一安全域是否与所述第二安全域不同,都 不禁止所述指令引用或访问所述第二存储器页面。
29.如权利要求25所述的系统,其中具有所述关键的操作系统 组件代理的第二存储器页面的第二安全域是管理安全域。

说明书全文

技术领域

实施例涉及数据处理和信息保障的领域,特别是,涉及,如果两 个存储器页面不属于同一保护域,则禁止第一存储器页面的指令访问 第二存储器页面,以保护在虚拟技术(VT)环境中操作的软件代理免受 篡改。

背景技术

基于存储器的攻击对于信息处理系统的安全来说是非常严重的 威胁。其中一些攻击包含在计算机系统的存储器中存储恶意代码,例 如病毒或蠕虫,然后当运行合法程序时利用程序缺陷和/或缓冲器溢 出而将控制转移到恶意代码。一种防止这种类型的攻击的手段是,在 页表项中包含一个“禁止执行”位,其可以用来指定存储了数据的页 面是不可执行的,从而恶意代码就不会作为数据存储,继而也就不会 在同一物理、线性或逻辑存储器空间内执行。
另外的手段包括使用存储器页表存储与代理相关的“颜色”属性 (反映它们的安全和/或特权域),从而以足够精细的粒度逻辑地划分存 储器来防止一种颜色的代理访问与另一种颜色相关联的存储器。然 而,由于页表中可用的位数有限,所以这种方法局限于只能分配相对 较少的“颜色”(因此只能划分相对较少的安全域)。进一步地,处理 器技术的进步可能消除这些位作为“颜色”指示符的可用性。
附图说明
发明的实施例将通过附图中所示的示例性实施例来描述,但并 不局限于此,在附图中相似的附图标记表示类似的元件,其中:
图1说明本发明各种实施例的概观;
图2说明了所选择的本发明各种实施例的操作方法的流程图
图3说明了用来以逻辑有序方式存储存储器页面安全域的示例 性扩展页表结构;以及
图4说明一个适用于实施本发明各种实施例的实例计算机系统。

具体实施方式

本发明的说明性实施例包括但不局限于,用于利用存储在物理设 备的处理器的一个或多个寄存器中的安全域,将该物理设备的第一存 储器页面的第一安全域和该物理设备的第二存储器页面的第二安全 域进行比较的方法和装置。基于所述比较,如果第一安全域的特权域 与第二安全域的不同,则处理器禁止来自第一存储器页面的指令访问 第二存储器页面。结果,可以在VT环境中更为有效和有地保护软 件代理,尤其是关键性的软件代理。
将使用本领域技术人员向其他本领域技术人员传达他们的工作 内容时通常所使用的术语来描述说明性实施例的各个方面。然而,对 于那些本领域的技术人员来说显然可以仅利用所描述的方面中的一 些来实施替换性实施例。为了解释说明的目的,阐述了特定的数字、 材料和配置以提供对说明性实施例的全面理解。然而,对于本领域技 术人员来说不采用这些特定细节就可以实施替换实施例是显而易见 的。在其他实例中,已知的特性将被忽略或简化,以避免对说明性实 施例造成模糊。
进一步地,以最有助于理解示例性实施例的方式依次将各种操作 描述为多个分离的操作;然而,描述的顺序不应当被解释为暗示这些 操作必须依赖于顺序。特别是,这些操作不需按照表述的顺序来实现。
短语“在一个实施例中”被重复地使用。这个短语通常不表示相 同的实施例;然而,也可能是相同的实施例。术语“包含”、“具有”、 “包括”是同义词,除非上下文另有规定。短语“A/B”表示“A或 B”。短语“A和/或B”表示“(A),(B),或(A和B)”。短语“A,B 和C中至少一个”表示“(A),(B),(C),(A和B),(A和C),(B和 C)或(A,B和C)”。短语“(A)B”表示“(B)或(AB)”,即,A是可选 的。
图1说明了本发明的各种实施例的概观。如所说明的,处理器 116的比较逻辑120可以将与(例如,分配给代理114的)存储器页面 相关的安全域和(代理114的指令试图引用或访问的)第二存储器页面 的安全域进行比较。基于比较的结果,比较逻辑120可能引起页面错 误并禁止所述引用或访问,或者可能不禁止所述引用或访问。与两个 存储器页面相关的安全域可以存储在计算设备102的处理器116的转 换后备缓冲器(translation lookaside buffer,TLB)118中,并且可被复 制到处理器116的之前的安全域(PSD)和当前安全域(CSD)寄存器122 中(当两个存储器页面在试图的存储器页面引用或访问中是之前的存 储器页面和当前存储器页面时)。安全域可能已被(例如虚拟机管理器 104的)安全域分配服务110分配并且存储在页表108中,用于由虚拟 机管理器(VMM)104使用以将虚拟机106的客户机物理地址转换成处 理器116的主机物理地址(在被拷贝到TLB 118中之前)。
在各种实施例中,虚拟机(VM)106和虚拟机管理器104可由计算 设备102的相同或不同的处理器核或处理器,例如处理器116,来执 行,并且可被存储在计算设备102的存储器,例如存储器124中。虚 拟机106可以包括程序和模,例如代理114(其是程序或者程序的模 块),在一个实施例中,包括客户机页表(未示出)。除早先介绍的页表 108和安全域分配服务110之外,在一些实施例中,虚拟机管理器104 还可以包括完整性测量模块112,当代理114加载到存储器中时完整 性测量模块112能够验证代理114的完整性。
在各种实施例中,除本发明在此包含的实施例的教导之外,计算 设备102可以是任何本技术领域已知的单或多处理器或处理器核中 央处理单元(CPU)计算系统。计算设备102可以是个人计算机(PC)、 工作站、服务器、路由器、大型机、刀片服务器或高密度服务器中的 模块化计算机、个人数字助理(PDA)、娱乐中心、机顶盒或移动设备。 计算设备102可能能够使用虚拟化技术操作多个虚拟机(诸如虚拟机 106)以及一个虚拟机管理器104的多个操作系统。如果计算设备102 是多处理器或多处理器核系统(图1中没有示出),则计算设备102的 每个虚拟机/虚拟机管理器可以由专用于该虚拟机/虚拟机管理器的处 理器或处理器核来操作。在单处理器或单处理器核计算设备102(如图 1所示)中,所述多个虚拟机和虚拟机管理器104可由所述单处理器或 单处理器核(如处理器116)来操作。一个示例性的单/多处理器或处理 器核计算设备102如图4所示,并且随后将更加详细地描述。在下文 中,包括在权利要求中,除非上下文中另有明确指示,术语“处理器” 和“处理器核”的使用是可以互换的,每个术语都包含另一个的含义。
在一些实施例中,VMM 104可以包含计算设备102的一个服务 分区,用于管理设备102的实际的硬件资源,包括存储器页面,例如 代理114的存储器页面以及指令试图访问的存储器页面,并且用于协 调虚拟机计算设备102中的资源的使用。
除本发明的实施例的教导之外,虚拟机106还可以是任何类型的 虚拟机。虚拟机106可以是自主式操作环境,其表现如同是一个独立 的计算机系统。对于通过联网结构耦合到计算设备102的外部系统来 说,虚拟机106可能看起来是一个独立的计算设备。虚拟机106还可 以具有能够管理多个代理(诸如代理114)的操作系统,还可能具有一 个受保护的存储器空间,该存储器空间操作性地专属于虚拟机106。 在一个实施例中,虚拟机106可以包括包含有线性地址和客户机物理 地址之间的映射的客户机页表(未示出)。如上所述,虚拟机106还包 含代理114,并且由处理器116操作。适合的虚拟机和虚拟化技术包 括但不限于那些可从华盛顿州雷德蒙的微软公司、加利福尼亚州帕洛 阿尔托的VMware公司以及英国剑桥的XenSource得到的技术。
仍然如所说明的,VMM 104可以包括页表108的结构。在一些 实施例中,如随后图3所示,可以以分级的方式组织页表108,以用 于将虚拟机106的客户机物理地址映射到计算设备102的主机物理地 址,以及用于计算设备102的存储器页面存储安全域。例如,页表 108可以包括基本的和扩展的页表,用于提供从虚拟机106的线性虚 拟地址到虚拟机106的客户机物理地址的映射、从客户机物理地址到 计算设备102的主机物理地址的映射,以及用于为计算设备102的存 储器页面存储安全域。页表108可由VMM 104响应于加载虚拟机106 组件(诸如加载代理114)而更新,来为那些组件添加用于将它们的客 户机物理地址映射以指向主机物理存储器页面的项。进一步地,扩展 页表108可被称作扩展页表指针(EPTP)的处理器寄存器引用。EPTP 可以包含某些位使其能够标记安全域配置选项。扩展页表的各种级别 可能包含能够存储所有或部分安全域的扩展页表项(EPTE)。由于 EPTE可以形成多级分页结构,所以来自多个级别的保护域的位可被 结合以唯一地标识保护域。示例性EPTP和EPTE结构将随后参考图 3做更为详尽的描述。
在一些实施例中,如之前暗示的,VMM 104可以包括安全域分 配服务110(下文中称为分配服务),其能够为代理确定安全域,将所 确定的域和存储器页面或代理页面相关联,以及将所确定的域存储在 指向一个或多个存储器页面的EPTE结构中。分配服务110可以向每 个代理分配一个唯一的安全域,还可以将同一安全域分配给同一代理 的相关联的模块或分配给相关联的代理。同样,分配服务110还可以 向虚拟机106的基础组件以及向遗留应用分配特殊的安全域。基础组 件,例如调度程序、加载器以及存储器管理器可以被分配一个管理安 全域,以允许它们的指令访问具有不同安全域的存储器页面。在这种 意义上,安全域是部分有序的,一些安全域会比其他安全域更特权化 (虽然并不始终如此)。遗留应用可能不会被分配安全域(或给予一个安 全域“0”),并且从而,可能不会访问具有安全域的存储器页面。在 各种实施例中,分配服务110还可以确定与所确定的安全域相关联的 特征,例如该域被分配到的存储器页面是否是隐藏的存储器页面。在 一个实施例中,如以下参考图3所述,部分安全域可以以嵌套方式存 储在多个EPTE中。在这样的实施例中,分配服务110可以从逻辑组 中分配代理,例如网络驱动器、对于每个代理来说相同的安全域的一 部分以及对于每个代理模块来说唯一的一部分,从而允许分配的安全 域的逻辑组织结构。在替换的实施例中,分配服务110可能是虚拟机 (诸如虚拟机106)的组件,而不是VMM 104的组件。
在各种实施例中,如之前暗示的,VMM 104还可以包括完整性 测量模块(IMM)112,当代理114装载到虚拟机106的存储器中时完 整性测量模块112可以验证代理114的完整性。IMM 112可以使用任 何本领域已知的方法来证实代理114的完整性,例如存储器页面的密 码哈希。通过验证代理114的完整性,IMM 112可以提供额外的安全 层,以即使在分配安全域之前也能够检测到代理114的恶化。在一些 实施例中,计算设备102可以包括附加的虚拟机(未示出),其可以包 括IMM 112。在这些实施例中,VMM 104的完整性服务(未示出)可 以将代理114的存储器页面的拷贝映射到附加的虚拟机,以由IMM 112进行评估,这可以为该代理返回验证结果。
在各种实施例中,如之前暗示的,虚拟机106可以包含一个或多 个应用程序,例如代理114。代理114可以是任何类型的代理,包括 具有需要访问其他代理的存储器页面的指令的程序或程序的模块。这 样的访问可能是读访问或写访问,或者是跳转或调用以转移到存储在 被试图访问的存储器页面中的代理。代理114可能是虚拟机106的合 法的(或被感染的)代理,或者可能是恶意程序,例如蠕虫或病毒。在 一些实施例中,代理114可能是许多可信的虚拟机106的基本组件中 的一个,例如调度程序、加载器、存储器管理器或安全域分配服务 110(如果不是由VMM 104实现的话)。如上所述,这些组件可以被分 配一个特殊的管理安全域,以允许组件114的指令访问具有不同安全 域的存储器页面。在其他实施例中,代理114可能是一个没有被分配 安全域的遗留应用。如上所述,代理114可被存储在本身与一个安全 域相关联的虚拟机106的存储器页面中。
如所说明的那样,除本发明的实施例的教导之外,处理器116可 以是多种不同类型的处理器中的任何一种,例如Intel公司的 Pentium处理器系列、Itanium处理器系列或其他处理器系列中的处 理器,或任何其他通用的或来自另一家公司的其他处理器中的处理 器。处理器116可以执行虚拟机106及其代理、虚拟机管理器104及 其代理,并且处理器116可以包括一个或多个TLB 118,其中TLB 118 被修改以存储存储器页面的安全域,并且具有相关的比较逻辑120, 以及CSD和PSD寄存器122。可以增强TLB 118以拷贝由VMM 104 的安全域分配服务110为不同的存储器页面分配并存储在页表108中 的安全域。在处理试图访问存储器页面的代理114的指令时,虚拟机 106的存储器管理逻辑、VMM 104和处理器116可将指令所引用的 线性地址映射到从虚拟机106的客户机页表(未示出)获得的客户机物 理地址,该地址随后将被该逻辑映射到该指令的线性地址所引用的实 际存储器页面的主机物理地址。从客户机物理地址到主机物理地址的 映射可以从VMM 104的页表108获得,页表108可以是扩展页表。 TLB 118可以被广泛应用于这种高速缓存各种级别的地址转换的处 理中。处理器116的逻辑可以随后将当前存储于CSD寄存器122中 的存储器页面的安全域拷贝到PSD寄存器122中,并且将正访问的 存储器页面的安全域拷贝到CSD寄存器122中。逻辑120进一步比 较CSD和PSD寄存器122中的当前和之前的安全域以确定是否禁止 该引用/访问。
在各种实施例中,TLB 118可以是任何本领域已知的转换后备缓 冲器,不同之处在于做了修改以存储安全域。此外,TLB 118可以高 速缓存从指令所引用的线性存储器地址到客户机物理地址的映射,以 及从客户机物理地址到指向指令试图引用访问的存储器页面的主机 物理地址的映射。安全域和TLB 118的映射可由处理器116的逻辑来 更新。
如之前所暗示的,处理器116可以包括PSD和CSD寄存器122 以及比较逻辑120,用于比较存储于PSD和CSD寄存器122中的安 全域。比较可以根据任何已知的手段来实现。例如,如果安全域与数 字值相关联,则比较逻辑120可以确定该值是否相同,是否一个或两 个值都是零(表示没有安全域,如前面所讨论的),或者是否一个或两 个值都是默认值,例如是表示管理安全域的最大值。比较逻辑120随 后可以使用通过比较得到的结果来禁止指令引用或访问存储器页面。 在一个实施例中,当包含有指令的存储器页面的安全域与指令试图引 用或访问的存储器页面的安全域相同时,比较逻辑120将不禁止该引 用或访问,而当所述安全域不同时将禁止该引用或访问。比较逻辑 120将通过触发页面错误异常来禁止该引用或访问。
此外,比较逻辑120可以基于另外的标准来确定是否禁止该引用 或访问。例如,一个安全域(例如,“0”)可以表示没有安全域,从而 标记为没有安全域的存储器页面可以被任何其他页面访问。如前所 述,页表108的EPTE还可以包含一个字段或位,其定义了该页面是 否是隐藏的。可以将该位设置为0以允许任何其他页面读取该被引用 的页面,而不管安全域比较的结果如何,或者可以将该位设置为1来 允许比较逻辑120基于安全域比较而禁止读引用或访问。在一些实施 例中,隐藏的位可以与安全域一起由处理器116的逻辑来检索,并被 存储在TLB 118的页表中。不管隐藏位如何设置,写引用或访问都将 被阻止。
同样地,比较逻辑120还可以根据指令控制流来确定是否禁止该 引用或访问。例如,可以使用指令来标记程序的允许入口点。在根据 Pentium处理器系列架构的一个实施例中,为了这个目的,可以加入 新的指令(例如,“定向地址向量(Directed Address Vector)”或“DAV” 指令)。如果从一个安全域的存储器页面到另一个安全域的存储器页 面中的DAV指令执行跳转或其他控制流指令,则所述引用或访问可 能不会被禁止。然而,如果跳转是到另一个安全域的页面,而不是到 DAV指令的,则该引用或访问可能被禁止。因此,可以使用DAV指 令以允许仅在一个可以提供规定的安全接口的预期点处,才可进入程 序。可以防止从另一个安全域的程序跳转到程序的随机或非预期部 分。最后,DAV指令可以仅在可执行的(例如,不是根据Pentium4 和其他处理器系列架构的使用了XD位的eXecute Disabled)页面中执 行,确保具有表现为DAV指令的伪比特序列的数据页面不会被处理 器116执行。
此外,比较逻辑120还可以使得页面错误报告能够包含页面错误 是否是由安全域不匹配或违反造成的。例如,在触发页面错误时,比 较逻辑120可以提供指示,从而将页面错误错误码中的一个位(例如, 根据Pentium处理器系列架构加入堆栈的页面错误错误码中的位5) 指定为安全域违反位,并且该位可被设置为1以指示页面错误由安全 域不匹配触发。这个位将在其他标志的上下文中解释。例如,如果安 全域违反是由取指令引起的,则错误码中的取指令位将被设置为1。 如果安全域违反是由读或写引起的,则读/写位将被设置为:对于读 为0或对于写为1。另外,引起错误的代理114的存储器页面的线性 地址将被保存在例如根据Pentiuim处理器系列架构的处理器的CR2 控制寄存器中。
如所说明的,计算环境102的存储器124可以是除VMM 104、 VM 106和它们的组件之外的本领域任何已知类型的能够存储由处理 器116执行的指令的存储器设备。在一个实施例中,存储器124可以 在至少包括VMM 104和VM 106的多个虚拟机中被分区。
总之,可以添加安全域分配服务110以向存储器页面分配安全 域。可以增强页表108和TLB 118以存储分配的安全域,并且可将处 理器116进行修改以包含PSD和CSD寄存器122以存储当前和之前 的存储器页面的安全域,并且包含比较逻辑120以比较之前的和当前 存储器页面的安全域以确定是否禁止引用/访问。
图2说明了本发明的各种实施例的方法的所选操作的流程图。如 图所示,在各种实施例中,每当在存储器中产生那些代理中的一个时, 计算设备的完整性测量模块(IMM)可以验证计算设备代理的完整性 (方框202)。IMM可以驻留在计算设备的虚拟机管理器(VMM)中,或 在不包含被验证的代理的计算设备的虚拟机(VM)中。IMM可以接收 包含该代理的存储器页面的拷贝,并且可以参考图1以如前所述的方 式来验证该代理。通过验证该代理,VMM的安全域分配服务可以向 计算设备的VM的代理分配安全域(方框204)。分配服务可以通过将 安全域存储在VMM的扩展页表的对应的扩展页表项(EPTE)结构中 来将所分配的安全域和分配给代理的所有存储器页面进行关联,并且 可以在与EPTE相关联的扩展页表指针(EPTP)结构中设置安全域配置 值,例如如前所述的隐藏位,而所述安全域配置值又被复制并存储到 TLB中(方框206)。
如之前进一步的描述,当与计算设备的VM相关联的处理器服务 于驻留于计算设备的第一存储器页面的代理的指令,该指令试图引用 或访问第二存储器页面时,处理器的逻辑可以更新存储于PSD和CSD 寄存器中的之前和当前存储器页面的安全域(方框208)。
一旦第二存储器页面的安全域被检索并存储,处理器的比较逻辑 就可以比较存储在PSD和CSD中的安全域(方框210)。至少部分地 基于比较结果,比较逻辑将不禁止指令引用或访问第二存储器页面 (方框220),或禁止访问(方框222)。除比较安全域之外,比较逻辑还 适用于执行多个其他测试。例如,比较逻辑可以确定第一存储器页面 的安全域是否与第二存储器页面的安全域不同(方框212)。如果安全 域相同,则比较逻辑可以不禁止访问(方框220)。反之如果安全级别 不同,则比较逻辑将进一步确定是否为第二存储器页面设置了前述的 隐藏位(方框214)。如果设置了隐藏位,则比较逻辑将禁止访问(方框 222)。然而,如果没有设置隐藏位,则比较逻辑可以进一步确定试图 进行的访问是否是读引用或读访问(方框216)。如果该引用或访问是 读引用或访问,则比较逻辑可以不禁止访问(方框220)。反之,如果 引用或访问不是读引用或访问,则比较逻辑可以确定该引用或访问是 否是到第二存储器页面的经核准的入口点的控制流转移,例如跳转或 调用指令(前面讨论的“DAV指令”)(方框218)。如果指令是到允许 入口点的跳转或调用,则比较逻辑可以不禁止该指令(方框220)。如 果该指令不是跳转或调用,或者是到未经核准的入口点的存储器的跳 转或调用,则比较逻辑将禁止该指令引用或访问第二存储器页面(方 框222)。
如果指令已被禁止引用或访问第二存储器页面,则比较逻辑将触 发页面错误(方框224)。在一些实施例中,页面错误可能包含对引用 或访问的类型的描述符,和试图进行被禁止的引用或访问的第一存储 器页面的地址。
图3说明了用于以逻辑有序方式存储存储器页面安全域的示例 性扩展页表结构。所示的最左边的方框是示例性扩展页表指针 (EPTP),其能够存储安全域优选项。EPTP可以例如是64位结构,包 括:配置/允许位、能够容纳512个扩展页表项的4KB存储器页面的 物理地址(48位字段)以及多个保留位,其中所述扩展页表项例如是中 间和右边的一系列方框中所示的EPTE方框。保留位用于指示被指令 访问的存储器页面是否具有分配的安全域、该页面是否是隐藏的、该 页面是否是转移页(DAV),等等。中间和右边所示的EPTE方框可以 是由EPTP方框指向的存储器页面的EPTE。EPTE例如可以包括提供 页面的地址的40位的地址字段,所述页面帧是指令试图访问的物 理页面帧,或者提供包含可以进一步用于地址转换的另外512个 EPTE的另一存储器页面的地址。图中示出的指向右边的EPTE方框 的中间的EPTE方框构成这种指向的EPTE。同样,可以使用EPTE 的10个位来存储安全域。
在一些实施例中,CPU至少可以解析EPTE的两个域,例如那些 中间和右边系列的方框,以对试图访问的存储器页面的客户机物理地 址进行转换。因此,因为两个EPTE被关联到任意给定的页面帧,所 以可以使用20个位来向存储器页面分配安全域。同样,因为第一个 EPTE的10个位可以被多达512个存储器页面帧共享,所以安全域分 配服务可以利用这一点从而以逻辑模式划分安全域空间(例如,所有 网络驱动器共享它们安全域的相同的前10个位)。
图4说明了适用于实现本发明的各种实施例的实例计算机系统。 如图所示,计算系统400包含多个处理器或处理器核402(如处理器 116),以及系统存储器404(例如存储器124)。为了这个应用的目的, 包括在权利要求中,术语“处理器”和“处理器核”可以看作是同义 的,除非上下文中另有明确要求。另外,计算系统400包括大容量存 储装置406(例如软盘、硬驱动器、只读压缩盘存储器(CDROM)等等)、 输入/输出设备408(例如键盘光标控制等等)以及通信接口410(例如 网络接口卡、调制解调器等等)。这些元件经由系统总线412相互耦 合,系统总线412代表一个或多个总线。在多总线的情况下,它们通 过一个或多个总线桥(未示出)桥接。在各种实施例中,大容量存储装 置406可以被分成多个分区以供虚拟机使用,其中每个虚拟机具有独 占使用的分配的分区。
这些元件中的每一个都执行其在本技术领域所公知的传统功能。 特别是,利用早先描述的改进的TLB、PSD和CSD寄存器以及安全 域比较逻辑对处理器402进行改进。此外,系统存储器404和大容量 存储装置406可用于存储实现安全域分配服务、IMM等编程指令的 运行中的拷贝和永久拷贝,所述指令在这里统一表示为422。指令422 可以由处理器402或高级语言(例如C语言)所支持的汇编指令进行编 译。
编程指令的永久拷贝可以在工厂中装入永久存储装置406,或者 在该领域,例如可以通过诸如压缩盘(CD)的分发介质(未示出),或通 过通信接口410(从分发服务器(未示出))装入永久存储装置406。
这些元件402-412的构成是已知的,因此相应地不再进行进一 步描述。
虽然在这里对具体实施例进行了说明和描述,但是对于那些本领 域的普通技术人员来说,可以理解,各种改变和/或等价的实现方式 可以替换所示出和描述的具体实施例,而不背离本发明的实施例的范 围。本申请意在覆盖这里所讨论的实施例的任何修正或改变。因此, 明确地说,本发明的实施例仅由权利要求及其等价物来限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈