保护系统管理模式(smm)空间免受高速缓存攻击的制作方法

文档序号:6461161阅读:177来源:国知局
专利名称:保护系统管理模式(smm)空间免受高速缓存攻击的制作方法
保护系统管理模式(s薩)空间免受高速緩存攻击背景技术计算机系统通常包括处理器、芯片组、存储器以及i/o设备。处理器可以运行于普通模式和受保护模式,所述受保护模式例如系统管理模式(SMM)。 SMM允许系统开发者以对于操作系统(OS)和其 它应用程序透明的方式提供例如功率管理或者安全性等功能。称作系 统管理中断(SMI)的硬件中断可以促使处理器进入SMM。在接收到SMI之后,处理器可以在执行例如SMI处理程序的软 件例程之前,将称为"上下文(context)"的当前执行状态存储到系 统管理随机存取存储器(SMRAM)。 SMRAM可以包括称为SMM空 间的预先指定的存储器区域。当处理器运行于SMM时,入侵者可以 在可能对应于SMI处理程序的地址处写入一段恶意代码。这种高速 缓存攻击的后果就是这段恶意代码可能控制处理器。


以实例的方式而不是以附图进行限制的方式,示出了本文所描述 的发明。为了说明的简便和清楚,附图中所示元件未必按比例进行绘 制。例如,为了清楚,将某些元件的大小相对于其它元件而进行放大。 此外,在认为适当的地方,将参考标签在附图中重复使用,以指示相 应或者类似的元件。图1示出计算机系统100的一个实施例。图2示出保护SMM空间免受高速缓存攻击的计算机系统100的 一个实施例。
具体实施方式
以下描述说明了一种用于保护SMM空间免受高速缓存攻击的机6制。在以下描述中,为了提供对本发明的更透彻的理解,阐述了大量 具体细节,例如逻辑实现方式、资源划分或共享或复制实现方式、系 统组件的类型和相互关系、以及逻辑划分或组合选择。但是,本领域 技术人员将会理解,可以在没有这些具体细节的情况下实现本发明。 在其它情况下,为了避免使本发明变得不够明确,并未详细示出控制 结构、门级电路以及全软件指令序列。通过本文所包含的描述,本领 域技术人员无需过多的实验就能够实现适当的功能。说明书中对于"一个实施例"、"实施例"、"示例性实施例"的引 用指示所描述的实施例可以包括特定的特征、结构或特性,但是,不 必每个实施例都包括该特定的特征、结构或特性。此外,这种术语未 必涉及同一个实施例。此外,当结合一个实施例描述特定的特征、结 构或特性时,认为其位于本领域技术人员结合其它明确描述或未明确 描述的实施例来应用这种特征、结构或特性的知识范围内。本发明的实施例可以实现在硬件、固件、软件或者其任意组合中。 本发明的实施例还可以实现为存储于机器可读介质上的指令,所述指 令可以由一个或多个处理器读取和执行。机器可读介质可以包含用于 对机器(例如计算设备)可读方式的信息进行存储或发送的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取 存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、 声或者其它形式的传播信号(例如,载波、红外信号以及数字信号)。 此外,在本文中,可以将固件、软件、例程和指令描述为执行特定的 操作。但是,应当理解,这些描述仅仅是为了方便,并且所述操作实 际上源自执行固件、软件、例程和指令的计算设备、处理器、控制器 以及其它设备。在图1中示出计算系统100的一个实施例。计算系统100可以包 括处理器110、存储器控制中心(MCH) 150以及存储器190。在一个实施例中,存储器190可以包括动态随机存取存储器 (DRAM)和静态随机存取存储器(SRAM)。在一个实施例中,存 储器190可以包括SMRAM 195、专用于SMM的存储器区域以及系 统存储器199。SMRAM 195可以包括SMM空间,例如,兼容SMRAM区域(C_SMRAM) 191、高段(HSEG) 192以及存储器顶段(TSEG) 193。在一个实施例中,C—SMRAM191可以引用存储器位置,其可以 位于l兆字节(MB)内的一个固定地址处。处理器110可以在所述 固定地址处对C—SMRAM 191进行寻址。在一个实施例中, C—SMRAM191的大小可以等于128千字节。在一个实施例中,HSEG 192可以引用存储器位置,其可以位于1兆字节(MB)内的一个固 定地址处。处理器110可以在MCH 192指定的1MB和4GB之间的 一个地址处对HSEG 192进行寻址。HSEG 192的大小可以等于128 千字节。在一个实施例中,TSEG 193可以引用存储器位置,其可以位于 1MB和4GB之间的一个配置地址处。处理器110可以在可位于1MB 和4GB之间的所述配置地址处对TSEG 193进行寻址。在一个实施例 中,TSEG 193的大小可以是可变大小,其可位于1MB和8MB之间。在一个实施例中,处理器110可以包括处理单元(PU) 120、寄 存器组128、高速缓存130和处理器接口 125。在一个实施例中,处 理器110可以通过存储器控制中心150耦合到存储器190。在一个实 施例中,处理器110可以表示英特尔@微处理器族中的奔腾@4或酷睿 双核@处理器。在一个实施例中,处理单元(PU)120可以在例如前端总线(FSB) 的总线上经由处理器接口 125与MCH 150进行通信。在一个实施例 中,响应于基于VM根操作而接收到SMI或执行VMCALL指令, PU 120可以向MCH 150发送SMI确认消息。PU 120可以生成SMM 控制信号,该SMM控制信号可用于使PU 120有权访问SMRAM 195, 以在进入SMM之后存储例如内部上下文。在存储了上下文之后,PU 120可以执行SMI处理程序。在执行SMI处理程序的过程中,可以 将来自存储器190的指令或数据块加载到高速缓存130。在一个实施 例中,SMI处理程序的执行可以导致执行功率管理以及提供安全性。在一个实施例中,高速缓存攻击可以指基于软件的攻击,其中, 在可能正存储对应于SMM空间的指令或数据的地址处,攻击者可以向高速缓存130写入恶意指令或数据。这种攻击可能导致预料不到的 且不期望的事件,例如,恶意指令接管处理器110。在一个实施例中, 恶意指令的执行可能导致在访问高速缓存130时的非法存储器访问。 在一个实施例中,处理器110可以包括寄存器组128,该寄存器 组128可以包括一对或多对寄存器,例如,系统管理模式存储器类型 范围寄存器(SMM_MTRR)。在一个实施例中,SMJVLMTRR可以定 义物理地址范围的存储器类型,并且可以包括对其所描述的物理地址 范围或存储器区域的特定排列和长度要求。SMIVLMTRR可用于静态 地描述存储器190内物理地址范围的存储器类型。在一个实施例中, 页面属性表(PAT)可以将存储器类型动态地指定给存储器190的线 性寻址的页面。在一个实施例中,处理器110可以将标准MTRR与 PAT结合使用,以将MTRR的可扩展和可编程特征与PAT的灵活性 相组合。在一个实施例中,除了标准MTRR之外,处理器110可以包括 一 对 SMM—MTRR : SMM—MTRR_BASE_REG 121 和 SMM—MTRR—MASK—REG 122 。 在 一 个实施例中, SMM—MTRR_BASE—REG 121可以包括两个字段,称为类型字段 121-A和地址字段121-B。在一个实施例中,类型字段121-A可以包 括指向SMM空间191-193的线性和物理发起SMM处理器存储器访 问的存储器类型。地址字段121-B可以包括SMM空间的基本物理地 址。在一个实施例中,SMM—MTRR_MASK_REG 122也可以包括两 个字段使能字段122-A和地址掩码字段122-B。在一个实施例中, 使能字段122-A可被编程为第一值,以激活对于SMM空间的保护机 制,并且使能字段122-A可被编程为第二值,以关闭保护机制。在一 个实施例中,地址掩码字段122-B可以包括SMM空间(C—SMRAM 191、 HSEG 192和TSEG 193)的物理地址掩码。在一个实施例中, PU 120可以在处理器110运行于当前特权等级(CPL) 0时配置 SMM—MTRR 121和122。在一个实施例中,PU 120可以基于BIOS (基本输入输出系统)配置SMM_MTRR,使得无论是否启动了保护,MTRR都可以指示SMM空间的地址范围、SMM空间的类型以及类 似的这种值。在一个实施例中,处理器110可以提供新的存储器类型,称为非 相关强不可缓存(NCUC: non-coherent strong uncacheable)类型以及 非相关混合写入(NCWC: non-coherent write-combining)类型。在 其它实施例中,如果处理器110能够指示其运行于SMM,则可以将 强不可缓存(UC)存储器类型用于外部总线上发出的存储器事务。在一个实施例中,除了强不可缓存(UC)存储器类型的缓存特 性之外,非相关强不可缓存(NCUC)存储器类型还可以包括非相关 属性。在一个实施例中,强不可缓存(UC)存储器类型的缓存特性 可以包括(可缓存否,可回写缓存否,允许随机读取否)。在一个实施例中,用于uc的排序模型可以相当于强排序,其中,以严格的顺序执行事务。在一个实施例中,非相关属性可以表示当在外部总线上观测到存储器事务时,总线/链路代理不能侦听其内部高速缓存。在一个实施例中,MCH150可以中止或重定向指向SMM空间 的非相关存储器事务。在一个实施例中,除了混合写入(WC)存储器类型的缓存特性 之外,非相关混合写入(NCWC)存储器类型还可以包括非相关属性。 在一个实施例中,混合写入(WC)存储器类型的缓存特性可以包括(可缓存否,可回写缓存否,允许随机读取是)。在一个实施 例中,排序特性可以相当于写存储器事务的弱排序,在将组合更新存储到存储器190之前,可以在写缓冲器中进行累积。在一个实施例中,非相关属性可以表示当在外部总线上观测到存储器事务时,总线/链路代理不能侦听其内部高速缓存。在一个实施例中,MCH 150可 以中止或重定向指向SMM空间的非相关存储器事务。在一个实施例中,处理器110可以基于存储器访问的类型以及 SMM—MTRR121和122中的配置值,确定最终的存储器类型。在一 个实施例中,最终的存储器类型可以确定在外部总线上是否发生存储 器访问。在一个实施例中,如果最终的存储器类型为NCUC和NCWC, 则在外部总线上发生标记为这种存储器类型的存储器访问。在一个实施例中,如果最终的存储器类型为回写,则外部总线上可能没有发生存储器访问。在一个实施例中,如果处理器UO运行于RAM(CRAM) 模式的高速缓存中,则最终的存储器类型可能为回写。在一个实施例 中,CRAM模式可以保证存储在高速缓存130中的指令和数据可来 自信任源。在一个实施例中,可以将强加密算法用于对CRAM中的 指令和数据进行鉴权。在一个实施例中,MCH 150可以保护SMM空间免受非法处理器 存储器访问。在一个实施例中,为了保护SMM空间,存储器控制中 心(MCH) 150可以支持可锁定SMRAM配置寄存器以及控制寄存 器。在一个实施例中,可锁定配置寄存器可以启动SMM空间的特定 组合。在一个实施例中,控制寄存器可以控制例如FSB等外部总线 上数据访问的发生,其中所述控制寄存器可由运行于SMM的处理器 110部分地锁定以及部分地改变。在一个实施例中,当启动C—SMRAM 191时,MCH150可以将 SMM处理器存储器访问导向SMM地址,以及将非SMM处理器存 储器访问导向传统的视频区域,其中所述非SMM处理器存储器访问 例如外围组件互连(PCI) Express和直接媒体接口 (DMI)引起的存 储器访问。在一个实施例中,当启动HSEG192时,MCH150可以将 SMM和回写处理器存储器访问导向重新映射的SMRAM地址,并且中止非SMM处理器存储器访问。在一个实施例中,当启动TSEG193时,MCH150可以将SMM和回写处理器存储器访问导向所配置的SMRAM地址,并且中止非 SMM处理器存储器访问。从而,MCH150可以保护SMM空间免受 外部总线上发出的非法存储器访问。但是,MCH 150可能无法保护 SMM空间免受可能发生在处理器110的高速缓存130内部的非法存 储器访问。在一个实施例中,处理器110可以重新路由指向所启动的SMM 空间的非法存储器访问或者强制其发生在外部总线上。当在外部总线 上执行对应于高速缓存攻击的非法存储器访问之后,MCH 150可以 保护SMM空间免受高速缓存攻击。在图2中描述了可以对指向所启动的SMM空间的非法存储器访 问进行强制的处理器110的一个实施例。在方框205中,BIOS可以使用SMM空间的一个基本物理地址 以及MTRR类型对SMM—MTRR进行配置。在一个实施例中,基于 BIOS内容的处理器110可以将SMM—MTRR—BASE—REG 121的类型 字段121-A配置为一种存储器类型,例如NCUC、 NCWC、 UC以及 回写(WB)。 BIOS可以将SMM—MTRR—BASE—REG 121的地址字段 121-B配置为SMM空间的一个基本物理地址。例如,基本物理地址 值可以等于C—SMRAM 191或者HSEG 192或者TSEG 192的基址。在方框210中,基于BIOS的处理器110可以使用SMM空间的 物理地址掩码以及保护使能指示符值对SMM_MTRR 121和122进行 配置。在一个实施例中,处理器110可以将SMM—MTRR_MASK_REG 122的使能字段122-A配置为第一逻辑值,以激活保护机制,以及将 所述使能字段122-A配置为第二逻辑值,以关闭向SMM空间提供的 保护机制。在方框215中,处理器110可以确定线性或物理发起存储器访问 是否指向SMM空间。在一个实施例中,线性存储器访问可以表示可 使用线性地址的存储器操作,其中处理器iio可以使用页面调度机制 将所述线性地址转换为物理地址。在一个实施例中,物理发起存储器 访问可以表示处理器直接使用物理地址所执行的存储器访问。在一个实施例中,处理器110可以检查使能字段122-A,如果 SMMMTRR对121和122被启动,则可以确定线性或物理发起存储 器访问是否指向SMM空间。在一个实施例中,处理器110可以进行 比较,如下述方程(1)所述,以确定线性或物理发起存储器访问是 否指向SMM空间。((处理器110指向的物理地址)AND (存储在寄存器122的掩 码字段122-B中的掩码))=((存储在寄存器121的地址字段121-B 中的地址)AND (存储在寄存器122的掩码字段122-B中的掩码)) --------------------------------------------------------------------------旅(1)在一个实施例中,如果方程(1)中的条件为真,则控制可以进行到方框220,否则,控制可以进行到方框235。在方框220中,处理器110可以检查处理器110是否运行于SMM。 在一个实施例中,CPU 120可以确定是否维持了 SMM运行指示信号。 在一个实施例中,SMM运行指示信号的维持可以指示处理器110正 运行于SMM。如果处理器110正运行于SMM,则控制可以进行到方 框225,否则,控制可以进行到方框260。在方框225中,处理器110可以确定SMM_MTRR_BASE_REG 121是否指定了存储器类型,如果寄存器121指定了存储器类型,则 控制进行到方框250,否则,控制进行到方框235。在方框235中, 处理器110可以基于存储在标准MTRR寄存器中的配置值以及PAT 中的属性值,确定最终的存储器类型。在方框250中,处理器110可 以基于存储在SMMMTRR寄存器121以及页面属性表(PAT)中的 配置值,确定最终的存储器类型。在方框260中,处理器110可以确定存储器访问是否是线性发起 的,如果存储器访问是线性发起的,则控制进行到方框265,如果存 储器访问是物理发起的,则控制进行到方框280。在一个实施例中, 处理器110可以基于引起存储器访问的微操作(称为"u叩")类型, 确定存储器访问是线性发起的还是物理发起的。在一个实施例中,线 性和物理uop可以包括不同的内部编码,处理器110可以基于内部编 码识别线性或者物理存储器访问。在方框265中,处理器110可以确定有效存储器类型是否是混合 写入(WC),如果有效存储器类型是WC,则控制进行到方框270, 否则,控制进行到方框275。在一个实施例中,处理器110可以通过 根据MTRR存储器类型和PAT存储器类型计算有效存储器类型,来 确定有效存储器类型是否是WC。在方框270中,处理器110可以确定最终的存储器类型是NCWC。 在方框275中,处理器IIO可以确定最终的存储器类型是NCUC。在 一个实施例中,处理器110可以基于一组标准确定最终的存储器类 型。在一个实施例中,该组标准可以包括有效存储器类型,存储器 地址是否指向SMM空间,处理器110是否运行于SMM,存储器访问是线性发起的还是物理发起的,以及处理器110是否运行于CRAM 模式。在方框280中,处理器110可以确定处理器110是否运行于 CRAM模式,如果处理器110运行于CRAM模式,则控制进行到方 框285,否则,控制进行到方框275。在一个实施例中,处理器110 可以基于内部控制寄存器中的比特,确定其是否运行于CRAM模式。 在一个实施例中,处理器110可以在进入和退出CRAM模式时,设 置或者重新设置内部控制寄存器中的预先指定的比特。在方框285 中,处理器110可以确定最终的存储器类型是回写(WB)。已经参考示例性实施例描述了本发明的特定特征。但是,该描述 并不旨在以限制方式进行解释。本发明所属领域的技术人员所显而易 见的示例性实施例的多种修改以及本发明的其它实施例将被认为落 入本发明的精神和范围内。
权利要求
1、一种处理器,包括处理单元,耦合到所述处理单元的高速缓存存储器,以及耦合到所述处理单元和外部总线的接口,其中,所述处理单元将指向所述高速缓存存储器中的系统管理模式地址范围的存储器访问重新路由至所述外部总线。
2、 根据权利要求1所述的处理器,还包括耦合到所述处理单元 的寄存器组,其中,所述寄存器组包括第一存储器类型寄存器,其中, 所述第一存储器类型寄存器包含系统管理模式空间的基址和存储器 类型值。
3、 根据权利要求2所述的处理器,其中,所述寄存器组还包括 第二存储器类型范围寄存器,其中,所述第二存储器类型寄存器包含 所述基址的掩码和保护机制指示符。
4、 根据权利要求1所述的处理器,其中,在将所述存储器访问 重新路由到所述外部总线上之前,所述处理单元确定所述存储器访问 是否指向表示所述系统管理模式空间的所述高速缓存存储器区域,其 中,所述处理器运行于非系统管理模式。
5、 根据权利要求4所述的处理器,其中,如果所述存储器访问 指向表示所述系统管理模式空间的所述高速缓存存储器区域,则所述 存储器类型是非相关混合写入类型。
6、 根据权利要求5所述的处理器,其中,所述非相关混合写入 存储器类型包括将所述存储器访问重新路由到所述外部总线上的特 性,以及当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦听所述高速缓存存储器。
7、 根据权利要求4所述的处理器,其中,如果所述存储器访问 指向表示所述系统管理模式空间的所述高速缓存存储器区域,则所述 存储器类型是非相关不可缓存类型。
8、 根据权利要求7所述的处理器,其中,所述非相关不可缓存 类型包括将所述存储器访问重新路由到所述外部总线上的特性,以及 当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦 听所述高速缓存存储器。
9、 根据权利要求4所述的处理器,其中,如果指向所述高速缓 存存储器区域的所述存储器访问是从信任源接收的,则所述存储器类 型是回写类型。
10、 根据权利要求2所述的处理器,其中,所述处理单元基于所 述存储器类型值和页面属性表值来确定所述存储器类型,其中,所述 处理器运行于系统管理模式。
11、 一种方法,包括确定访问高速缓存的系统管理模式区域的存储器访问是否来自 信任源,为所述存储器访问指定存储器类型,以及如果所述存储器访问来自非信任、源,则将指向所述高速缓存中的 所述系统管理模式区域的所述存储器访问重新路由至外部总线。
12、 根据权利要求11所述的方法,还包括将第一存储器类型寄 存器配置为包含系统管理模式空间的基址和存储器类型值。
13、 根据权利要求11所述的方法,还包括将第二存储器类型寄存器配置为包含所述系统管理模式空间的基址的掩码和保护机制指 示符。
14、 根据权利要求ll所述的方法,包括确定与所述高速缓存相关联的处理器是否运行于系统管理模式, 确定所述存储器访问是否指向所述高速缓存中的所述系统管理模式区域,以及如果所述存储器访问指向所述高速缓存中的所述系统管理模式区域,则将所述存储器访问重新路由到所述外部总线上。
15、 根据权利要求14所述的方法,其中,如果所述存储器访问指向所述高速缓存中的所述系统管理模式区域,则所述存储器类型是 非相关混合写入类型。
16、 根据权利要求15所述的方法,其中,所述非相关混合写入 存储器类型包括将所述存储器访问重新路由到所述外部总线上的特 性,以及当所述存储器访问被重新路由到所述外部总线上时,防止总 线代理侦听所述高速缓存。
17、 根据权利要求14所述的方法,其中,如果所述存储器访问 指向所^&高速缓存中的所述系统管理模式区域,则所述存储器类型是 非相关不可缓存类型。
18、 根据权利要求17所述的方法,其中,所述非相关不可缓存 类型包括将所述存储器访问重新路由到所述外部总线上的特性,以及 当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦 听所述高速缓存存储器。
19、 根据权利要求14所述的方法,其中,如果指向所述高速缓 存的所述存储器访问是从信任源接收的,则所述存储器类型是回写类型。
20、根据权利要求14所述的方法,包括如果所述处理器运行于 系统管理模式,则基于所述存储器类型值和页面属性表值来确定所述 存储器类型。
全文摘要
计算系统可以包括由例如前端总线的外部总线所耦合的处理器和存储器控制中心。处理器还可以包括高速缓存。处理器可以运行于SMM,耦合到存储器控制中心的存储器可以包括SMM空间,例如,兼容、HSEG和TSEG区域。基于软件的攻击可以在对应于SMM空间的地址处向高速缓存写入恶意指令。可以将由于高速缓存攻击而完全发生在处理器高速缓存内部的非法处理器存储器访问强制发生在外部总线上。存储器控制中心能够处理发生在外部总线上的存储器访问,从而保护SMM空间免受高速缓存攻击。
文档编号G06F21/00GK101276388SQ200810074189
公开日2008年10月1日 申请日期2008年2月27日 优先权日2007年2月28日
发明者S·盖切 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1