CN101351774B - 将存储页面与程序相关联的页面着色的方法、装置和系统 - Google Patents

将存储页面与程序相关联的页面着色的方法、装置和系统 Download PDF

Info

Publication number
CN101351774B
CN101351774B CN2006800499121A CN200680049912A CN101351774B CN 101351774 B CN101351774 B CN 101351774B CN 2006800499121 A CN2006800499121 A CN 2006800499121A CN 200680049912 A CN200680049912 A CN 200680049912A CN 101351774 B CN101351774 B CN 101351774B
Authority
CN
China
Prior art keywords
page
color
access
instruction
program
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
CN2006800499121A
Other languages
English (en)
Other versions
CN101351774A (zh
Inventor
D·杜尔哈姆
R·萨希塔
D·拉森
R·亚瓦特卡
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 CN101351774A publication Critical patent/CN101351774A/zh
Application granted granted Critical
Publication of CN101351774B publication Critical patent/CN101351774B/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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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

Landscapes

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

Abstract

公开了用于将存储页面与程序相关联的页面着色的装置和方法。在一个实施例中,装置包括分页单元和访问存储器的接口。分页单元包括转换逻辑和比较逻辑。转换逻辑将第一地址转换成第二地址。第一地址由存储器中的第一页面中存储的指令来提供。该转换基于数据结构中的条目,并且该条目包括包含第二地址的存储器中的第二页面的基址。比较逻辑将第一页面的颜色与第二页面的颜色进行比较。第一页面的颜色指明第一页面与包括第一指令的第一程序的关联。数据结构条目还包括第二页面的颜色,以便指明第二页面与第一程序或第二程序的关联。

Description

将存储页面与程序相关联的页面着色的方法、装置和系统
技术领域
本公开涉及信息处理领域,特别是涉及存储器管理和保护领域。
背景技术
基于存储器的攻击是对信息处理系统的安全性的重大威胁。部分这类攻击涉及将例如病毒或蠕虫等恶意代码或者恶意数据存储在计算机系统的存储器中,然后在运行合法程序的同时,利用程序缺陷和/或缓冲器溢出来把控制权转移给恶意代码或者使用恶意数据。防止这种类型的攻击的一种方法是在页表条目中包含“执行禁用”位,它可用来指定将数据存储为不可执行的页面,使得恶意代码不能作为数据存储并且随后在相同的物理、线性或逻辑存储空间中执行。但是,基于存储器的攻击技术变得越来越复杂,可能期望防止这类攻击的附加方式。这包括防止执行现有代码或破坏存储器的缓冲器溢出、恶意核心或应用组件、rootkit、间谍软件、特洛伊木马和计算机病毒。它还包括防止例如失控指针等有错误(buggy)代码以及破坏线性地址空间中的其它程序或子程序中的数据的应用编程接口误用。
发明内容
按照本发明的第一方面,提供了一种用于将存储页面与程序相关联的页面着色的装置,包括:访问存储器的接口;以及分页单元,所述分页单元包括:转换逻辑电路,根据数据结构中的条目将第一地址转换成第二地址,其中所述第一地址由所述存储器中的第一页面中存储的指令来提供,并且所述条目包括包含所述第二地址的所述存储器中的第二页面的基址;比较逻辑电路,将所述第一页面的颜色与所述第二页面的颜色进行比较,其中,所述第一页面的颜色指明所述第一页面与包括所述第一指令的第一程序的关联,并且所述条目还包括所述第二页面的颜色,以便指明所述第二页面与所述第一程序和第二程序这两者其中之一的关联;以及访问逻辑电路,利用来自比较逻辑电路的结果阻止或允许所述指令访问所述第二页面。
按照本发明的第二方面,提供了一种用于将存储页面与程序相关联的页面着色的方法,包括:将第一页面的颜色与第二页面的颜色进行比较;以及根据比较结果,阻止或允许来自第一页面的指令访问第二页面。
按照本发明的第三方面,提供了一种用于将存储页面与程序相关联的页面着色的方法,包括:将存储器管理例程的一部分加载到存储器中的第一页面;在所述存储器中的第二页面中创建页表;将所述第一页面和所述第二页面的颜色设置为多个颜色其中之一;将应用程序的一部分加载到所述存储器中的第三页面;以及将所述第三页面的颜色设置为所述多个颜色中的另一个以阻止所述存储器管理例程的一部分访问所述第三页面。
按照本发明的第四方面,提供了一种用于将存储页面与程序相关联的页面着色的系统,包括:动态随机存取存储器;以及耦合到所述存储器的处理器,包括分页单元,该分页单元具有:转换逻辑电路,根据数据结构中的条目将第一地址转换成第二地址,其中所述第一地址由所述存储器中的第一页面中存储的指令来提供,并且所述条目包括包含所述第二地址的所述存储器中的第二页面的基址;比较逻辑电路,将所述第一页面的颜色与所述第二页面的颜色进行比较,其中,所述第一页面的颜色指明所述第一页面与包括所述第一指令的第一程序的关联,并且所述条目还包括所述第二页面的颜色,以便指明所述第二页面与所述第一程序和第二程序这两者其中之一的关联;以及访问逻辑电路,利用来自比较逻辑电路的结果阻止或允许所述指令访问所述第二页面。
附图说明
通过附图、作为实例而不是限制来说明本发明。
图1示出包括用于将存储页面与程序相关联的页面着色(page coloring)的逻辑的处理器方面的本发明的一实施例。
图2示出用于初始化将存储页面与程序相关联的页面着色的方法方面的本发明的一实施例。
图3示出用于将存储页面与程序相关联的页面着色的方法方面的本发明的一实施例。
具体实施方式
以下说明书描述用于将存储页面与程序及其相关数据相关联的页面着色的技术的实施例。在以下描述中,阐明例如处理器和系统配置等大量具体细节,以便提供对本发明的充分理解。然而,本领域的技术人员会理解,即使没有这类具体细节,也可实施本发明。此外,没有详细说明一些公知的结构、电路等,以免不必要地影响对本发明的理解。
本发明的实施例提供向待用于将特定页面与特定程序和数据相关联的存储页面分配属性。可根据任何方式,例如通过基于操作系统策略的操作系统映射器(mapper),或者通过基本输入/输出系统、虚拟机监控器或者可实施本发明的系统上的任何其它管理实体,来分配属性。
属性称作页面“颜色”,并且可用于以足够细以便阻止一个程序访问另一个程序的存储空间、或者甚至阻止单个程序的部分访问同一个程序的其它部分的存储空间这样的粒度来对存储器进行逻辑划分。可在现有的基于页面的存储器管理数据结构、虚拟化技术所使用的嵌套的基于页面的存储器管理数据结构以及与现有数据结构相关的并行访问数据结构中实现根据本发明的实施例的技术,使得本发明的实施例的使用不会因检索颜色信息的附加存储器访问而使性能降低。其它技术可包括并行页表结构,其中包括页面颜色属性,每当从存储器中取出对应页表条目时,从存储器中检索并行页表结构并将其加载到它们的关联转换后备缓冲器(“TLB”)硬件中。
图1示出包括用于将存储页面与程序相关联的页面着色的逻辑的处理器、即处理器110方面的本发明的一实施例。在系统100中示出处理器110,该系统还包括存储器120。
处理器110可以是各种不同类型的处理器的任一个,例如处理器系列、
Figure GSB00000352067200042
处理器系列、或者来自Intel Corporation的其它处理器系列、或者任何其它通用处理器或来自另一个公司的其它处理器中的一个处理器。虽然图1示出在处理器中实施的本发明,但是备选地,本发明可在任何其它类型的数据处理组件或装置中实施。在图1的实施例中,处理器110包括接口112和分页单元130。
接口112可以是总线单元或者任何其它单元、端口或接口,它允许处理器通过任何类型的总线、点对点或其它连接、直接或者通过例如芯片组或存储控制器等任何其它组件来与存储器120进行通信。
分页单元130包括转换逻辑132、比较逻辑134和访问逻辑136。转换逻辑将执行地址转换,下面进行描述。比较逻辑将比较页面颜色,下面进行描述。访问逻辑136将根据页面颜色来阻止或允许对特定页面的访问,下面进行描述。
转换逻辑132根据任何已知的基于页面的存储器管理技术来执行地址转换,例如逻辑或线性地址到物理地址的转换。为执行地址转换,转换逻辑132引用处理器110、存储器120、图1未示出的、系统100的任何其它存储位置和/或这些组件和位置的任何组合中存储的一个或多个数据结构。数据结构可包括按照
Figure GSB00000352067200043
处理器系列的架构、根据本发明的实施例进行修改的页面目录和页表、和/或TLB中存储的表。
在一个实施例中,转换逻辑132接收将由处理器110执行的指令所提供的和/或由处理器110取出的数据的线性地址。转换逻辑132使用线性地址的部分作为对分级表、包括页表的索引。页表包含条目,各包括存储器120中的页面的基址的字段,例如按照
Figure GSB00000352067200051
处理器系列的扩展存储器64技术的页表条目的位39∶12。在本发明的范围之内可使用任何页面大小(例如4千字节)。因此,可将由程序用于访问存储器120的线性地址转换成处理器110用于访问存储器120的物理地址。
比较逻辑134将转换逻辑132找到的页面的页面颜色与包含提供待取出的指令或数据的线性地址的指令的页面的页面颜色进行比较。可按照任何已知方法来执行比较。页面颜色是转换逻辑132用来执行地址转换的数据结构中的条目中存储的值所表示的页面的属性。例如,可通过页表条目中的八位字段、如按照
Figure GSB00000352067200052
处理器系列的扩展存储器64技术的页表条目的位47∶40来表示页面颜色。因此,页面的颜色值可以是256个值的任一个,与通过使用八位字段来提供对256条目颜色表的索引来定义图形显示中的像素的颜色值相似。
访问逻辑136使用来自比较逻辑136的结果来阻止或允许指令使用线性地址来访问转换逻辑134所找到的物理页面。在一个实施例中,当与包含指令的页面的页表条目相关联的页面颜色和与转换逻辑134所找到的页面的页表条目相关联的页面颜色相同时,访问逻辑136可允许访问,而当这些页面颜色不同时,则阻止访问。访问逻辑136可通过触发页面错误异常来阻止访问。
因此,操作系统或其它监控程序可向一个程序加载到存储器中的所有页面分配某个页面颜色,并向另一个程序加载到存储器中的所有页面分配不同的页面颜色,依此类推,使得一个程序不可访问与另一个程序相关联的页面,即使两个程序都驻留在同一个线性或逻辑地址空间中。还可向单个程序的不同部分分配不同的页面颜色,使得只可使用特殊函数调用或者通过程序中的特定入口点来访问关键程序组件或数据结构。
访问逻辑136可根据附加标准来确定是否允许访问。例如,一个颜色值(例如0x00)可表示“无颜色”,使得标记为无颜色的页面可由任何其它页面来访问。页表条目还可包括字段或位,例如按照
Figure GSB00000352067200061
处理器系列的扩展存储器64技术的页表条目的位48,它定义是否“隐藏”页面。该位可设置为零,以便允许具有除隐藏页面的颜色之外的某个颜色的任何页面从所引用隐藏页面中进行读取,而不管颜色比较的结果;或者该位可设置为一,以便使访问逻辑136能够在颜色比较失配时阻止或读取访问。
访问逻辑136还可根据指令控制流来确定是否允许访问。例如,指令可用于标记对程序的容许入口点。在按照
Figure GSB00000352067200062
处理器系列架构的一个实施例中,可为此添加新指令(例如“直接地址向量”即“DAV”指令)。如果执行从一个颜色的页面到另一个颜色的页面中的DAV指令的跳转、调用或其它控制流指令,则将允许访问。但是,如果跳转或调用是针对另一个颜色的页面而不是针对DAV指令,则不允许访问。因此,DAV指令可用于仅允许在可提供由软件编制人员所控制的已定义安全接口的预计点上进入程序。从另一个颜色的程序对某个程序的随机或非预计部分的跳转或调用可由处理器标记为异常。DAV指令还可使用可变参数来执行颜色比较,以便确定预计颜色的程序是否正尝试访问实现DAV标识入口点的程序。最后,可以仅在可执行(例如不是使用按照
Figure GSB00000352067200063
处理器系列架构的XD位的eXecute Disabled)的页面中执行DAV指令,从而确保不会由处理器执行具有看起来是DAV指令的伪造位序列的数据页面。
在另一个实施例中,可将页面指定为“过渡(transition)”页面。过渡页面可允许从其中取指令,但仅以特定周期偏移量进行。“过渡页面位”可通过其页表条目来定义并与任何颜色的页面相关联。这样一种过渡位可向处理器指明,关联颜色的页面可通过特定的字对齐(alignment)来过渡到不同颜色的页面。因此,任何着色的页面可成为充当到相同颜色的其它页面的“门(gate)”的过渡页面。例如,控制流仅在过渡页面中的特定点、如每隔64字节才可从其它颜色的页面转移到过渡页面。不是对于64字节对齐的、进入过渡页面的控制流转移可触发页面错误,同时可执行对过渡页面上的64字节对齐指令的跳转和调用。过渡页面的入口点的实际对齐可以是通过规定对齐要求的受保护处理器寄存器可配置的。由于处理器确保仅在特定点才可进入过渡页面而不会触发页面错误,因此,可将代码插入这些入口点之间,以便执行针对前一个页面颜色寄存器的适当颜色测试(下面进行描述),然后在访问控制测试证明是可接受时过渡到不同颜色的页面。类似地,入口点之后的代码可保存状态、例如来自并行受保护堆栈中的堆栈的返回地址,因此,又可通过过渡页面来重定向来自随后被调用页面的返回。这样,来自不同颜色的函数的传统调用和返回可由过渡页面作为桥梁,以避免页面错误,同时检验正确的控制流。
访问逻辑136还可用来实现特殊着色技术。在一个实施例中,可为被允许跳转到或调用另一个颜色的程序的任何部分的操作系统组件分配特殊页面颜色(例如0xFF)。访问逻辑136始终可允许来自这个颜色的页面的跳转或调用指令。这个颜色可由操作系统调度器和中断服务例程用来允许它们自中断点重新开始被中断程序的执行,而不会引起页面错误。这个颜色的页面可以没有对另一个颜色的页面的写访问权或者对另一种颜色的隐藏页面的读访问权。当这个特殊页面颜色的页面执行时,处理器可以不改变前一个页面颜色寄存器(下面进行描述),并且特殊页面颜色的页面可具有在返回到被中断程序之前使前一个页面颜色寄存器恢复到预计值的能力。
在另一个实施例中,特殊颜色可用于监控页面(supervisor page),它们具有对其它颜色的页面的完全读和写访问权。这些特殊颜色可由操作系统组件用来检验其它程序,并在需要时修改它们的内容。其它颜色可与对受限处理器寄存器、受限处理器指令或高级可编程中断控制器(“APIC”)关联存储器位置的访问权相关联。只有标记特权颜色的程序才能够访问与特权颜色相关联的受限处理器功能。处理器可提供配置寄存器,以便设置这个特殊颜色,例如作为操作系统启动序列的组成部分。
在另一个实施例中,如上所述,可以不保护标记为无颜色的页面免受其它颜色的页面或者无颜色的其它页面的访问。但是,被分配某个颜色的页面可以不是无颜色的页面可进行写、跳转或调用访问的。
另外,访问逻辑136还可报告页面错误是由页面颜色失配还是由违规(violation)引起的。例如,页面错误代码中的位(例如按照
Figure GSB00000352067200081
处理器系列架构、推送到堆栈的页面错误代码的位5)可被指定为页面颜色违规位,被设置为一以指明页面错误由颜色失配所触发。可在其它标志的上下文中解释这个位。例如,如果页面颜色违规是由取指令所引起,则错误代码中的取指令位可设置为一。如果页面颜色违规是由读或写所引起,则读/写位对于读可设置为零、或者对于写可设置为一。此外,按照
Figure GSB00000352067200082
处理器系列架构,引起错误的线性地址可保存在例如处理器的CR2控制寄存器中。
处理器110还可包括只读寄存器140或者其它存储位置,以便支持从一个程序到另一个程序的过渡,如以上使用DAV指令所描述的。在一个实施例中,这个寄存器可称作“前一个页面颜色”或“PPC”寄存器。当处理器110开始从与当前执行的指令不同颜色的页面取指令时,访问逻辑136可检测页面颜色的失配。访问逻辑136可按照如上所述的DAV指令协议来允许这个取,并允许改变页面颜色,但将前一个页面颜色保存在PPC寄存器140中。因此,来自新页面的指令可查询PPC寄存器140,以便确定前一个页面颜色,使得程序可通过确定在特定DAV定义入口点上允许不同颜色的哪些程序访问当前执行的程序,来控制对它们的服务的访问。特殊颜色的页面所引起的过渡可以不存储在PPC寄存器140中,因此,操作系统调度器引起的过渡无需表示为页面颜色过渡,而是表示为中断和返回。
在图1中,存储器120可以是静态或动态随机存取存储器、基于半导体的只读或闪速存储器、磁或光盘存储器、处理器120可读的任何其它类型的介质、或者这类介质的任何组合。
图2示出用于初始化将存储页面与程序相关联的页面着色的方法、即方法200方面的本发明的一实施例。在框210,操作系统加载器将存储器分配例程加载到存储器中,并在存储器中创建全部具有第一颜色的页表结构,使得存储器分配例程可为随后加载的例程和程序设置个体的(individual)页面颜色,同时保护存储器管理器和页表免受这些其它例程和程序的访问,即使这些其它例程和程序以与存储器管理器相同的特权级运行。在框220,调度器被加载并着色为0xFF,以便允许它跳转到或调用任何其它程序、调度线程和多任务。此外,这个特殊颜色的页面可由操作系统配置成无需DAV指令就能与传统程序接口挂钩(hook),以便保护传统程序,并确保传统程序和子程序之间的正确控制流。这些附加页面可使用PPC寄存器140、代表传统程序来执行必要的入口点访问控制。
在框230,操作系统的不同组件被加载到存储器中,并被分配不同的页面颜色。例如,驱动程序可从磁盘被加载,通过验证供应商签名来进行完整性校验,并且当它们被加载到存储器中时,被分配页面颜色以保护它们免受其它核心组件的访问。然后,驱动程序可分配与它自己相同颜色的存储器。
在框240,应用程序被加载到存储器中,并被分配不同的页面颜色。在对页面着色时,操作系统的不变的应用编程接口可允许程序在给定其它程序的签名和验证图像的情况下查询其它程序的颜色。数据结构可共享为其它颜色的程序可读的,但仅在页面没有标记为隐藏时才能这样。这样,可构造单向先进先出缓冲器,使得存在数据的单个写入器和多个读取器。
一个颜色的页面的拥有者还能够向操作系统请求,在原始程序已经完成对那个页面的写入之后,将它的页面颜色之一改变成另一个程序的颜色。这样,通过发信号通知操作系统的不变组件、如存储器管理器,可转换页面的所有权。这个请求可由操作系统安全地处理,只要改变所有权(改变颜色)的页面是仅包含不可执行数据的eXecute Disabled(设置了XD位),使得在颜色改变之后,内容不能随后由另一个颜色的程序来执行。
还可同时对页面分配多个颜色,或者个体的页面可分为多个颜色的区域。这可通过允许页表条目规定与页面中的这样一种颜色的开始和结束范围相关联的多个颜色和偏移量来实现。例如,页表条目可规定物理页面的两个颜色以及规定相对于页面开始的第一颜色停止而第二颜色开始的位置的偏移量。通过对调用者的堆栈结构着以一种颜色而对被调用者的堆栈结构着以另一种颜色来使调用者的堆栈变量是被调用者不可访问的,软件可使用这种性质来保护调用者的调用栈免受被调用者访问。这样,调用者的堆栈结构将是被调用者不可破坏的,即使调用者和被调用者的堆栈结构都包含在单个页面中。类似地,可使用每个页面多个颜色及其关联范围、以不同方式对驻留在同一页面上的相邻程序着色。
图3示出用于将存储页面与程序相关联的页面着色的方法、即方法300方面的本发明的一实施例。在框310,指令尝试访问存储器中的页面。在框312,将该页面加载到TLB中,并表示该页面的颜色和许可。在框320,确定该页面是否被着色(例如颜色值不是0x00)。如果未被着色,则在框390,允许对页面的访问。
如果在框320,页面被着色,则在框322,确定该页面是否为包含该指令的页面。如果是,则在框390,允许对页面的访问。如果不是,则在框324,确定该访问是否为写入。
如果在框324,该访问为写入,则在框350,确定该页面是否与包含访问指令的页面颜色相同。如果不是,则在框352,通过触发页面错误来阻止访问。如果是,则在框390,允许对该页面的访问。
如果在框324,访问不是写入,则在框330,确定页面访问是否起因于取指令。如果不是,则在框332,确定该访问是否为读取。如果该访问为读取,则在框334,确定该页面的隐藏位是否被设置。如果该隐藏位未被设置,则在框390,允许对该页面的访问。如果隐藏位被设置,则在框350,确定该页面是否与包含访问指令的页面颜色相同。如果不是,则在框352,通过触发页面错误来阻止访问。如果是,则在框390,允许对该页面的访问。
回到框330,如果页面访问起因于取指令,则在框340,检查包含取指令的页面的颜色,以确定是否允许它跳转到或调用另一个颜色的页面(例如它的颜色为0xFF)。如果是,则在框390,允许对该页面的访问。如果不是,则在框342,确定取出指令是否为DAV指令、或者该访问是否针对过渡页面中的容许入口点。如果是,则在框344,将取指令的页面颜色保存在PPC寄存器中,并且在框390,允许对该页面的访问。如果不是,则在框350,确定该页面是否与包含访问指令的页面颜色相同。如果不是,则在框352,通过触发页面错误来阻止访问。如果是,则在框390,允许对该页面的访问。
在本发明的范围之内,可按照不同顺序、以同时执行所示框、省略所示框、添加附加框或者重排序、组合、省略或附加框的组合来执行方法200和300。
处理器110或者根据本发明的一实施例设计的任何其它处理器或组件可在从创建到模拟到制造的各个阶段中进行设计。表示设计的数据可通过多种方式来表示设计。首先,如在模拟中可用的那样,硬件可采用硬件描述语言或者另一种功能描述语言来表示。作为附加或备选的方案,采用逻辑和/或晶体管门电路的电路级模型可在设计过程的部分阶段中产生。此外,在某个阶段,大部分设计达到某个水平,在该水平上,所述大部分设计可采用表示各种装置的物理布置的数据来建模。在使用传统半导体制造技术的情况中,表示装置布置模型的数据可能是规定在用于生产集成电路的掩模的不同掩模层上的各种特征是否存在的数据。
在设计的任何表示中,数据可存储在任何形式的机器可读介质中。经调制或者以其它方式产生以便传送这种信息的光或电波、存储器或者磁或光存储装置、如磁盘或光盘可以是机器可读介质。这些介质的任一个可“携带”或“指明”该设计或者在本发明的一实施例中使用的其它信息、如差错恢复例程中的指令。传送指明或携带信息的电载波达到执行电信号的复制、缓冲或重传的程度时,就会产生新的副本。因此,通信提供商或网络提供商的行为可以是制作包含本发明的技术的产品、如载波的副本。
这样,公开了用于将存储页面与程序相关联的页面着色的技术。虽然在附图中描述和示出某些实施例,但是要理解,这些实施例只是对宽泛的本发明的解释而不是限制,并且本发明不限于所示及所述的具体构造和配置,因为本领域的技术人员在研究本公开之后会想到其它各种修改。在成长迅速并且不易预见未来发展的例如这样的技术的领域中,通过实现技术进步来促进,在不背离本公开的原理或所附权利要求书的范围的前提下,所公开的实施例可易于在配置和细节上进行修改。

Claims (21)

1.一种用于将存储页面与程序相关联的页面着色的装置,包括:
访问存储器的接口;以及
分页单元,所述分页单元包括:
转换逻辑电路,根据数据结构中的条目将第一地址转换成第二地址,其中所述第一地址由所述存储器中的第一页面中存储的指令来提供,并且所述条目包括包含所述第二地址的所述存储器中的第二页面的基址;
比较逻辑电路,将所述第一页面的颜色与所述第二页面的颜色进行比较,其中,所述第一页面的颜色指明所述第一页面与包括所述第一指令的第一程序的关联,并且所述条目还包括所述第二页面的颜色,以便指明所述第二页面与所述第一程序和第二程序这两者其中之一的关联;以及
访问逻辑电路,利用来自比较逻辑电路的结果阻止或允许所述指令访问所述第二页面。
2.如权利要求1所述的装置,其中,如果所述第一页面的颜色和所述第二页面的颜色不同,则所述访问逻辑电路阻止所述指令访问所述第二页面。
3.如权利要求2所述的装置,其中,所述访问逻辑电路通过触发页面错误异常来阻止所述指令访问所述第二页面。
4.如权利要求1所述的装置,其中,如果所述第二页面的颜色设置成指明所述第二页面未被着色,则所述访问逻辑电路允许所述指令访问所述第二页面。
5.如权利要求1所述的装置,其中,如果所述访问为读访问,并且所述条目还包括关于所述第二页面未被隐藏的指示,则所述访问逻辑电路允许所述指令访问所述第二页面。
6.如权利要求1所述的装置,其中,如果所述访问为跳转到和调用所述第二页面内的容许入口点指令这两者其中之一,则所述访问逻辑电路允许所述指令访问所述第二页面。
7.如权利要求1所述的装置,其中,如果所述指令是跳转和调用指令这两者其中之一,并且所述第一页面的颜色设置成指明允许从所述第一页面到与所述第一页面的颜色不同颜色的页面的跳转和调用,则所述访问逻辑电路允许所述指令访问所述第二页面。
8.如权利要求3所述的装置,其中,所述访问逻辑电路还通过错误代码将阻止所述指令访问所述第二页面报告为页面颜色违规。
9.如权利要求1所述的装置,还包括存储位置,如果所述指令为跳转到和调用指令这两者其中之一,并且允许所述跳转和所述调用这两者其中之一,则所述存储位置存储所述第一页面的颜色。
10.如权利要求1所述的装置,其中,如果所述访问针对与所述第二页面的边界预定对齐的点,并且所述条目还包括关于允许在所述点对所述第二页面进行访问的指示,则所述访问逻辑电路允许所述指令访问所述第二页面。
11.一种用于将存储页面与程序相关联的页面着色的方法,包括:
将第一页面的颜色与第二页面的颜色进行比较;以及
根据比较结果,阻止或允许来自第一页面的指令访问第二页面。
12.如权利要求11所述的方法,还包括:如果所述第一页面的颜色与所述第二页面的颜色相同,则允许来自所述第一页面的指令访问所述第二页面。
13.如权利要求11所述的方法,还包括:如果所述第一页面的颜色与所述第二页面的颜色不同,则阻止所述指令访问所述第二页面。
14.如权利要求11所述的方法,还包括:如果所述第二页面未被着色,则允许所述指令访问所述第二页面。
15.如权利要求11所述的方法,还包括:如果所述访问是读访问,所述第一页面的颜色与所述第二页面的颜色不同,并且所述第二页面被隐藏,则阻止所述指令访问所述第二页面。
16.如权利要求11所述的方法,还包括:如果所述访问是跳转和调用这两者其中之一,并且所述第一页面的颜色设置成指明允许从所述第一页面到与所述第一页面的颜色不同颜色的页面的跳转和调用,则允许所述指令访问所述第二页面。
17.如权利要求16所述的方法,还包括:
将调度器的一部分加载到所述第一页面中;
将所述第一页面的颜色设置成指明允许从所述第一页面到与所述第一页面的颜色不同颜色的页面的跳转。
18.如权利要求11所述的方法,还包括:如果所述访问是对容许入口点的取指令,则允许所述指令访问所述第二页面。
19.如权利要求11所述的方法,还包括:参考页表以查找所述第二页面的颜色。
20.一种用于将存储页面与程序相关联的页面着色的方法,包括:
将存储器管理例程的一部分加载到存储器中的第一页面;
在所述存储器中的第二页面中创建页表;
将所述第一页面和所述第二页面的颜色设置为多个颜色其中之一;
将应用程序的一部分加载到所述存储器中的第三页面;以及
将所述第三页面的颜色设置为所述多个颜色中的另一个以阻止所述存储器管理例程的一部分访问所述第三页面。
21.一种用于将存储页面与程序相关联的页面着色的系统,包括:
动态随机存取存储器;以及
耦合到所述存储器的处理器,包括分页单元,该分页单元具有:
转换逻辑电路,根据数据结构中的条目将第一地址转换成第二地址,其中所述第一地址由所述存储器中的第一页面中存储的指令来提供,并且所述条目包括包含所述第二地址的所述存储器中的第二页面的基址;
比较逻辑电路,将所述第一页面的颜色与所述第二页面的颜色进行比较,其中,所述第一页面的颜色指明所述第一页面与包括所述第一指令的第一程序的关联,并且所述条目还包括所述第二页面的颜色,以便指明所述第二页面与所述第一程序和第二程序这两者其中之一的关联;以及
访问逻辑电路,利用来自比较逻辑电路的结果阻止或允许所述指令访问所述第二页面。
CN2006800499121A 2005-12-30 2006-12-21 将存储页面与程序相关联的页面着色的方法、装置和系统 Expired - Fee Related CN101351774B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,446 US9390031B2 (en) 2005-12-30 2005-12-30 Page coloring to associate memory pages with programs
US11/323,446 2005-12-30
PCT/US2006/048940 WO2007079011A2 (en) 2005-12-30 2006-12-21 Page coloring to associate memory pages with programs

Publications (2)

Publication Number Publication Date
CN101351774A CN101351774A (zh) 2009-01-21
CN101351774B true CN101351774B (zh) 2011-04-20

Family

ID=38093456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800499121A Expired - Fee Related CN101351774B (zh) 2005-12-30 2006-12-21 将存储页面与程序相关联的页面着色的方法、装置和系统

Country Status (5)

Country Link
US (1) US9390031B2 (zh)
JP (1) JP4759059B2 (zh)
KR (1) KR20080072952A (zh)
CN (1) CN101351774B (zh)
WO (1) WO2007079011A2 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US7512768B2 (en) * 2006-07-21 2009-03-31 Intel Corporation Dynamically sharing a stack between different code segments
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8671248B2 (en) * 2007-01-05 2014-03-11 International Business Machines Corporation Architecture support of memory access coloring
US7895392B2 (en) * 2007-01-05 2011-02-22 International Business Machines Color-based cache monitoring
US8799581B2 (en) * 2007-01-05 2014-08-05 International Business Machines Corporation Cache coherence monitoring and feedback
JP2009104555A (ja) * 2007-10-25 2009-05-14 Intel Corp Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
KR101671494B1 (ko) 2010-10-08 2016-11-02 삼성전자주식회사 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
KR101179275B1 (ko) 2011-05-04 2012-09-03 성균관대학교산학협력단 메모리 관리 장치 및 방법
CN102663115B (zh) * 2012-04-16 2015-01-14 中国人民大学 基于页面染色技术的内存数据库访问优化方法
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
EP3044719B1 (en) 2013-09-12 2019-08-28 Virsec Systems Inc. Automated runtime detection of malware
CN104572493A (zh) 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
US9785558B2 (en) * 2013-10-29 2017-10-10 Hua Zhong University Of Science Technology Mixed cache management
US9632832B2 (en) * 2014-02-27 2017-04-25 Empire Technology Development Llc Thread and data assignment in multi-core processors based on cache miss data
CA2953793C (en) 2014-06-24 2021-10-19 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
WO2015200508A1 (en) 2014-06-24 2015-12-30 Virsec Systems, Inc Automated root cause analysis of single or n-tiered applications
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
EP3472746B1 (en) 2016-06-16 2020-05-13 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
US20180024944A1 (en) * 2016-07-22 2018-01-25 Qualcomm Incorporated Methods and apparatus for access control in shared virtual memory configurations
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
US10686605B2 (en) 2017-09-29 2020-06-16 Intel Corporation Technologies for implementing mutually distrusting domains
GB2570691B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
US20030023824A1 (en) * 2001-07-26 2003-01-30 International Business Machines Corporation NUMA page selection using coloring
CN1417649A (zh) * 2001-11-09 2003-05-14 佳能株式会社 具有多个图像载置体的图像形成装置
CN1573585A (zh) * 2003-05-29 2005-02-02 施乐公司 为串联式印刷机有效地产生并提供图像数据的系统和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3916385A (en) 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware
FR2547945B1 (fr) * 1983-06-21 1986-05-02 Raffinage Cie Francaise Nouvelle structure de cable electrique et ses applications
IN165278B (zh) 1984-09-21 1989-09-09 Digital Equipment Corp
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
CA2029628A1 (en) 1989-11-13 1991-05-14 Anantakotirajv Vagesna Translation look aside buffer with parallel exception checking and update bypass
JPH03244054A (ja) 1990-02-21 1991-10-30 Nec Corp 記憶保護方式
JP3454854B2 (ja) * 1992-01-16 2003-10-06 株式会社東芝 メモリ管理装置及び方法
JPH09512122A (ja) * 1994-04-22 1997-12-02 ゲーエムデー−フォルシュングスツェントルム インフォルマチオンシュテクニク ゲーエムベーハー データ記憶用キャッシュ記憶装置
DE19611311A1 (de) 1996-03-22 1997-09-25 Dyneon Gmbh Schichtstoff
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
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
US20030023824A1 (en) * 2001-07-26 2003-01-30 International Business Machines Corporation NUMA page selection using coloring
CN1417649A (zh) * 2001-11-09 2003-05-14 佳能株式会社 具有多个图像载置体的图像形成装置
CN1573585A (zh) * 2003-05-29 2005-02-02 施乐公司 为串联式印刷机有效地产生并提供图像数据的系统和方法

Also Published As

Publication number Publication date
JP4759059B2 (ja) 2011-08-31
JP2009516310A (ja) 2009-04-16
US20070157003A1 (en) 2007-07-05
WO2007079011A3 (en) 2007-11-22
US9390031B2 (en) 2016-07-12
WO2007079011A2 (en) 2007-07-12
CN101351774A (zh) 2009-01-21
KR20080072952A (ko) 2008-08-07

Similar Documents

Publication Publication Date Title
CN101351774B (zh) 将存储页面与程序相关联的页面着色的方法、装置和系统
TWI769595B (zh) 用以保護影子堆疊之處理器、方法、系統和指令
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
US11875180B2 (en) Systems and methods for stalling host processor
CN103080871B (zh) 用于解决计算机系统中的资源管理和安全性的系统及方法
US20220374415A1 (en) Systems and methods for updating metadata
TW201721438A (zh) 用於管理有界指標的裝置和方法
CN104025041B (zh) 管理员模式执行保护
EP3864555B1 (en) Verifying a stack pointer
US9158710B2 (en) Page coloring with color inheritance for memory pages
US20220129343A1 (en) Systems and methods for reducing exception latency
WO2019237866A1 (zh) 一种运行时访问控制方法及计算装置
JP2023038361A (ja) 命令セット内の変更を制御する装置及び方法
Allievi et al. Windows Internals, Part 2
US10884831B2 (en) Composable system
Liu et al. A buffer overflow detection and defense method based on RISC-V instruction set extension
WO2019237864A1 (zh) 一种安全用户架构及权限控制方法
CN100465980C (zh) 通过进程行为的配伍禁忌提高操作系统安全性的方法
DE112021005699T5 (de) Hardware-verifizierung von dynamisch erzeugtem code
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法
TW202416122A (zh) 用以保護影子堆疊之處理器、方法、系統和指令

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: 20110420

Termination date: 20181221