CN100587700C - 在虚拟技术环境中操作的软件代理的篡改保护方法和装置 - Google Patents

在虚拟技术环境中操作的软件代理的篡改保护方法和装置 Download PDF

Info

Publication number
CN100587700C
CN100587700C CN200710300374A CN200710300374A CN100587700C CN 100587700 C CN100587700 C CN 100587700C CN 200710300374 A CN200710300374 A CN 200710300374A CN 200710300374 A CN200710300374 A CN 200710300374A CN 100587700 C CN100587700 C CN 100587700C
Authority
CN
China
Prior art keywords
memory pages
locked memory
security domain
page table
visit
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.)
Expired - Fee Related
Application number
CN200710300374A
Other languages
English (en)
Other versions
CN101201885A (zh
Inventor
D·德拉姆
H·科斯拉维
R·萨希塔
U·萨瓦冈卡尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101201885A publication Critical patent/CN101201885A/zh
Application granted granted Critical
Publication of CN100587700C publication Critical patent/CN100587700C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

这里描述了用于比较物理设备的第一存储器页面的第一安全域和该物理设备的第二存储器页面的第二安全域的方法、装置、物品以及系统,所述安全域存储在该物理设备的处理器的一个或多个寄存器中。基于该比较,如果第一安全域与第二安全域不同,则处理器禁止来自第一存储器页面的指令访问第二存储器页面。结果,可以在VT环境中更为有效和有力地保护软件代理,尤其是关键性的软件代理。

Description

在虚拟技术环境中操作的软件代理的篡改保护方法和装置
技术领域
实施例涉及数据处理和信息保障的领域,特别是,涉及,如果两个存储器页面不属于同一保护域,则禁止第一存储器页面的指令访问第二存储器页面,以保护在虚拟技术(VT)环境中操作的软件代理免受篡改。
背景技术
基于存储器的攻击对于信息处理系统的安全来说是非常严重的威胁。其中一些攻击包含在计算机系统的存储器中存储恶意代码,例如病毒或蠕虫,然后当运行合法程序时利用程序缺陷和/或缓冲器溢出而将控制转移到恶意代码。一种防止这种类型的攻击的手段是,在页表项中包含一个“禁止执行”位,其可以用来指定存储了数据的页面是不可执行的,从而恶意代码就不会作为数据存储,继而也就不会在同一物理、线性或逻辑存储器空间内执行。
另外的手段包括使用存储器页表存储与代理相关的“颜色”属性(反映它们的安全和/或特权域),从而以足够精细的粒度逻辑地划分存储器来防止一种颜色的代理访问与另一种颜色相关联的存储器。然而,由于页表中可用的位数有限,所以这种方法局限于只能分配相对较少的“颜色”(因此只能划分相对较少的安全域)。进一步地,处理器技术的进步可能消除这些位作为“颜色”指示符的可用性。
发明内容
本发明的方法和装置提供了对虚拟技术(VT)环境下存储器页面之间的访问进行的管理。需要有技术来在能够有效地防止基于存储器的攻击的操作级别上分配、定义和/或实施安全域。当分配给驻留在虚拟机中的软件代理的第一存储器页面的指令被允许引用或访问位于分配给该第一存储器页面的安全域之外的第二存储器页面时,工作在虚拟技术环境下的软件代理(例如关键的操作系统组件代理)当前并不能充分地进行保护以不受篡改。
根据本发明的一个实施例,第一存储器页面的第一安全域和第二存储器页面的第二安全域被存储在计算设备的处理器的转换后备缓冲器的寄存器中。当第一存储器页面的指令试图引用或访问拿第二存储器页面时,第一和第二存储器页面的两个安全域被比较或分析。至少部分地基于该分析,可以允许或不允许来自第一存储器页面的用于引用或访问第二存储器页面的指令。
有利地,页表可以是具有扩展页表指针结构(EPTP)的扩展页表,所述EPTP指向能够存储全部或部分安全域的扩展页表项(EPTE)。由于扩展页表项可以形成一个多级分页结构,所以来自多个级别的保护域位能够被结合来唯一地表示保护域。在一个实施例中,扩展页表指针(EPTP)被实现为处理器寄存器。扩展页表指针(EPTP)可以包含指示是否已经为相关联的存储器页面设置了安全域的一个或多个位,和/或它们还可以包含特定位,使得能够标记出安全域配置选项。
在各种实施例中,可以由虚拟机管理器(VMM)或者是该虚拟机管理器的安全域分配服务来将第一和第二安全域定义或分配给计算设备的第一和第二存储器页面。
有利地,第一和第二安全域可以被缓存在转换后备缓冲器中,然后当试图进行引用或访问时,被检索并存储在该转换后备缓冲器的寄存器中。
因此,相对于现有技术,本发明的方法和装置允许在能够有效地防止虚拟技术环境下的基于存储器的攻击的操作级别上定义、分配和/或实现安全域。
附图说明
本发明的实施例将通过附图中所示的示例性实施例来描述,但并不局限于此,在附图中相似的附图标记表示类似的元件,其中:
图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可以包括附加的虚拟机(未示出),其可以包括IMM112。在这些实施例中,VMM 104的完整性服务(未示出)可以将代理114的存储器页面的拷贝映射到附加的虚拟机,以由IMM112进行评估,这可以为该代理返回验证结果。
在各种实施例中,如之前暗示的,虚拟机106可以包含一个或多个应用程序,例如代理114。代理114可以是任何类型的代理,包括具有需要访问其他代理的存储器页面的指令的程序或程序的模块。这样的访问可能是读访问或写访问,或者是跳转或调用以转移到存储在被试图访问的存储器页面中的代理。代理114可能是虚拟机106的合法的(或被感染的)代理,或者可能是恶意程序,例如蠕虫或病毒。在一些实施例中,代理114可能是许多可信的虚拟机106的基本组件中的一个,例如调度程序、加载器、存储器管理器或安全域分配服务110(如果不是由VMM 104实现的话)。如上所述,这些组件可以被分配一个特殊的管理安全域,以允许组件114的指令访问具有不同安全域的存储器页面。在其他实施例中,代理114可能是一个没有被分配安全域的遗留应用。如上所述,代理114可被存储在本身与一个安全域相关联的虚拟机106的存储器页面中。
如所说明的那样,除本发明的实施例的教导之外,处理器116可以是多种不同类型的处理器中的任何一种,例如Intel公司的
Figure C20071030037400131
处理器系列、
Figure C20071030037400132
处理器系列或其他处理器系列中的处理器,或任何其他通用的或来自另一家公司的其他处理器中的处理器。处理器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还可以根据指令控制流来确定是否禁止该引用或访问。例如,可以使用指令来标记程序的允许入口点。在根据
Figure C20071030037400151
处理器系列架构的一个实施例中,为了这个目的,可以加入新的指令(例如,“定向地址向量(DirectedAddress Vector)”或“DAV”指令)。如果从一个安全域的存储器页面到另一个安全域的存储器页面中的DAV指令执行跳转或其他控制流指令,则所述引用或访问可能不会被禁止。然而,如果跳转是到另一个安全域的页面,而不是到DAV指令的,则该引用或访问可能被禁止。因此,可以使用DAV指令以允许仅在一个可以提供规定的安全接口的预期点处,才可进入程序。可以防止从另一个安全域的程序跳转到程序的随机或非预期部分。最后,DAV指令可以仅在可执行的(例如,不是根据4和其他处理器系列架构的使用了XD位的eXecute Disabled)页面中执行,确保具有表现为DAV指令的伪比特序列的数据页面不会被处理器116执行。
此外,比较逻辑120还可以使得页面错误报告能够包含页面错误是否是由安全域不匹配或违反造成的。例如,在触发页面错误时,比较逻辑120可以提供指示,从而将页面错误错误码中的一个位(例如,根据
Figure C20071030037400153
处理器系列架构加入堆栈的页面错误错误码中的位5)指定为安全域违反位,并且该位可被设置为1以指示页面错误由安全域不匹配触发。这个位将在其他标志的上下文中解释。例如,如果安全域违反是由取指令引起的,则错误码中的取指令位将被设置为1。如果安全域违反是由读或写引起的,则读/写位将被设置为:对于读为0或对于写为1。另外,引起错误的代理114的存储器页面的线性地址将被保存在例如根据
Figure C20071030037400161
处理器系列架构的处理器的CR2控制寄存器中。
如所说明的,计算环境102的存储器124可以是除VMM104、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的构成是已知的,因此相应地不再进行进一步描述。
虽然在这里对具体实施例进行了说明和描述,但是对于那些本领域的普通技术人员来说,可以理解,各种改变和/或等价的实现方式可以替换所示出和描述的具体实施例,而不背离本发明的实施例的范围。本申请意在覆盖这里所讨论的实施例的任何修正或改变。因此,明确地说,本发明的实施例仅由权利要求及其等价物来限制。

Claims (19)

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、一种用于管理虚拟技术环境下存储器页面之间的访问的计算机系统,包括:
有形的计算机可存取存储装置,其中存储有至少一个可实例化为关键的操作系统组件代理的关键的操作系统组件程序;以及
处理器,其耦合到所述有形的计算机可存取存储存储装置,所述处理器包括
转换后备缓冲器,其包括第一和第二寄存器以存储所述系统的第一和第二个存储器页面的第一和第二安全域,所述第二个存储器页面具有所述关键的操作系统组件代理;以及
比较逻辑电路,其耦合到所述转换后备缓冲器,并且用于
比较所述第一个存储器页面的第一安全域和所述第二个存储器页面的第二安全域,其中所述安全域已经被从页表中检索出并被缓存在所述转换后备缓冲器中,该页表包括扩展页表指针,所述扩展页表指针指向存储有分配给所述第一和第二个存储器页面的安全域的扩展页表项结构,以及
如果所述第一安全域和所述第二安全域相同,则不禁止来自所述第一个存储器页面的指令访问所述第二个存储器页面。
16、如权利要求15所述的系统,其中,从中检索到存储在所述转换后备缓冲器中的安全域的所述页表是从所述系统的虚拟机管理器的多个页表其中之一,并且所述虚拟机管理器的页表是扩展页表,其包括:
扩展页表指针结构,每一个扩展页表指针结构被配置为指示是否已经为相关的存储器页面设置了安全域以及指示与所述安全域相关的特性,以及
扩展页表项结构,其被配置为存储分配给相关的存储器页面的安全域。
17、如权利要求15所述的系统,其中所述比较逻辑电路进一步用于:如果所述第一安全域与所述第二安全域不同,则引发页面错误以禁止所述指令引用或访问所述第二个存储器页面。
18、如权利要求15所述的系统,其中所述比较逻辑电路进一步用于:如果所述引用或访问是到所述第二个存储器页面的允许入口点的跳转或调用之一,则不管所述第一安全域是否与所述第二安全域不同,都不禁止所述指令引用或访问所述第二个存储器页面。
19、如权利要求15所述的系统,其中具有所述关键的操作系统组件代理的第二个存储器页面的第二安全域是管理安全域。
CN200710300374A 2006-09-29 2007-09-29 在虚拟技术环境中操作的软件代理的篡改保护方法和装置 Expired - Fee Related CN100587700C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/529,828 US7882318B2 (en) 2006-09-29 2006-09-29 Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US11/529,828 2006-09-29

Publications (2)

Publication Number Publication Date
CN101201885A CN101201885A (zh) 2008-06-18
CN100587700C true CN100587700C (zh) 2010-02-03

Family

ID=38938381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710300374A Expired - Fee Related CN100587700C (zh) 2006-09-29 2007-09-29 在虚拟技术环境中操作的软件代理的篡改保护方法和装置

Country Status (4)

Country Link
US (1) US7882318B2 (zh)
EP (1) EP1909185A3 (zh)
KR (1) KR100927750B1 (zh)
CN (1) CN100587700C (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555628B2 (en) * 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
US8276201B2 (en) * 2007-03-22 2012-09-25 International Business Machines Corporation Integrity protection in data processing systems
US8078817B2 (en) * 2008-02-27 2011-12-13 Lsi Corporation Method and system for secured drive level access for storage arrays
KR20090121712A (ko) * 2008-05-22 2009-11-26 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서의 컨텐트 사용제한 방법
US8424007B1 (en) * 2008-09-30 2013-04-16 Symantec Corporation Prioritizing tasks from virtual machines
US8806220B2 (en) 2009-01-07 2014-08-12 Microsoft Corporation Device side host integrity validation
US20100306177A1 (en) * 2009-05-29 2010-12-02 Khosravi Hormuzd M Host operating system independent storage-related remote access and operations
US9213651B2 (en) * 2009-06-16 2015-12-15 Vmware, Inc. Synchronizing a translation lookaside buffer with page tables
US8214902B2 (en) * 2009-06-19 2012-07-03 Intel Corporation Determination by circuitry of presence of authorized and/or malicious data
US8307175B2 (en) * 2009-06-26 2012-11-06 Intel Corporation Data recovery and overwrite independent of operating system
US8397306B1 (en) * 2009-09-23 2013-03-12 Parallels IP Holdings GmbH Security domain in virtual environment
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US9009384B2 (en) 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US9934166B2 (en) 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
WO2013101229A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Structure access processors, methods, systems, and instructions
WO2013142948A1 (en) * 2012-03-30 2013-10-03 Irdeto Canada Corporation Method and system for preventing and detecting security threats
CN102750470B (zh) * 2012-05-22 2014-10-08 中国科学院计算技术研究所 全虚拟化环境下启动加载器的可信验证方法和系统
US9037823B2 (en) * 2012-09-14 2015-05-19 Intel Corporation Protecting IAT/EAT hooks from rootkit attacks using new CPU assists
US9275223B2 (en) 2012-10-19 2016-03-01 Mcafee, Inc. Real-time module protection
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US9569612B2 (en) 2013-03-14 2017-02-14 Daniel Shawcross Wilkerson Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality
US9087202B2 (en) * 2013-05-10 2015-07-21 Intel Corporation Entry/exit architecture for protected device modules
US20150033034A1 (en) * 2013-07-23 2015-01-29 Gideon Gerzon Measuring a secure enclave
US9311475B2 (en) * 2013-08-30 2016-04-12 Vmware, Inc. Trusted execution of binaries and modules
US9824225B1 (en) * 2013-09-20 2017-11-21 EMC IP Holding Company LLC Protecting virtual machines processing sensitive information
TW201512894A (zh) * 2013-09-24 2015-04-01 hong-jian Zhou 資料存取系統及其資料與指令傳輸裝置
CN103699498B (zh) * 2013-11-25 2016-08-31 南京大学 一种应用程序关键数据保护系统及其保护方法
US9703720B2 (en) * 2014-12-23 2017-07-11 Intel Corporation Method and apparatus to allow secure guest access to extended page tables
US9875189B2 (en) * 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US10148679B2 (en) * 2015-12-09 2018-12-04 Accenture Global Solutions Limited Connected security system
CN108351938B (zh) * 2015-10-29 2022-02-08 惠普发展公司,有限责任合伙企业 校验针对程序代码的一部分所计算的安全值的装置、系统和方法
US10592434B2 (en) * 2016-01-20 2020-03-17 Unisys Corporation Hypervisor-enforced self encrypting memory in computing fabric
US11379385B2 (en) * 2016-04-16 2022-07-05 Vmware, Inc. Techniques for protecting memory pages of a virtual computing instance
US10592267B2 (en) 2016-05-17 2020-03-17 Vmware, Inc. Tree structure for storing monitored memory page data
US11687654B2 (en) * 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10606764B1 (en) * 2017-10-02 2020-03-31 Northrop Grumman Systems Corporation Fault-tolerant embedded root of trust using lockstep processor cores on an FPGA
WO2019152003A1 (en) 2018-01-31 2019-08-08 Hewlett-Packard Development Company, L.P. Process verification
US10747711B2 (en) * 2018-03-20 2020-08-18 Arizona Board Of Regents On Behalf Of Northern Arizona University Dynamic hybridized positional notation instruction set computer architecture to enhance security
CN112400170A (zh) * 2018-06-24 2021-02-23 海克斯伍安全公司 配置、实施和监控可信执行环境的分离
US11030120B2 (en) 2019-06-27 2021-06-08 Intel Corporation Host-convertible secure enclaves in memory that leverage multi-key total memory encryption with integrity

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
JP3369580B2 (ja) 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
US5491806A (en) 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
JP3454854B2 (ja) 1992-01-16 2003-10-06 株式会社東芝 メモリ管理装置及び方法
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5483641A (en) 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US5312673A (en) * 1992-07-28 1994-05-17 Bradford Industries, Inc. Adhesive system for athletic lettering and the like
DE69429777T2 (de) 1993-09-30 2002-10-17 Apple Computer System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher
US5634043A (en) 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
FR2744818B1 (fr) 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
US5991881A (en) 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
US5913923A (en) * 1996-12-06 1999-06-22 National Semiconductor Corporation Multiple bus master computer system employing a shared address translation unit
US6360244B1 (en) 1997-04-11 2002-03-19 Fujitsu Limited System and method for multi-level memory domain protection
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6163834A (en) 1998-01-07 2000-12-19 Tandem Computers Incorporated Two level address translation and memory registration system and method
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6105137A (en) 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6321276B1 (en) 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6732220B2 (en) 1999-02-17 2004-05-04 Elbrus International Method for emulating hardware features of a foreign architecture in a host operating system environment
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
WO2001001262A1 (fr) 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
US7650504B2 (en) 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6751737B1 (en) 1999-10-07 2004-06-15 Advanced Micro Devices Multiple protected mode execution environments using multiple register sets and meta-protected instructions
US6738882B1 (en) 1999-11-30 2004-05-18 Hewlett-Packard Development Company, L.P. Concurrent multi-processor memory testing beyond 32-bit addresses
AU2278601A (en) * 1999-12-23 2001-07-03 General Instrument Corporation Dual-mode processor
EP1256061A1 (en) * 2000-02-01 2002-11-13 Cirrus Logic, Inc. Methods and circuits for securing encached information
US6983374B2 (en) 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
US6553438B1 (en) 2000-04-24 2003-04-22 Intel Corporation Methods and system for message resource pool with asynchronous and synchronous modes of operation
US6931540B1 (en) 2000-05-31 2005-08-16 Networks Associates Technology, Inc. System, method and computer program product for selecting virus detection actions based on a process by which files are being accessed
US6751720B2 (en) 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6996551B2 (en) 2000-12-18 2006-02-07 International Business Machines Corporation Apparata, articles and methods for discovering partially periodic event patterns
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
DE10105284A1 (de) 2001-02-06 2002-08-29 Infineon Technologies Ag Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
US6567897B2 (en) 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6684305B1 (en) 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
CA2446584A1 (en) 2001-05-09 2002-11-14 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US7478394B1 (en) 2001-06-04 2009-01-13 Hewlett-Packard Development Company, L.P. Context-corrupting context switching
US6671791B1 (en) 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US6920534B2 (en) 2001-06-29 2005-07-19 Intel Corporation Virtual-port memory and virtual-porting
US8001594B2 (en) 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US6685567B2 (en) 2001-08-08 2004-02-03 Igt Process verification
US6883116B2 (en) 2001-09-27 2005-04-19 International Business Machines Corporation Method and apparatus for verifying hardware implementation of a processor architecture in a logically partitioned data processing system
US6823433B1 (en) 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US6850994B2 (en) 2001-11-16 2005-02-01 Microsoft Corporation Method for determining status of a computer device and detecting device behavior in response to a status request
US6804741B2 (en) 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US7058768B2 (en) * 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
JP2003330365A (ja) 2002-05-09 2003-11-19 Toshiba Corp コンテンツ配布/受信方法
US6922766B2 (en) 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US6895491B2 (en) 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US7107497B2 (en) 2002-09-30 2006-09-12 Sun Microsystems, Inc. Method and system for event publication and subscription with an event channel from user level and kernel level
US7028229B2 (en) 2002-09-30 2006-04-11 Sun Microsystems, Inc. Kernel event subscription and publication system and method
RU2005115094A (ru) * 2002-11-18 2006-01-20 Арм Лимитед (Gb) Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена
US7111200B2 (en) 2003-04-17 2006-09-19 International Business Machines Corporation Apparatus and method for debugging a logical partition
US7139892B2 (en) * 2003-05-02 2006-11-21 Microsoft Corporation Implementation of memory access control using optimizations
US20040226009A1 (en) 2003-05-09 2004-11-11 International Business Machines Corporation System and method for software application task abstraction
US6961852B2 (en) 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US7010630B2 (en) 2003-06-30 2006-03-07 International Business Machines Corporation Communicating to system management in a data processing system
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7542026B2 (en) 2003-11-03 2009-06-02 International Business Machines Corporation Apparatus method and system for improved feedback of pointing device event processing
KR100999087B1 (ko) * 2003-11-29 2010-12-07 삼성전자주식회사 보안 도메인 서비스 시스템 및 그 방법
US20050132122A1 (en) 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US20050138417A1 (en) 2003-12-19 2005-06-23 Mcnerney Shaun C. Trusted network access control system and method
US7225325B2 (en) 2003-12-30 2007-05-29 International Business Machines Corporation Customizing a computer system by using stored configuration parameters in a configuration mechanism
US7831838B2 (en) 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US20050213768A1 (en) 2004-03-24 2005-09-29 Durham David M Shared cryptographic key in networks with an embedded agent
US7653727B2 (en) 2004-03-24 2010-01-26 Intel Corporation Cooperative embedded agents
US7558966B2 (en) 2004-06-09 2009-07-07 Intel Corporation Notifying remote administrator of platform integrity determination
US7594124B2 (en) 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
US20050289311A1 (en) 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7644287B2 (en) 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US20060026387A1 (en) 2004-07-31 2006-02-02 Dinechin Christophe D Method and system for recognizing instructions and instruction blocks in computer code
US7571474B2 (en) 2004-12-30 2009-08-04 Intel Corporation System security event notification aggregation and non-repudiation
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7739517B2 (en) 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
US7603484B2 (en) 2005-04-21 2009-10-13 Microsoft Corporation Protocol for communication with a user-mode device driver
US20060294596A1 (en) 2005-06-27 2006-12-28 Priya Govindarajan Methods, systems, and apparatus to detect unauthorized resource accesses
US20070005935A1 (en) 2005-06-30 2007-01-04 Khosravi Hormuzd M Method and apparatus for securing and validating paged memory system
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US20070006175A1 (en) 2005-06-30 2007-01-04 David Durham Intra-partitioning of software components within an execution environment
US7761674B2 (en) 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US7669242B2 (en) 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US20070006307A1 (en) 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US7581085B1 (en) * 2005-09-08 2009-08-25 Parallels Software International, Inc. Fast stub and frame technology for virtual machine optimization
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
US7802050B2 (en) 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
JP4270293B2 (ja) * 2007-03-05 2009-05-27 株式会社デンソー 燃料噴射弁
GB2448149B (en) 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
US8364973B2 (en) 2007-12-31 2013-01-29 Intel Corporation Dynamic generation of integrity manifest for run-time verification of software program

Also Published As

Publication number Publication date
KR100927750B1 (ko) 2009-11-20
KR20080030543A (ko) 2008-04-04
EP1909185A2 (en) 2008-04-09
EP1909185A3 (en) 2009-07-29
US20080082772A1 (en) 2008-04-03
US7882318B2 (en) 2011-02-01
CN101201885A (zh) 2008-06-18

Similar Documents

Publication Publication Date Title
CN100587700C (zh) 在虚拟技术环境中操作的软件代理的篡改保护方法和装置
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
Champagne et al. Scalable architectural support for trusted software
CN100353278C (zh) 用于类型安全语言环境的方法、处理器和系统
US20070106986A1 (en) Secure virtual-machine monitor
CN107667350A (zh) 基于虚拟化的平台保护技术
CN103907101A (zh) 用于管理器环境中的内核rootkit防护的系统和方法
CN101872328A (zh) 在虚拟机环境中的客户机之间共享信息
CN105393229A (zh) 虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中
US7512768B2 (en) Dynamically sharing a stack between different code segments
EP1955154A2 (en) Secure virtual-machine monitor
US20230236925A1 (en) Tag checking apparatus and method
Delshadtehrani et al. Sealpk: Sealable protection keys for risc-v
JP7349437B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
EP3818447B1 (en) Memory access control
JP2023547065A (ja) ケイパビリティを使用してメモリへのアクセスを制約するための技法
KR20220156028A (ko) 메모리 액세서 무효화
US11989425B2 (en) Apparatus and method for controlling access to a set of memory mapped control registers
US20230342289A1 (en) Apparatus and method for managing capabilities
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术
TW202318210A (zh) 用於處理密封能力之技術
CN115315691A (zh) 验证地址转译的完整性
JP2009104555A (ja) Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100203

Termination date: 20140929

EXPY Termination of patent right or utility model