CN1877547B - 提供扩展的存储器保护 - Google Patents

提供扩展的存储器保护 Download PDF

Info

Publication number
CN1877547B
CN1877547B CN2006100841661A CN200610084166A CN1877547B CN 1877547 B CN1877547 B CN 1877547B CN 2006100841661 A CN2006100841661 A CN 2006100841661A CN 200610084166 A CN200610084166 A CN 200610084166A CN 1877547 B CN1877547 B CN 1877547B
Authority
CN
China
Prior art keywords
protection
memory
impact damper
record
virtual address
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
CN2006100841661A
Other languages
English (en)
Other versions
CN1877547A (zh
Inventor
A·程
F·麦克金
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 CN1877547A publication Critical patent/CN1877547A/zh
Application granted granted Critical
Publication of CN1877547B publication Critical patent/CN1877547B/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
    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在一个实施例中,本发明提供用于系统的存储器的扩展存储器保护。所述实施例包括将保存在应用的数据空间外面的保护记录的保护指示器与存储器位置相关联,并且基于所述保护指示器的状态阻止访问所述存储器位置的方法。如此,提供更安全操作,将阻止像恶意代码或者其他不良制品,使其不能访问受保护的存储器位置。描述并要求保护其他的实施例。

Description

提供扩展的存储器保护
技术领域
本发明涉及存储器保护技术。
背景技术
计算机工业在过去的若干年中遭受了无数的安全弱点,并且弱点的数量继续增长着。这些弱点中的多数已经变为危及到受攻击的机器的完整性的攻击了。许多这些攻击的根本原因在于生成或者修改代码时产生的编程错误。
若干解决方法已经被尝试。编写安全代码的过程已经被一些团体所运行。受控运行时间环境(MRTE)在其被使用之处是有效的,但是不包含全部的编程空间。没有一个所述努力已经设法反转不断上升的弱点、攻击和补丁。减少编程错误的数量将导致减少安全弱点的数量并且提高系统完整性。
一个通常的弱点是缓冲器溢出攻击。如此攻击的一个示例发生在恶意代码重写存储在栈中函数的返回地址时。在从所述函数返回时,被修改的返回地址被推入指令指针(扩展指令计数器(EIP)寄存器)。这个被修改的返回地址可能引起恶意代码的执行和/或栈执行错误。如此的攻击典型地被不良的编程实践——例如,未检查的缓冲器传输——所激活。相反地,一个良好构造的程序将存储器映射至构造的部分,包括包含程序代码的文本部分、,存储已初始化和未初始化的全局数据的数据段、以及被栈和堆分享的部分。所述栈可以用来存储函数调用的自变量、局部变量和所选择寄存器的值,例如EIP寄存器。所述堆保存动态变量。不良的编程实践可能导致这些段被重写。
存在未检的缓冲器可以驻留于那里的其他位置。如此位置的一个示例是缓冲器溢出到堆存储器。堆存储器是从共有的存储池分配的并且被程序用来存储变量和其他运行时间数据的存储器。
因而存在提供更多免于安全弱点的保护的需要。
发明内容
本发明旨在提供解决上述问题的技术方案。
根据本发明的一种提供扩展存储器保护的方法,包括:将保护记录的保护指示器与第一存储器位置相关联,所述保护记录不可经由虚拟地址空间访问;并且基于所述保护指示器的状态阻止访问所述第一存储器位置。
根据本发明的一种提供扩展存储器保护的设备,包括:第一存储器,存储保护向量的副本,其中所述保护向量指明了第二存储器部分的保护状态,并且所述保护向量不可经由虚拟地址空间访问;以及第一缓冲器,其耦合于所述第一存储器,所述第一缓冲器存储虚拟地址和相应的物理地址之间转化,所述第一缓冲器生成命中信号和未命中信号。
根据本发明的一种包括存储表示集成电路的数据的机器可读存储介质的产品,包括:第一高速缓存,以高速缓存保护记录,其中所述保护记录的每一个将识别系统存储器的部分的保护状态,并且所述保护向量不可经由虚拟地址空间访问;以及转化后备缓冲器,其耦合于所述第一高速缓存,所述转化后备缓冲器为保护记录存储虚拟地址和相应的物理地址之间的转化。
根据本发明的一种提供扩展存储器保护的系统,包括:第一存储器,存储保护向量的副本,其中所述保护向量标识可访问存储器的部分的保护状态,并且所述保护向量不可经由虚拟地址空间访问。第一缓存器,其耦合于所述第一存储器,所述第一缓存器存储虚拟地址和相应的物理地址之间的转化;以及动态随机存取存储器,其耦合于所述第一存储器和所述第一缓冲器。
附图说明
图1是根据本发明的实施例的检查存储器访问的方法的流程图;
图2是根据本发明的实施例的可以被使用的缓冲器的方块图;
图3是根据本发明的实施例的不同的流水线结构的方块图;
图4是根据本发明的一个实施例的方法的流程图;
图5是根据本发明的另一个实施例的方法的流程图;
图6是根据本发明的一个实施例的系统的方块图。
具体实施方式
本发明的实施例提供一种标记存储器位置为不可访问的机制。如果程序尝试去访问受保护的存储器位置,所述机制可以发出一个存储器访问干扰(violation)的信号。也就是说,根据本发明实施例的存储器保护可以提供与所述存储器位置相关联的合适大小的断点。可以通过将所述位置标记为对某些类型的操作不可接入以保护所述位置。于是,更多的安全操作发生。
在不同的实施例中,定义属性位以提供对存储器位置的保护。这些位指示访问是否可以被准许以进行读或者写操作。这些属性可以通过提供对于变量的访问控制,来提供扩展存储器保护(EMP),在一些实施例中所述变量可以被定义为存储器的32个位。由EMP激活编译器所生成的程序将设置所述属性去提供支持的正确等级。通过不设置任何这些属性位,传统程序可以无缝地操作。
可以理解的是存储器保护的特性可以是体系结构特定的。所述选择可以包括,例如,被提供的访问保护类型:读保护,写保护,执行保护,或者所有这三种的一些混合选择;每一属性位所覆盖的地址范围;用其他属性混淆或重叠的能力;可操作地址空间:虚拟的或者物理的;以及将地址转化为相应的保护值的保护遍历(walk)过程。
在一个实施例中,基于读/写的限制定义四个状态,每个用一位表示。这些状态可以相应于具有被称作未分配(unallocated),未初始化(uniniitialized),已初始化(initialized),和锁定(locked)的四个状态的缓冲器使用模型。这个模型可以被分别映射到下述状态,no_read-no_write;no_read-write_ok;read_okay-write_ok;和read_ok-no_write。例如,no_read-no_write状态可以通过设置读和写保护位而被定义。因此如果读或者写发生在具有那些保护位设置的位置,异常可以被生成。
EMP信息可以被保持在主存储器中并且可以直接对应于机器中的每个可寻址的存储器元件。即,每个可寻址的存储器元件可以具有与其相关联的一组EMP属性。EMP信息可以被处理为存储器中的属性页。这些页在所述程序的虚拟地址空间中是不可访问的,但是相反可以由特殊的指令进行访问。所述属性位可以在每次存储器访问时被检查。如果所述位指示被限制的访问位置,则生成存储器访问干扰。
在虚拟存储器分页系统中,程序在逻辑地址空间中制造存储器基准。所述逻辑地址接着通过分段被变换为线性或者虚拟地址。最终,处理器的分页机制将虚拟地址转化为相应于所述数据被存储在物理存储器中的位置的物理地址。如果基于虚拟地址的EMP被执行或者激活,所述处理器进行从所述虚拟地址至存储在单独的EMP物理地址空间中的EMP限制记录的附加转化。
现在参考图1,其表示根据本发明的实施例的检查存储器访问的方法的流程图。如图1所示,数据访问请求10被接收到处理器中。数据访问请求10包括虚拟地址,访问大小和操作类型(例如,read(R)或者write(W)操作)。所述虚拟地址信息被提供到页转化机制20和EMP转化机制30。这些转化机制将来自数据访问请求10的虚拟地址信息转化为物理地址空间。
如图1所示,通过页转化机制20获得的物理地址被提供到逻辑操作器25,其将物理地址与操作类型组合,由此访问物理存储器50中的数据。更特别地,使用获得的物理地址,在数据页60之中的所需数据65可以被访问。
然而,在能够访问所需数据65之前,在其中EMP被激活的实施例中,可以首先决定数据65的存储器位置是否允许被访问。例如,如果EMP被激活并且对所请求的数据65的访问被限制,则可阻止读或者写操作。
也就是说,来自数据访问请求10的虚拟地址信息被提供到EMP转化机制30,在那里所述虚拟地址被转化为与EMP或者存储于EMP页70(与数据页60相关联)的限制记录75(与数据65相关联)相对应的物理地址。被访问的EMP记录75被提供到EMP检查机制40,在那里可以决定对所请求的数据65的访问是否被允许。例如,EMP记录75中的一个或者多个位可以指示对相应的被请求数据65的访问不被允许。如果这样的访问不被允许,则EMP检查机制40可以在信号线45上生成EMP保护干扰(EPV)。据此,对数据65的访问被阻止。
如此如果EMP写保护为了特定虚拟地址而设置并且存在对那个地址的数据写尝试,则所述处理器可以提升EMP保护干扰(EPV)异常。EMP读保护在数据读访问上具有相同的效果。在一些实施例中,归因于代码取回的存储器读可能不被认为是数据读访问。在各实施例中,EMP异常处理器可以被用于以安全方式从保护干扰恢复。
在各实施例中,EMP限制的检查是不可知特权级。即,如果EMP写保护被设置到特定存储器位置,则所有对那个位置的写尝试将导致EPV异常而不管当前程序的特权级。在这些实施例中,所有页限制必需还要满足接下来的基准。如果所述页等级保护不允许在当前特权级的访问,则EMP异常不发生。
EMP标志可以被包含在处理器控制结构,例如控制寄存器(例如,控制寄存器4(CR4))之中。在一些实施例中,EMP标志的默认设置是零(清除),意味着不存在用于任何数据访问的EMP限制检查。当所述EMP限制检查是全局禁用的时,所述处理器不需要在每一数据访问的虚拟地址上执行EMP地址转化。为了激活EMP限制检查,所述EMP标志可以被设置为1。
所述EMP物理地址空间对虚拟地址空间中的软件程序是不可视的。据此,操作系统(OS)可以阻止通过正规的分页机制暴露EMP物理地址。为了修改EMP限制属性,软件程序可以使用指令去改变所述存储器属性,例如移动存储器限制(例如,MOVMR指令),其可以将所述存储器属性(EMP限制记录)移动到物理空间中的EMP存储器中。
所述EMP保护干扰(EPV)可以具有它自己的异常向量标识符(ID)。如果数据访问无法做到所述EMP限制检查,则所述处理器提升EPV异常。另外,EPV异常也可以在MOVMR指令期间被提升。EPV可以被认为是指令执行错误。所得到的中断是准确的并且阻止所述指令执行。
当所述EPV异常出现时,它将错误代码放置在当前栈上。所述错误代码可以包括多个错误状态位。在所述错误代码中的每个位可以被用于指示所述EPV异常的不同的原因。当EPV出现时,初始化EMP转化或者限制检查的源虚拟地址被存储在特定的位置中,例如,在控制寄存器(例如,CR2)之中。
在各实施例中,这一EMP机制可以以不同的方式被使用,以增加系统完整性。尽管一些实施例可以保护栈变量和参数以及堆变量,但可以理解的是本发明的范围并不被如此地限制。
在接下来的示例中,使用在虚拟地址模型上的字节大小的离散写保护。在这一实施例中,对于可寻址数据(在虚拟地址空间中)的每一字节,存在与之相关联的写保护属性位。如果这个位被设置,则任何写入这个位置的尝试可能引起体系结构的异常。对于每一虚拟地址页,所述操作系统(OS)可以分配保护记录,例如在分离的虚拟存储器位置中的相应大小(例如,1位每字节)的向量。在一个实施例中,每一EMP限制记录描述对于虚拟地址的32位(4字节)的数据访问限制。如果数据访问覆盖多重4字节数据块,则多重EMP限制记录可以被使用。这个向量在物理存储器中的位置可以通过保护遍历机制而被提供。在一个实施例中,这个机制可以与页遍历机制相似,并且最后项指向向量基址,而不是所述物理页。在其它实施例中,包括以软件帮助的哈希表的不同的转化方案也是可能的。
虽然在此被描述为字节大小写保护,但在其他实施例中写保护和其他保护粒度可以被执行。在此限制记录也可以被称为向量。可通过规则的存储操作保护向量免受修改。例如,特殊的指令可以被用户应用所使用,以修改向量之中的特定位。这个指令可以被称为“set/clear protection”(“设置/清除保护”)指令。假设虚拟地址,所述特殊设置或者清除指令可以被用于在没有引起异常的情况下修改适当的属性位。
可以通过将诸如返回地址之类的关键存储器位置标记为不可访问,来保护栈免受缓冲器溢出和其他危险的重写。例如,编译器可以在例程的项之上发出代码以将返回地址标记为不可访问。如果所述程序尝试经过分配的变量并且进入所述返回地址的写,则可利用EMP机制检测到错误。所述错误可以被报告为存储器访问干扰。结果,所述写不发生,并且错误处理器可以决定解决所述错误的合适方式,与缓冲器溢出检测方案不同,其仅仅在所述缓冲器已经被破坏之后检测到重写。
可以以两种方式保护所述堆存储器。未分配或者再分配的存储器可以被标记为未分配。对那些位置的任何参考都将生成错误。进一步地,所述堆管理器可以将关键指针和内部变量标记为不可访问。
例如,现在参考图2,其表示根据本发明的实施例的可以被使用的缓冲器方块图。所述缓冲器可以处在数据堆或者栈结构之中,并且如图2所示,可以包括多重数据块,其包括x字节长的第一数据块115和y字节长的第二数据块125。两个数据块115和125的每个都具有与之相关联的块头部。特别地,块115包括头部110,并且块125包括头部120。另外,头部105被表示为零字节块。
在缓冲器溢出攻击中,恶意代码从一个被分配的块到下一块重写所述缓冲器并且修改其中的数据。为了避免如此的缓冲器溢出,本发明的实施例可以利用保护记录来保护每个缓冲器块的块头部。例如,图2的头部105,110,和120每个都可以具有与之相关联的保护指示器,其被设置成指示这些存储器位置对于写和/或读操作是不可访问的。这些保护指示器可以被存储在一个或者多个保护向量或者记录中,例如,图1的EMP记录75。
为了最小化由于对保护信息的额外存储器访问引起的性能损失,保护高速缓存和保护转化后备缓冲器(PTLB)可以被包含在存储器流水线中。现在参考图3,其表示根据本发明的实施例的各流水线结构的方块图。如图3所示,微处理器200可以包括各种处理器资源,来激活保护数据的存储和检查。
在图3的实施例中,处理器200可以包括被用来存储放置于物理存储器中的EMP记录的子集的保护高速缓存210。以这样一种方式,这些最近或者最频繁的被访问保护记录可以被快速地获得,而不会在从存储器分级系统获得信息时引起等待时间。
进一步如图3所示,有一个数据转化后备缓冲器(DTLB)220,其用于存储数据地址转化的副本。相似地,存在PTLB 230,用于存储从最近被访问的保护记录的虚拟地址至物理地址的转化。这些结构210,220和230的每一个都被耦合,以接收譬如相应于存储操作的虚拟地址。物理存储器270被耦合到这些流水线结构。在各实施例中,可以以类似于用于分页函数的微体系结构设计所述EMP结构。在一些实施例中,用于EMP和分页的电路可以被共享。
保护高速缓存210包括具有保护向量的高速缓存线的数据部分。尽管每条高速缓存线的长度对于各实现是特定的,但所述长度可以是数据高速缓存线的大小的倍数以简化分裂地址的操作。代替使用所述保护向量地址作为查找标志,可将在流水线中接收的存储操作的原始虚拟地址用于访问保护高速缓存210的标志阵列。所述保护向量高速缓存线的地址被存储在高速缓存中作为地址检验数据。以此结构,高速缓存查找可以与DTLB和PTLB查找并行地发生,或者在存储请求的虚拟地址变为有效时发生。
DTLB 220被耦合以将地址页连同保护激活信号到保护高速缓存210。相似地,DTLB 220将保护激活信号提供到PTLB 230。
来自DTLB 220和PTLB 230的结果可以通过将所述结果和所述地址检查数据进行比较,被用于限制所述高速缓存查找结果。除发送地址到高速缓存210之外,DTLB 220或者PTLB 230可能禁用所述高速缓存查找结果。在如此的高速缓存中,所述高速缓存结果被丢弃,且没有从那里驱动的输出。所述查找结果例如在DTLB或者PTLB未命中,页等级保护查找禁用(DTLB/PTLB),和处理器状态保护查找禁用的时候被禁止。
如果相应于请求的所述虚拟地址存在于PTLB 230中,所述EMP记录的物理地址连同PTLB命中信号,被提供到保护高速缓存210。类似用于页遍历的TLB,PTLB 230可以被用于加速保护遍历的过程。并且,类似于用于页遍历的TLB,PTLB230可以特定的实现。例如,其可以是单或者多等级TLB,其可支持一个或者多个遍历树型定义,并且也可以利用有软件帮助的哈希表。
PTLB查找可以开始于引入存储操作的虚拟页地址,其可以与DTLB查找并行地进行。PTLB 230的数据输出是用于相应页的保护记录的物理开始。所述PTLB将发送这个地址和命中(或者激活)信号至保护高速缓存210。当DTLB220已经激活用于那个页的保护的时候,所述PTLB输出仅仅在DTLB命中上是相关的。使用连同来自DTLB 220和PTLB 230的信息一起被接收的虚拟地址,保护高速缓存210可以决定所述被请求的EMP记录是否存在。如此的单个虚拟地址可以被用于获得对所述存储请求(例如,存储器中的信息)的物理地址的转化以及相应于所述存储请求的EMP记录的物理地址。
如果所述高速缓存查找输出未被丢弃,并且所有相应于所述存储请求的保护位被高速缓存在它的结构之中,高速缓存命中发生。除报告所述高速缓存命中之外,保护高速缓存210可以在所有被存储请求覆盖的保护位上执行逻辑“OR”操作。也就是说,除了高速缓存物理地址转化,保护高速缓存210利用存储大小信息的字节掩码指示,执行位索引。如果所述结合保护被设置,则写访问干扰可以被生成(图3的“Write Protected”(写保护)信号),导致软件可视异常,例如,EPV。如此结合的物理地址可以被用于检查与存储器位置相关联的存储器保护。
如果相反命中发生并且所述被请求数据没有受到保护,则保护高速缓存210输出允许信号(图3的“Write Permitted”(写允许)信号),指示所述访问可能发生。
如果所述高速缓存查找输出未被丢弃,但是所述存储地址未在所述高速缓存标志阵列中,或者所述检查地址与DTLB/PTLB输出不匹配,那么高速缓存未命中发生。结果,保护高速缓存210可以通过将未命中信号连同关于存储请求的必需的地址信息一起发送到PTLB 230来请求填充操作。PTLB 230可以接着启动在存储器270的相应保护记录275中被请求的高速缓存线的存储器读。所述存储操作接着将在完成所述高速缓存填充后(发生在线280上)重访问所述存储器流水线。
如果PTLB查找失败并且保护为所述被请求页所激活,则PTLB未命中发生。如果未命中发生在PTLB 230中(例如,没有至所请求的EMP记录275的物理地址的转化存在),PTLB未命中信号被生成并且被发送到保护未命中处理器(PMH)240。PMH 240可以与页未命中处理器类似地操作,以引起保护页遍历去获得相应于所需EMP记录的物理地址。PMH 240以原始请求地址执行保护遍历。
如此所示,PMH 240启动页遍历,在其中各种页表可以被访问,以获得所需物理地址并且将其提供给PTLB 230用以存储。在图3所示的实施例中,存在三级分页结构体系,包括第一分页结构252,第二分页结构254,和第三分页结构256。如此的页表可以相应于64位虚拟地址,包括页映射等级4(PML4)表、页目录指针表和页目录。据此,PMH 240可以将页表之中的项提供给PTLB 230。进而这个项可以连同由保护高速缓存210提供的字节偏移量一起,被用于访问物理存储器270之中的所需EMP记录275。
当然,实际的保护遍历状态机取决于所述保护遍历算法的结构体系选择。在保护遍历完成后,PTLB 230可以自动地启动用于当前存储操作的所需决定性的高速缓存线的高速缓存填充操作。如上所述,所述存储操作可以在所述高速缓存填充操作完成之后被重试。据此,PMH 240可以将页表之中的项提供给PTLB 230。这个项进而可以连同由保护高速缓存210提供的字节偏移量一起,被用于访问物理存储器270之中的所需EMP记录275。
在一些实施例中,PTLB项可以通过明确的指令或者容量置换而被替代。尽管所述相应的高速缓存线不需要被转储清除,因为PTLB命中是高速缓存命中的首要条件,但如此的转储清除可以提升高速缓存的效率。虽然表示的是图3实施例中的特定结构,但在其他的实施例中,高速缓存210,DTLB 220,和PTLB230可以被结合在单个的存储器结构之内。
现在参考图4,其表示根据本发明的一个实施例的方法的流程图。如图4所示,方法300可以被用于提供存储器保护到特定的存储器位置。方法300可以通过接收设置的保护指令而开始(方块310)。如此的指令可以通过编译器发出以激活指定的存储器位置的保护,就像缓冲器头部以阻止缓冲器溢出攻击。
接下来,可以决定所需保护(例如,读或者写保护)的类型以及被保护的存储器的位置(方块320)。例如,所述栈中缓冲器头部的位置可以被决定。使用这个位置信息,相应于所述存储器位置的保护记录可以被访问(方块330)。例如,这个保护记录可以被存储于系统存储器的分离的保护页中。最终,在所述保护记录之中的位可以被设置为相应于所述存储器位置(方块340)。作为示例,保护记录可以是具有八位的向量,每个都相应于存储器四字节段。据此,相应于包括缓冲器头部的四字节块的给定位可以据此被设置。
现在参考图5,其表示使用如图3所示的附加流水线结构的扩展存储器保护实现的流程图。如图5所示,方法400可以经由接收存储操作(方块410)而开始。所述存储操作的虚拟地址可以被应用于保护高速缓存和TLB(例如,DTLB和PTLB)(方块420)。
接下来,决定是否存在保护TLB未命中(菱形430)。如果如此,则保护页未命中发生并且保护页遍历机制可以被执行(方块440)。如果保护TLB命中或者在所述页遍历完成时,接下来可以决定是否存在保护高速缓存命中(菱形445)。如果没有,则高速缓存填充操作可以被执行(方块450),并且控制返回到方块420。正如上面所讨论的,所述高速缓存填充可以从系统存储器获得所需保护记录并且将它提供到所述保护高速缓存。
如果相反在菱形445处具有保护高速缓存命中,所述存储操作的保护状态可以被决定(方块460)。例如,所述保护高速缓存或者其他结构可以执行逻辑操作去决定一个或者多个相应于所述存储操作的位是否被设置,以指示被保护的状态。如此,可以决定相应于所述存储操作的地址是否被保护(菱形470)。如果没有,所述操作可以被允许(方块480)。如果相反所述地址被保护,则存储器访问干扰可以被以信号通知(方块490)。
在一些实施例中,依照本发明的实施例的EMP可以提供硬件中的运行时间检查,其作为减小来自编程错误的灾难性后果并且确保具有暴露错误的程序的可控终止的方法。如此,更好的调试检测和验证可以提高代码释放之前错误的检测和覆盖。
EMP机制可以为了意外行为而检查程序。作为示例,如此的检查可以包括检查越过变量端到未分配的存储器位置,以及到未初始化的存储器位置的访问。所述检查不被限定在特定的语言和子例程中。另外,EMP机制可以被用来通过保护关键数据而保持,例如所述堆的关键组合块的完整性。
以这种方式,通过提供微体系结构支持,存储器保护能以对流水线通用处理器中的存储器流水线的决定性的路径发生最小的影响来实现。据此,如此保护的性能总开销远远少于基于重写检测机制的软件。
如此,软件的完整性可以被提高。作为一个应用方案,在数据堆和栈结构中的增强的缓冲器溢出检测可以被实现。在所述数据堆的上下环境中,堆管理器可以使用保护机制去保护每个被分配的缓冲器的块头部。如果从一个被分配的块到下一块尝试缓冲器溢出攻击,所述保护机制将检测到它并且阻止所述有害的修改。据此,缓冲器溢出和其他的重写攻击可能被阻止而免于发生,胜过仅仅在事实发生之后检测所述攻击。
用编译器支持,可以利用根据本发明的实施例的存储器保护减轻软件弱点。例如,保护记录的细颗粒的性质可以被用于保护类似于虚拟函数表指针的其他静态结构使它们免于作为执行路径重定向攻击的部分而被修改。在一些实施例中,硬件canary值也可以被放置于静态分配缓冲器的周围,所述静态分配缓冲器可能是溢出的源。
另外,保护记录可以被视为调试断点的无限制实现。取代被极少可用的调试寄存器所限制,软件开发者将具有按要求的同步调试断点。据此,细颗粒的断点检测可以被实现于整个地址空间。这个检测如此地提供硬件方法去解决某种软件完整性问题。即,对应用中的意外行为的检测可以经由断点覆盖来获得,激活新编程方法。
现在参考图6,其表示根据本发明实施例的系统的方块图。如图6所示,所述系统是具有点对点总线体系结构的多处理器系统,例如公用系统接口(CSI)系统,并且包括通过点对点互连550耦合的第一处理器570和第二处理器580。第一处理器570包括多处理器核心574a和574b,存储器控制器集线器(MCH)572和点对点(P-P)接口576和578。相似地,第二处理器580包括相同的组件,即处理器核心584a和584b,MCH582,以及P-P接口586和588。
如图6所示,MCH的572和582将所述处理器耦合到各自的存储器,即存储器532和存储器534,它们可以是局部连接到各自的处理器的主存储器的部分。第一处理器570和第二处理器580可以经由P-P接口552和554被分别耦合到芯片组590。如图6中所示,芯片组590包括P-P接口594和598。进一步地,芯片组590包括接口592以将芯片组590与高性能图形引擎538耦合。在一个实施例中,加速图形接口(AGP)总线539可以被用于将图形引擎538耦合到芯片组590。AGP总线539可以遵照加速图像端口接口规范,修订版2.0,Inter(英特尔)公司,Santa Clara,Califomia,出版于1998年5月5日。作为选择,点对点互连539可以耦合这些组件。
反过来,芯片组590可以经由接口596耦合到第一总线516。在一个实施例中,第一总线516可以是由PCI本地总线规范,制造版本,修订版2.1,日期为1995年6月,所定义的外围组件互连(PCI)总线或者例如PCI Express总线或者其他第三生成I/O互连总线之类的总线,尽管本发明的范围并不被如此限制。
如图6所示,不同的输入/输出(I/O)装置514可以连同将第一总线516耦合到第二总线520的总线桥接器518一起,被耦合到第一总线516。在一个实施例中,第二总线520可以是低管脚计数(LPC)总线。在一个实施例中,各种设备可以被耦合到第二总线520,包括,例如,键盘/鼠标522,通信装置526和可以包括代码530的数据存储单元528。进一步地,音频I/O524可以被耦合到第二总线520。当然,在其他实施例中,可以不同地实现系统,例如,单个处理器系统或诸如此类。进一步地,虽然以图6的特定实现进行表示,但本发明的范围并不被如此限制并且可以以不同的体系结构实现EMP。
实施例可以在计算机程序中实现,所述计算机程序可以存储在具有编程计算机系统去执行所述实施例的指令的存储介质上。所述存储介质可以包括,但是不限制于,任何类型的磁盘,包括软盘,光盘,紧致盘只读存储器(CD-ROM),可重写紧致盘(CD-RW),和磁光盘,半导体装置例如只读存储器(ROM),随机存取存储器(RAM)例如动态和静态RAM,可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),闪存,磁或者光卡,或者任何类型的适合于存储电子指令的介质。其他实施例可以被实现为由可编程控制设备执行的软件模块。
虽然已经结合有限数量的实施例描述了本发明,但本领域的技术人员将理解许多来自其中的修改和变化。其意味着所附权利要求覆盖所有那些落入本发明的实质精神和范围的修改和变化。

Claims (29)

1.一种提供扩展存储器保护的方法,包括:
将保护记录的保护指示器与第一存储器位置相关联,其中所述保护指示器标识第一存储器位置的保护状态,并且所述保护记录不可经由虚拟地址空间访问;
在所述第一存储器位置之外的第二存储器位置中存储所述保护记录;并且
基于所述保护指示器的状态阻止访问所述第一存储器位置。
2.如权利要求1的方法,进一步包括如果所述访问被阻止,发出存储器访问干扰的信号。
3.如权利要求1的方法,其特征在于,所述将保护记录的保护指示器与第一存储器位置相关联的过程包括分配所述保护记录到虚拟地址页。
4.如权利要求1的方法,其特征在于,还包括在第一缓冲器中存储所述保护记录的副本。
5.如权利要求4的方法,其特征在于,还包括确定包含在数据访问请求中的虚拟地址到用于相应保护记录的物理地址的转化信息是否存在于第二缓冲器。
6.如权利要求1的方法,其特征在于,所述第一存储器位置是缓冲器,所述将保护记录的保护指示器与第一存储器位置相关联的过程包括设置相应于缓冲器头部的保护指示器。
7.如权利要求6的方法,其特征在于,所述保护记录被用于阻止缓冲器溢出攻击。
8.如权利要求1的方法,其特征在于,所述基于所述保护指示器的状态阻止访问所述第一存储器位置的过程包括将所述第一存储器位置的虚拟地址转化为用于所述第一存储器位置的第一物理地址和用于所述保护记录的第二物理地址。
9.如权利要求8的方法,其特征在于,所述基于所述保护指示器的状态阻止访问所述第一存储器位置的过程包括结合所述第一物理地址和所述第二物理地址以决定所述保护指示器的状态。
10.一种提供扩展存储器保护的设备,包括:
第一存储器,存储保护向量的副本,其中所述保护向量标识第二存储器的一部分的保护状态,并且所述保护向量不可经由虚拟地址空间访问;以及
第一缓冲器,其耦合于所述第一存储器,所述第一缓冲器存储包含在数据访问请求中的虚拟地址和用于相应保护向量的物理地址之间的转化信息,所述第一缓冲器生成命中信号和未命中信号。
11.如权利要求10的设备,其特征在于,还包括保护未命中处理器,其接收所述未命中信号并且从所述第二存储器获得和所请求保护向量对应的物理地址以用于存储在第一存储器中。
12.如权利要求10的设备,其特征在于,还包括耦合于所述第一存储器和所述第一缓冲器的第二缓冲器,所述第二缓冲器存储第二存储器的所述部分的虚拟地址和物理地址之间的转化信息,其中所述第一缓冲器所存储的转化信息包括至少一个所述保护记录的物理地址。
13.如权利要求12的设备,其特征在于,所述第一缓冲器和所述第二缓冲器结合在单个存储器结构中。
14.如权利要求10的设备,其特征在于,所述第一存储器包括高速缓存,其中当第二存储器的部分被保护时,所述高速缓存生成保护信号。
15.如权利要求10的设备,其特征在于,所述数据访问请求是存储请求,所述第一存储器将在保护向量的一个或者多个副本上执行逻辑操作,以决定存储请求所请求的目标地址的保护状态。
16.如权利要求10的设备,其特征在于,所述第二存储器的所述部分包括在所述第二存储器中的缓冲器的至少一个缓冲器头部。
17.如权利要求10的设备,其特征在于,所述第二存储器包括保护页,所述保护页包括保护向量,所述保护页分割自所述第二存储器的数据页。
18.一种用于提供扩展存储器保护的集成电路,包括:
第一高速缓存,用于高速缓存保护记录,其中所述保护记录的每一个将标识系统存储器的一部分的保护状态,并且所述保护记录不可经由虚拟地址空间访问;以及
保护转化后备缓冲器,其耦合于所述第一高速缓存,所述保护转化后备缓冲器存储包含在数据访问请求中的虚拟地址和用于相应保护记录的物理地址之间的转化信息。
19.如权利要求18的集成电路,其特征在于,还包括保护未命中处理器,以在所请求的转化信息不存在于所述保护转化后备缓冲器中时,接收来自所述保护转化后备缓冲器的未命中信号。
20.如权利要求18的集成电路,其特征在于,所述第一高速缓存在被存储请求覆盖的所有保护位上执行逻辑“OR”操作,其中,通过使用一个指示存储大小信息的字节掩码来执行位索引,从而确定所述被存储请求覆盖的保护位。
21.如权利要求18的集成电路,还包括耦合到所述第一高速缓存的数据转化后备缓冲器。
22.一种提供扩展存储器保护的系统,包括:
第一存储器,存储保护向量的副本,其中所述保护向量标识可寻址存储器的一部分的保护状态,并且所述保护向量不可经由虚拟地址空间访问;
第一缓冲器,其耦合于所述第一存储器,所述第一缓存器存储包含在数据访问请求中的虚拟地址和用于相应保护向量的物理地址之间的转化信息;以及
物理存储器,其耦合于所述第一存储器和所述第一缓冲器。
23.如权利要求22的系统,其特征在于,所述物理存储器包括存储器缓冲器,所述存储器缓冲器具有多个头部,各个头部相应于该存储器缓冲器的一个块,所述多个头部包括所述可寻址存储器的一部分。
24.如权利要求22的系统,其特征在于,所述物理存储器包括栈,其中至少所述栈的一部分包括所述可寻址存储器的一部分。
25.如权利要求22的系统,其特征在于,所述物理存储器包括存储数据页的第一部分和存储保护页的第二部分。
26.如权利要求25的系统,其特征在于,所述第二部分是不可经由虚拟地址空间访问的。
27.如权利要求22的系统,其特征在于,所述第一存储器包括高速缓存存储器,所述高速缓存存储器生成基于所述保护状态的保护信号。
28.如权利要求27的系统,其特征在于,所述保护信号将引起存储器访问干扰。
29.如权利要求22的系统,其特征在于,还包括第二缓冲器,所述第二缓冲器存储包含在数据访问请求中的虚拟地址和所述可寻址存储器的一部分的物理地址之间的转化信息。
CN2006100841661A 2005-03-31 2006-03-31 提供扩展的存储器保护 Expired - Fee Related CN1877547B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/095,719 US7673345B2 (en) 2005-03-31 2005-03-31 Providing extended memory protection
US11/095,719 2005-03-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2011100794873A Division CN102129410B (zh) 2005-03-31 2006-03-31 提供扩展的存储器保护

Publications (2)

Publication Number Publication Date
CN1877547A CN1877547A (zh) 2006-12-13
CN1877547B true CN1877547B (zh) 2011-05-11

Family

ID=37072190

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2006100841661A Expired - Fee Related CN1877547B (zh) 2005-03-31 2006-03-31 提供扩展的存储器保护
CN2011100794873A Expired - Fee Related CN102129410B (zh) 2005-03-31 2006-03-31 提供扩展的存储器保护

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2011100794873A Expired - Fee Related CN102129410B (zh) 2005-03-31 2006-03-31 提供扩展的存储器保护

Country Status (4)

Country Link
US (2) US7673345B2 (zh)
CN (2) CN1877547B (zh)
DE (1) DE102006015106B4 (zh)
TW (2) TWI342492B (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631249B2 (en) * 2005-10-14 2009-12-08 Microsoft Corporation Dynamically determining a buffer-stack overrun
US8019854B2 (en) * 2005-11-25 2011-09-13 Samsung Electronics Co., Ltd. System and method of providing information on computer memory use
US20070234330A1 (en) * 2006-03-01 2007-10-04 Microsoft Corporation Prevention of executable code modification
US7958320B2 (en) * 2006-12-05 2011-06-07 Intel Corporation Protected cache architecture and secure programming paradigm to protect applications
US8136091B2 (en) * 2007-01-31 2012-03-13 Microsoft Corporation Architectural support for software-based protection
US8645704B2 (en) * 2007-05-07 2014-02-04 Intel Corporation Protecting caller function from undesired access by callee function
US8261065B2 (en) * 2007-05-07 2012-09-04 Intel Corporation Protecting caller function from undesired access by callee function
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US8006055B2 (en) * 2008-03-04 2011-08-23 Microsoft Corporation Fine granularity hierarchiacal memory protection
US7831640B2 (en) * 2008-04-15 2010-11-09 Microsoft Corporation Using an overflow list to process mark overflow
US7860906B2 (en) 2008-05-28 2010-12-28 Microsoft Corporation Overflow per segment
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US10348753B2 (en) * 2009-08-31 2019-07-09 Vencore Labs, Inc. Detecting and evicting malicious vehicles in a vehicle communications network
US8522013B2 (en) * 2009-08-31 2013-08-27 Telcordia Technologies, Inc. System and methods to perform public key infrastructure (PKI) operations in vehicle networks using one-way communications infrastructure
US8775153B2 (en) * 2009-12-23 2014-07-08 Intel Corporation Transitioning from source instruction set architecture (ISA) code to translated code in a partial emulation environment
US9098700B2 (en) * 2010-03-01 2015-08-04 The Trustees Of Columbia University In The City Of New York Systems and methods for detecting attacks against a digital circuit
US8838935B2 (en) 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
US8789042B2 (en) * 2010-09-27 2014-07-22 Mips Technologies, Inc. Microprocessor system for virtual machine execution
US9417855B2 (en) 2011-09-30 2016-08-16 Intel Corporation Instruction and logic to perform dynamic binary translation
US8990546B2 (en) 2011-10-31 2015-03-24 Freescale Semiconductor, Inc. Data processing system with safe call and return
US9323533B2 (en) * 2011-12-29 2016-04-26 Intel Corporation Supervisor mode execution protection
US20150143071A1 (en) * 2011-12-30 2015-05-21 Ravi L. Sahita Memory event notification
WO2013156823A1 (en) 2012-04-20 2013-10-24 Freescale Semiconductor, Inc. Information processing device and method for protecting data in a call stack
GB2513727B (en) 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection
CN103632088A (zh) * 2012-08-28 2014-03-12 阿里巴巴集团控股有限公司 一种木马检测方法及装置
US9495305B1 (en) 2012-11-02 2016-11-15 David Fuchs Detecting pointer errors for memory protection
US9183161B2 (en) * 2012-12-28 2015-11-10 Intel Corporation Apparatus and method for page walk extension for enhanced security checks
US9858207B2 (en) 2013-02-06 2018-01-02 International Business Machines Corporation Page level key-based memory protection
US9171159B2 (en) 2013-02-28 2015-10-27 Intel Corporation Performing security operations using binary translation
KR101689984B1 (ko) * 2013-03-06 2016-12-26 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러, 프로그래머블 컨트롤러 시스템 및 실행 에러 정보 작성 방법
US20140283060A1 (en) * 2013-03-15 2014-09-18 Oracle International Corporation Mitigating vulnerabilities associated with return-oriented programming
US10061940B2 (en) 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
JP6273733B2 (ja) * 2013-09-20 2018-02-07 富士通株式会社 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
US20150113240A1 (en) * 2013-10-17 2015-04-23 International Business Machines Corporation Restricting access to sensitive data in system memory dumps
US9684608B2 (en) * 2014-10-28 2017-06-20 Intel Corporation Maintaining a secure processing environment across power cycles
US20160179520A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Method and apparatus for variably expanding between mask and vector registers
CN106155577B (zh) * 2015-04-23 2019-03-26 华为技术有限公司 扩展内存的访问方法、设备以及系统
US9823938B2 (en) 2015-06-18 2017-11-21 Intel Corporation Providing deterministic, reproducible, and random sampling in a processor
US20170109526A1 (en) * 2015-10-20 2017-04-20 Intel Corporation Systems and methods for providing anti-malware protection and malware forensics on storage devices
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
US10296464B2 (en) 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
US10565354B2 (en) * 2017-04-07 2020-02-18 Intel Corporation Apparatus and method for protecting content in virtualized and graphics environments
US10613864B2 (en) * 2018-03-16 2020-04-07 Texas Instruments Incorporated Processor with hardware supported memory buffer overflow detection
GB2572158B (en) 2018-03-20 2020-11-25 Advanced Risc Mach Ltd Random tag setting instruction
WO2019196721A1 (en) * 2018-04-11 2019-10-17 Beijing Didi Infinity Technology And Development Co., Ltd. Methods and apparatuses for processing data requests and data protection
US10809924B2 (en) * 2018-04-12 2020-10-20 Webroot Inc. Executable memory protection
US11176060B2 (en) * 2018-10-29 2021-11-16 Sternum Ltd. Dynamic memory protection
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
US10824560B2 (en) * 2019-02-18 2020-11-03 Nxp B.V. Using a memory safety violation indicator to detect accesses to an out-of-bounds or unallocated memory area
GB2591490B (en) * 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers
CN112000609B (zh) * 2020-07-03 2024-01-16 上海美仁半导体有限公司 芯片以及具有该芯片的家用电器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1447244A (zh) * 2003-04-03 2003-10-08 杭州中天微系统有限公司 一种设计在cpu里的侦测缓冲区溢出的方法
US6671785B2 (en) * 1997-02-27 2003-12-30 Intel Corporation Programming protection status indicators for flash memory
CN1585932A (zh) * 2001-11-13 2005-02-23 先进微装置公司 内存管理系统及依据线性地址的内存存取保密的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US44292A (en) * 1864-09-20 Improvement in riding-stirrups
US138263A (en) * 1873-04-29 Improvement in wagon-axle lubricators
DE19828056A1 (de) 1998-06-24 1999-12-30 Bosch Gmbh Robert Speicherüberwachungssystem
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
JP2003233534A (ja) 2002-02-07 2003-08-22 Hitachi Ltd メモリシステム
CA2425010C (en) * 2002-04-17 2013-11-19 Microsoft Corporation Saving and retrieving data based on public key encryption
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
RU2005115088A (ru) 2002-11-18 2006-01-20 Арм Лимитед (Gb) Управление доступом устройства к памяти
AU2003278350A1 (en) 2002-11-18 2004-06-15 Arm Limited Secure memory for protecting against malicious programs
US20050044292A1 (en) 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US20050138263A1 (en) 2003-12-23 2005-06-23 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671785B2 (en) * 1997-02-27 2003-12-30 Intel Corporation Programming protection status indicators for flash memory
CN1585932A (zh) * 2001-11-13 2005-02-23 先进微装置公司 内存管理系统及依据线性地址的内存存取保密的方法
CN1447244A (zh) * 2003-04-03 2003-10-08 杭州中天微系统有限公司 一种设计在cpu里的侦测缓冲区溢出的方法

Also Published As

Publication number Publication date
DE102006015106A1 (de) 2006-11-09
US8028341B2 (en) 2011-09-27
TW200708952A (en) 2007-03-01
DE102006015106B4 (de) 2011-04-07
TWI352289B (en) 2011-11-11
CN1877547A (zh) 2006-12-13
CN102129410A (zh) 2011-07-20
TW201042455A (en) 2010-12-01
TWI342492B (en) 2011-05-21
US7673345B2 (en) 2010-03-02
US20100050266A1 (en) 2010-02-25
US20060225135A1 (en) 2006-10-05
CN102129410B (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN1877547B (zh) 提供扩展的存储器保护
US10810309B2 (en) Method and system for detecting kernel corruption exploits
KR102435949B1 (ko) 컴퓨팅 장치의 메모리 내 페이지 접근 제어
US7069389B2 (en) Lazy flushing of translation lookaside buffers
KR100933820B1 (ko) 메모리 속성들을 사용하기 위한 기술
EP3746899B1 (en) Controlling guard tag checking in memory accesses
WO2021032943A1 (en) Capability write address tracking
CN110851836B (zh) 一种面向Meltdown攻击的主动防御方法
US6519684B1 (en) Low overhead method for selecting and updating an entry in a cache memory
US20230236925A1 (en) Tag checking apparatus and method
TWI787451B (zh) 用於資料處理的方法、設備、電腦程式、與儲存器媒體
CN101256480A (zh) 一种能够标记存储器中某些位置的处理器
TW202340955A (zh) 使用能力約束記憶體存取之技術
GB2616643A (en) Read-as-X property for page of memory address space
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术
JP2021532474A (ja) ガード・タグ紛失の取り扱い
CN112106029A (zh) 用于触发动作的装置和方法
Cashin Automated control of hardware and software-based fault isolation

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110511

Termination date: 20180331