CN1628284A - 安全执行模式异常 - Google Patents

安全执行模式异常 Download PDF

Info

Publication number
CN1628284A
CN1628284A CNA028290593A CN02829059A CN1628284A CN 1628284 A CN1628284 A CN 1628284A CN A028290593 A CNA028290593 A CN A028290593A CN 02829059 A CN02829059 A CN 02829059A CN 1628284 A CN1628284 A CN 1628284A
Authority
CN
China
Prior art keywords
security
address
register
security exception
sem
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.)
Granted
Application number
CNA028290593A
Other languages
English (en)
Other versions
CN1628284B (zh
Inventor
R·W·施密特
B·C·巴恩斯
G·S·斯特龙金
D·S·克里斯蒂
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.)
GlobalFoundries US Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1628284A publication Critical patent/CN1628284A/zh
Application granted granted Critical
Publication of CN1628284B publication Critical patent/CN1628284B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F9/46Multiprogramming arrangements
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

用于处理安全异常的一种方法与系统。该方法包括:在安全内存内基地址处建立安全异常堆栈框架(900)。该方法还包括:写入出错码的序地址与一个或多个寄存器值到所述安全异常堆栈框架(900),并且执行多个安全异常指令。

Description

安全执行模式异常
技术领域
本发明通常涉及计算机系统,尤其涉及为运算系统提供安全的方法。
背景技术
图1为x86处理器执行例如Windows操作系统(Microsoft Corp.,Redmond,WA)时产生的异常堆栈框架(exception stack frame)100。当进入异常处理程序(exception handler)时,其保留应用程序的所有寄存器于异常发生时(即,“出错程序”),除了程序段(CS)、指令指针(EIP)、堆栈段(SS)、堆栈指针(ESP)寄存器器、以及EFLAGS。所述寄存器的内容可由所述异常堆栈框架100取得。
所述异常堆栈框架100由段地址(segmented address)SS:ESP开始。错误码(error code)驻于该异常堆栈框架100的段地址SS:ESP+00h。该出错程序的指令指针(EIP)寄存器的内容驻在该异常堆栈框架100的段地址SS:ESP+04h。该出错程序的程序区段(CS)寄存器的内容驻在该异常堆栈框架100的段地址SS:ESP+08h。该出错程序的诸标志(EFLAGS)寄存器的内容驻在该异常堆栈框架100的段地址SS:ESP+0Ch。该出错程序的堆栈指针(ESP)寄存器的内容驻在该异常堆栈框架100的段地址SS:ESP+10h。该出错程序的堆栈区段(SS)寄存器的内容驻在该异常堆栈框架100的段地址SS:ESP+14h。应注意,如果转移至该异常处理器的相关控制涉及优先级的改变,则该异常堆栈框架100内会出现ESP与SS数值。
该出错程序的指令指针(EIP)寄存器的内容(在分段地址SS:ESP+04h)指向产生该异常的出错程序的指令。该出错程序的堆栈指针(ESP)寄存器的内容(在分段地址SS:ESP+10h)是该出错程序出错时堆栈框架的地址(即,指向)。
与段相关的异常的错误码与保护模式选择器(protected modeselector)很类似。最高的13个位(位15:3)均为选择器索引,且位2为表格索引。不过,代替请求优先级(RPL),位0与1有以下约定:如果错误是由程序外部事件引起则设置位0(EXT),以及如果该选择器参照IDT内的门描述符(gate descriptor),则设置位1(IDT)。
图2是Advanced Micro Devices,Inc制造的x86处理器中使用的SYSCALL/SYSRET目标地址寄存器(STAR)200。该SYSCALL/SYSRET目标地址寄存器(STAR)200包含“SYSRET CS选择器与SS选择器基址”字段、“SYSCALL CS选择器与SS选择器基址”字段、以及“目标EIP地址”字段。
在执行SYSCALL指令前的某点,操作系统为适当的系统服务码的程序段(CS)写入数值至该SYSCALL/SYSRET目标地址寄存器(STAR)200的SYSCALL CS选择器与SS选择器基址字段。操作系统也写入系统服务码内的第一个要执行指令的地址至该SYSCALL/SYSRET目标地址寄存器(STAR)200的目标EIP地址字段。该STAR寄存器是在系统引导时予以配置。该目标EIP地址可以指向操作系统内核的固定系统服务区(fixed system service region)。
执行SYSCALL指令期间,SYSCALL CS选择器与SS选择器基址字段的内容经复制到该CS寄存器。该SYSCALL CS选择器与SS选择器基址字段的内容,加上数值‘1000b’,复制到该SS寄存器。这有效增加该CS选择器的索引字段使得所得的SS选择器指向描述符表(descriptortable)内该CS描述符后的下一个描述符。该目标EIP地址字段的内容被复制到该指令指针(EIP)寄存器,并且指定第一个要执行指令的地址。
在执行对应该SYSCALL指令的SYSRET指令的前的某点,操作系统写入呼叫码(calling code)的程序段(CS)用的数值至该SYSCALL/SYSRET目标地址寄存器(STAR)200的SYSRET CS选择器与SS选择器基址字段。该SYSRET指令由ECX寄存器取得返回EIP地址(return EIP address)。
发明内容
根据本发明的一方面,提供一种方法。该方法包括:于安全内存内基地址处建立安全异常堆栈框架。本方法也包括写入出错的码序列地址(faulting code sequence address)与一个或多个寄存器值至该安全异常堆栈框架,并且执行多个安全异常指令。
根据本发明的另一方面,提供一个系统。该系统包括一个或多个安全检查单元,该单元被配置为可监视多个请求与多个安全储存位置。该系统也包含一个处理器,该处理器被配置可执行安全内核。该一个或多个安全检查单元经被进一步配置以产生安全异常响应请求中的一个。该处理器被进一步配置可在安全内存内基地址处建立安全异常堆栈框架并且写入出错的码序列地址与一个或多个寄存器值到该安全异常堆栈框架。该安全内核被配置可执行多个安全异常指令。
根据本发明的再一方面,提供一种机器可读式媒体。该机器可读式媒体被多条指令配置,当其执行于配置计算机系统内时能完成本发明方法。
根据本发明的另一方面,提供另一个方法。此方法包括于安全内存内基地址处接收安全异常以及因该安全异常的接收而建立的安全异常堆栈框架。此方法也包含写入出错的码序列地址与一个或多个寄存器值至该安全异常堆栈框架并且执行多个个安全异常指令。
附图说明
结合附图,参考以下说明可了解本发明,其中相同的索引号确定相同的成分。
图1是x86处理器执行例如Windows操作系统时产生的异常堆栈框架的图表;
图2是SYSCALL/SYSRET目标地址寄存器的图表;
图3是计算机系统的一个具体实施方案的框图,该计算机系统可以根据本发明的一个方面被应用;
图4图示根据本发明的一方面,计算机系统具体实施方案中各种硬件与软件组成部分的某些关系;
图5A与图5B图示根据本发明不同方面,CPU诸具体实施方案;
图6图示根据本发明的一方面,MMU的一个具体实方案,其中MMU具有内存安全检查单元(MEM SCU);
图7A图示根据本发明的一方面,MEM SCU的一个具体实施方案,同时图7B图示根据本发明的一方面,I/O SCU的一个具体实施方案;
图8图示根据本发明不同方面,储存于内存内的安全执行模式(SEM)I/O权限位图的一个具体实施方案,以及存取该SEM I/O权限位图的机制的一个具体实施方案;
图9是根据本发明的一方面,图示用来处理SEM安全异常的安全模式SMCALL/SMRET目标地址寄存器(SMSTAR)与安全模式GS基址(SMGSBASE)寄存器的具体实施例;
图10是根据本发明的一方面,图示出现SEM安全异常时产生的SEM安全异常堆栈框架的具体实施方案;
图11是根据本发明的一个方面,图示SEM安全异常堆栈框架的错误码的示范格式的一个具体实施方案;以及
图12是根据本发明的一方面,图示处理SEM异常的方法的具体实施方案的流程图。
尽管本发明容易有各种形式的修改及替代方式,其特定的具体实施方案已由附图的实施例图示并且在此详细的描述。不过,应了解,不希望在此特定具体实施方案的说明将本发明限定为揭示的特定形式,反而,本发明是要涵盖所有落在附加权利要求范围所界定的本发明范畴及精神内的修改、等价物、以及替代物。
具体实施方式
以下描述本发明说明性的具体实施方案。为求简明,本文未描述实际具体实施的所有特性。当然,应了解发展任何此类具体实施方案时,必需做出许多与特定具体实施有关的决策以达成开发人员的特定目标,例如要符合与系统相关及商务有关的限制,这在每一个具体实施中是会有所不同的。此外,应了解这一类的开发即复杂又花时间,然而本领域技术人员在受益于被揭示的内容之后该开发将是常规的工作。
图3图示计算机系统300的一个具体实施方案,该计算机系统包括CPU 302、系统或“主”桥304、内存306、第一设备总线308(例如,外设组件互连或PCI总线)、设备总线桥接器310、第二设备总线312(例如,工业标准架构或ISA总线)、以及4个设备硬件单元314A-314D。所述主桥304被连接到所述CPU 302、所述内存306、以及所述第一设备总线308。所述主桥304转换所述CPU 302与所述第一装置总线308的间的信号,并且可操作地使所述内存306连接到所述CPU 302及所述第一设备总线308,该设备总线桥310被连接到所述第一设备总线308与所述第二设备总线312,并且转换所述第一装置总线308与所述第二设备总线312的间的信号。所述CPU 302包括安全检查单元(SCU)316。
可能将该SCU 316被具体实施为一个或多个特定SCU 316,诸如内存(MEM)SCU 316A、控制寄存器(REG)SCU 316B、以及输入/输出(I/O)SCU 316C,以下将予以详述。所述MEM SCU 316A保护该内存306免除CPU 302所产生的未被授权的存取(即,“软件启动存取”)以及各种硬件启动存取。所述REG SCU 316B保护数个控制寄存器(例如,控制寄存器508及/或SEM寄存器510)免除未被授权的存取。所述I/O SCU316C保护I/O空间(例如,I/O端口)免除未被授权的存取。
在图3的具体实施方案中,设备硬件单元314A与314B均连接到所述第一设备总线308,并且设备硬件单元314C与314D均连接到所述第二设备总线312。一个或多个设备硬件单元314A-314D可能是,诸如储存设备(例如,硬盘、软盘、以及光盘),通讯设备(例如,调制解调器与网卡),或输入/输出设备(例如,视频设备、音频设备、以及打印机)。应注意,在其它的具体实施方案中,所述主桥304可能为所述CPU 302的一部份,如图3所示。
图4图示图3计算机系统300中各种硬件与软件部件间的关系。在图4的具体实施方案中,多个应用程序400、操作系统402、安全内核404、以及设备驱动406A-406D存储于所述内存306内。所述应用程序400、操作系统402、安全内核404、以及设备驱动406A-406D包含多个由所述CPU 302执行的指令。该操作系统402提供用户界面与应用程序400运行的软件“平台”。该操作系统402也可以提供,例如,基本支持功能,包括文件系统管理、进程管理、以及I/O控制。
所述操作系统402也可以提供基本的安全功能。例如,所述CPU 302(图3)可能为x86处理器,其执行x86指令集的指令。就此情形而言,所述CPU 302可以包括数个特定硬件单元以便在保护模式中提供虚拟内存与物理内存保护特性,如上述。所述操作系统402可以为,诸如Windows系列操作系统之一(Microsoft Corp.,Redmond,WA,所述操作系统在所述CPU 302的保护模式下运行,且使用该CPU 302的特定硬件组件以提供虚拟内存与内存保护于保护模式下。所述内核404在所述系统402所提供的安全功能上提供额外的安全功能,例如,以保护储存于所述内存306的资料免除未被授权的存取。
在图4的具体实施方案中,所述设备驱动程序406A-406D可操作地连接于,且连接于各自相应的设备硬件单元314A-314D。所述设备硬件单元314A及314D可能是,例如,“安全”设备,且所述相应的设备驱动程序406A及406D可能为“安全”设备驱动程序。所述安全内核404连接到所述操作系统402与所述安全设备驱动程序406A及406D之间,且可以监视所述应用程序400与所述操作系统402的所有存取以保护所述设备驱动程序406A及406D与其相应的安全设备314A及314D。所述安全内核404可以由所述应用程序400与所述操作系统402保护所述安全装置驱动器406A及406D与其相应的安全设备314A及314D免除未被授权的存取。另一方面,所述设备驱动程序406B及406C可以是“不安全”设备驱动程序,且相应的设备硬件单元314B及314C可以是“不安全”设备硬件单元。所述设备驱动程序406B及406C与其对应的设备硬件单元314B及314C可以是,诸如“旧的”设备驱动程序与设备硬件单元。
应注意,在其它的具体实施方案中,所述安全内核404可能为所述操作系统402的一部份。在其它的具体实施方案中,所述安全内核404、设备驱动程序406A与406D、和/或设备驱动程序406B及406C可以为所述操作系统402的一部份。所述安全内核404也可以管理对安全应用内存空间和/或安全程序空间的存取。所述SCU 316也是可操作性地连接于所述安全内核404。
图5A图示计算机系统300的CPU 302的一个具体实施方案。在图5A的具体实施方案中,该CPU 302A包括执行单元500、内存管理单元(MMU)502、高速缓存单元504、总线接口单元(BIU)506、一组控制寄存器508、以及一组安全执行模式(SEM)寄存器510。该组SEM寄存器510用来在计算机系统300内具体实施安全执行模式(SEM)。所述SEM寄存器510可以被安全内核404存取(即,写入和/或读取)。MEM SCU 316A位于MMU 502内。该REG SCU 316B位于所述执行单元500内。所述I/O SCU 316C位于所述BIU 506内。所述CPU的其它位置也可以被考虑。所述MEM SCU 316A、REG SCU 316B、以及I/O SCU 316C的运算由所述SEM寄存器组510的内容管理。
在图5A的具体实施方案中,所述SEM寄存器组510包括安全执行模式(SEM)位。例如,当:(i)所述CPU 302是在x86保护模式中运行的x86处理器,(ii)内存分页被使能,以及(iii)该SEM位被设定为‘1’时,图3的计算机系统300可以在安全执行模式(SEM)下运算。也可使用其它在SEM中的指示运算与SEM的其它运算的方法。
一般而言,控制寄存器组508的内容用来管理所述CPU 302的运算。因此,该控制寄存器组508的内容用来管理所述执行单元500、MMU502、高速缓冲存储单元504、和/或所述BIU506的运算。所述控制寄存器组508可以包括,例如x86处理器体系结构的多个控制寄存器。
所述CPU 302的执行单元500取指令(例如,x86指令)及数据、执行取得的指令、并且在指令执行期间产生信号(例如,地址、资料、以及控制信号)。所述执行单元500连接于所述高速缓冲存储单元504,且可以经由高速缓冲存储单元504与BIU 506从所述内存306接收指令。
所述计算机系统300的内存306包括多个存储单元,每个均有一个唯一的物理地址。当运算于保护模式且页面被使能时,所述CPU 302的地址空间被分割为多个称作页框(page frame)或“页”的块。在其它具体实施方案中,所述内存可以通过数个不同定义的内存区域被分割或存取。典型地,在任意给定时间,只将对应于一部份页面的数据储存于所述内存306内。
在图5A的具体实施方案中,指令执行期间该执行单元500产生的地址信号代表分段过的(即,“逻辑”)地址。所述MMU 502转换所述执行单元500产生的段地址为所述内存306对应的物理地址。所述MMU502提供物理地址给该高速缓冲存储单元504。所述高速缓冲存储单元504为一个相对较小的储存单元,其用来储存最近被执行单元500取得的指令与数据。所述BIU 506连接于所述高速缓冲存储单元504与所述主桥304之间,且用来从内存306经由主桥304取得不在高速缓冲存储单元504内的指令与数据。
应注意,使用高速缓冲存储单元504并非必须,但利于为CPU 302提供较大的运算效率。也应注意,所述执行单元500可以执行标准指令、安全指令、和/或微码,这取决于具体实施。在一个具体实施方案中,在处理器302内执行的微码是硬件而非软件。
当该计算机系统300在SEM中运行时,所述安全内核404产生且维护一个或更多安全属性数据结构(例如,表)于该内存306的保护部份内。每一个内存页具有对应的安全上下文识别(security contextidentification,SCID)值,以及对应的SCID值可被储存于所述安全属性数据结构内。所述MMU 502使用指令执行期间产生的地址(例如,物理地址)存取一个或多个安全属性数据结构以得到对应内存页的SCID。一般而言,所述计算机系统300具有n个不同的安全上下文识别(SCID)值,此处n是整数并且n≥1。
当所述计算机系统300在SEM中运行时,软件违反安全机制的各种活动会导致SEM安全异常。可以以类似于x86“SYSENTER”与“SYSEXIT”指令运算的方式通过一对寄存器(例如,模型特定寄存器或MSRs)分派该SEM安全异常。该对寄存器可以为“安全异常进入点”寄存器,且可以定义分支目标地址用以在SEM安全异常发生时执行指令。所述安全异常进入点寄存器可以定义程序段(CS)、指令指针(EIP,或64-位版本RIP)、堆栈段(SS)、以及堆栈指针(ESP,或64-位版本RSP)等要用来登录到SEM安全异常处理器(SEM,security exceptionhandler)的值。
所述执行单元500可以压入先前的SS、ESP/RSP、EFLAGS、CS、以及EIP/RIP等值于新的堆栈以表示那里出现异常。此外,执行单元500可以压入错误码到该堆栈。应注意,当先前的SS与ESP/RSP的数值一直被保存,且堆栈切换(stack switch)一直是完成的时,则可以不使用中断(IRET)指令的正常返回,即使没有出现CPL的改变。因此,可以定义新的指令以完成该SEM安全异常处理器的返回(SMRET)。
图5B图示计算机系统300的CPU 302的另一具体实施方案。在图5B的具体实施方案中,该CPU 302B包括执行单元500、MMU 502、高速缓冲存储单元504、BIU 505、控制寄存器组508、以及安全执行模式(SEM)寄存器组510,如上述图5A所描述的。此外,所述CPU 302B包括微码机550与微码储存器552。该微码机550连接于执行单元500、MMU 502、高速存储单元504、BIU 505、控制寄存器组508、以及SEM寄存器组510。取决于微码指令、控制寄存器组508的内容、以及SEM寄存器组510的内容,所述微码引擎550执行储存在所述微码储存器552内的微码指令,并且产生控制执行单元500、MMU 502、高速缓冲存储单元504、以及BIU 505的运算的信号。在图5B的具体实施方案中,执行储存在该微码储存器552内微码指令的微码机550可以取代一个或多个MEM SCU 316A、REG SCU 316B、以及I/O SCU 316C。在x86的具体实施方案中,所述微码机550也可以协助所述执行单元500执行更复杂的x86指令集的指令。
在图5B的具体实施方案中,储存于该微码存储器552的微码指令中的一部份形成安全检查码554。该安全检查码554可以在所述计算机系统300在SEM中运行时被执行,并且指令已递送至所述执行单元500用以执行。在本质上,该安全检查码554的诸微码指令的执行导致该微码机550与执行单元500、MMU 502、以及BIU 505中的一些执行上述SCU 316的功能。
例如,当递送I/O指令至所述执行单元500用以执行时,所述执行单元500可以用信号通知所述微码机550有I/O指令存在。所述微码机550可以确定信号到所述MMU 502与BIU 505。为响应微码机550的信号,所述MMU 502可以提供包括I/O指令的内存页的安全上下文识别(SCID)值给所述BIU 505。所述执行单元500可以提供所述I/O指令所存取的I/O端口号给BIU 505。
为响应微码机550的信号,BIU 505可以使用安全上下文识别(SCID)值与收到的I/O端口号以存取SEM I/O权限位图800(参考图8),并且可以提供SEM I/O权限位图800的对应位给所述微码机550。如果所述SEM I/O权限位图800的对应位被清除成‘0’,则所述微码机550可以继续协助所述执行单元500完成该I/O指令的执行。另一方面,如果该对应位被设定为‘1’,所述微码机550可以用信号通知所述执行单元500停止执行该I/O指令并且开始执行所述SEM异常处理器的指令。
也应注意,所述执行单元500可以执行标准指令、安全指令、和/或微码,这取决于具体实施。因此,在一个具体实施方案中,所述执行单元500与微码机550两者均执行微码。在一个具体实施方案中,在处理器302执行的微码被认为是硬件动作而非软件动作。
图6图示MMU 502的一个具体实施方案,描述x86具体实施方案。在图6的具体实施方案中,所述MMU 502包括分段单元600、分页单元602、以及选择逻辑604(其用以选择该分段单元600与该分页单元602的输出以产生物理地址)。如图所示,该分页单元602包括所述MEM SCU316A。如图6所示,所述分段单元600由所述执行单元500接收分段地址并且可以使用x86处理器架构的众所周知的分段至线性地址转换机制(segmented-to-linear address translation mechanism)以在输出处产生的线性地址。如图6所示,当被“分页”信号被使能时,所述分页单元602接收该分段单元600所产生的线性地址并且在输出处产生响应的物理地址。所述分页信号可以是映射所述x86处理器架构及控制寄存器组508的控制寄存器O(CRO)内的分页旗标(PG)位。当所述分页信号没有被确认时,内存分页不被使能,并且所述选择逻辑604产生由该分段单元600收到的线性地址作为物理地址。
当该分页讯号被确认时,内存分页被使能,并且所述分页单元602使用x86处理器架构的线性至物理地址转换机制(linear-to-physicaladdress translation mechanism)转换由所述分段单元600收到的线性地址为相应的物理地址。在线性至物理地址转换运行期间,选定的页目录登录(page directory entry)与选定的页表格登录(page tableentry)的U/S位的内容均进行逻辑AND运算以判定存取页框架(pageframe)是否被授权。同样,选定的页目录登录与选定的页表格登录的R/W位的内容均进行逻辑AND运算以判定存取该页框架是否被授权。如果该U/S与R/W位的逻辑组合表示该页框架被授权,则该分页单元602产生线性至物理地址转换运算所得的物理地址。该选择逻辑604接收该分页单元602产生的物理地址,产生由该分页单元602接收的物理地址作为物理地址,并且提供所述物理地址给高速缓冲存储单元504。
另一方面,如果该U/S与R/W位的逻辑组合表示该页框架未被授权,则该分页单元602在线性至物理地址转换运算期间不产生物理地址。反而,该分页单元602确认页错误(page fault,PF)信号,并且该MMU 502传送该PF信号给执行单元500。为响应PF信号,所述执行单元500可以执行异常处理器例行程序,例如SEM安全异常处理程序,并且当PF信号被确认时最终暂停(halt)所述应用程序400中的一个的执行。
在图6的具体实施方案中,所述MEM SCU 316A位于所述MMU 502的分页单元602内。所述分页单元602还可以包括转换后备缓冲器(translation lookaside buffer,TLB)用以存储最近确定的线性至物理地址转换的相对较小的数目。
图7A图示MEM SCU 316的一个具体实施方案。在图7A的具体实施方案中,所述MEM SCU 316包括连接于SEM寄存器组510的安全检查逻辑700A与安全属性表(SAT)登录缓冲器702。所述SAT登录可以在分页目录与对应内存分页的分页表格登录的U/S与R/W位上包括额外的安全信息。安全检查逻辑700A使用存储于给定SAT登录内的额外安全信息以预防未授权的软件激活存取至响应的内存分页。SAT登录缓冲器702用来存储最近存取的内存分页的SAT登录中的相对较小的数目。
如上述,所述SEM寄存器组510可以用来具体实施所述计算机系统300内的SEM。所述SEM寄存器组510的内容管理所述MEM SCU 316A的运算。所述安全检查逻辑700A由所述MMU 502经由通信总线接收要储存于SAT登录缓冲器702内的信息,如图7A所示。所述安全检查逻辑700A也接收所述分页单元602所产生的物理地址。
如图所示,所述安全检查逻辑700A是连接到通信总线且连接到所述SEM寄存器组510。所述检查逻辑700A可以产生页错误通知信号与SEM安全异常通知信号。
图7B图示I/O SCU 316C的一个具体实施方案。在图7B的具体实施方案中,所述I/O SCU 316C包括安全检查逻辑700B。所述安全检查逻辑700B由所述执行单元500接收“使能”信号与I/O端口号,并且由所述MMU 502接收SCID值。所述执行单元500可以在执行存取I/O地址空间内“目标”I/O端口的I/O指令之前确认所述“使能”信号。所述I/O端口号即该目标I/O端口的号码。所述SCID值表示包括I/O指令的内存分页的安全上下文等级(security context level)。
当该计算机系统300在SEM中运行时,所述安全内核404也可以产生并且维护所述内存306内的SEM I/O权限位图800。当所述执行单元500执行任务(task)的I/O指令时,所述CPU 302内的逻辑可以先拿所述任务的当前优先级(CPL)与I/O优先级(IOPL)作比较。如果所述任务的CPL的优先级至少与所述IOPL的优先级相同(即,数字上小于或等于),则所述CPU 302内的逻辑可以检查所述SEM I/O权限位图800。另一方面,如果该任务的CPL的优先级与所述IOPL的优先级不同(即,数字上大于),则所述执行单元500不执行所述I/O指令。在一个具体实施方案中,接着会出现一般保护错误(generalprotection fault,GPF)。
当所述执行单元500确认所述使能信号时,所述安全检查逻辑700B提供所述使能信号、收到的SCID值、以及收到的I/O端口号给所述BIU 505内的逻辑。所述BIU 505内的逻辑使用所述SCID值与收到的I/O端口号以存取所述SEM I/O权限位图800,并且由所述SEMI/O权限位图800提供相应的位给所述安全检查逻辑700B。如果所述SEMI/O权限位图800的相应位被清除成‘0’,则所述安全检查逻辑700B可以确认输出“执行”信号给所述执行单元500。为响应被确认的执行信号,所述执行单元500可以执行所述I/O指令。另一方面,如果所述相应的位被设定为‘1’,则所述安全检查逻辑700B可能确认所述执行单元500所提供的输出“SEM安全执行”信号。为响应被确定的SEM安全异常信号,所述执行单元500可以不执行所述I/O指令,并且反而可以执行所述SEM安全异常处理程序。
当该I/O指令试图存取16位字节I/O端口,或32位的双字节I/O端口时,所述执行单元500可以依次提供多个字节I/O端口号给所述安全检查逻辑700B。如果所述安全检查逻辑700B确认用于所述字节I/O端口号的执行信号中的每一个,所述执行单元500可以执行所述I/O指令。另一方面,如果所述安全检查逻辑700B确认所述SEM安全异常信号用于一个或多个字节I/O端口号,则所述执行单元500可以不执行该I/O指令,且反而可以执行所述SEM安全异常处理程序。
图8图示所述SEM I/O权限位图800的一个具体实施方案以及用于存取SEM I/O权限位图800的机制的一个具体实施方案。可以将图8的机制具体实施于BIU 505内的逻辑中,且可以应用于该计算机系统300在SEM中运行时。在图8的具体实施方案中,所述SEM I/O权限位图800包括存储于部份内存306内的单一64k位(8千字节)I/O权限位图。所述I/O端口号用作从该模型特定的寄存器802内容(即,所述安全执行模式I/O权限位图800的基地址)到所述I/O权限位图表800的位偏移(bit offset)。以此方式存取的位对应所述I/O端口(由所述I/O端口号定义)的位。
如上述,所述计算机系统300具有不同的SCID值,此处n为一整数且n≥1。所述SEM I/O权限位图800可以包括用于n个不同的SCID值中的每一个的不同的I/O权限位图800。每一个单独的I/O权限位图800可以包括64k位,或8k字节。
在其它的具体实施方案中,所述MSR 802可以用来存储所述SEMI/O权限位图800的开始(即,基址)地址。包括存取I/O端口的I/O指令内存分页的SCID的值可以被用作从所述模型特定的寄存器802内容(即,所述SEM I/O权限位图800的基地址)到一个或多个64k位(8k字节)的组成I/O权限位图800的I/O权限位图的偏移地址。结果,对应SCID值的I/O权限位图将被存取。接着,所述I/O端口号可以被用作相应于SCID值的I/O权限位图的一位偏移。以此方式存取的位对应于I/O端口(由所述I/O端口号定义)的位。
图9图示安全模式SMCALL/SMRET目标地址寄存器(SMSTAR)850与用来处理SEM安全异常的安全模式GS基址(SMGSBASE)寄存器852。基于安全的理由,所述SEM安全异常机制不能仰赖任何正常模式可存取的控制寄存器或数据结构的内容在SEM安全异常出现时提供所述SEM安全异常处理程序与堆栈的地址。
所述SMSTAR寄存器850包括“SMRET CS选择器与SS选择器基址”字段、“SMCALL CS选择器与SS选择器基址”字段、以及“目标EIP地址”字段。所述SMGSBASE寄存器852包括安全模式GS基地址。存储于所述SMSTAR寄存器850与SMGSBASE寄存器852的值通常是在开机时被设定。
图10图示出现SEM安全异常时所述操作系统402所产生的SEM安全异常堆栈框架900的一个具体实施方案。所述SEM安全异常堆栈框架900开始于GS[00h]。
错误码驻于所述SEM安全异常堆栈框架900的GS[00h],该出错程序的指令指针(EIP)的内容驻于所述SEM安全异常堆栈框架900的GS[04h]。所述出错程序的程序段(CS)寄存器的内容驻于所述SEM安全异常堆栈框架900的GS[08h]。所述出错程序或程序段的旗标(EFLAGS)寄存器的内容驻于所述SEM安全异常堆栈框架900的GS[0Ch]。所述出错程序的堆栈指针(ESP)寄存器的内容驻于所述SEM安全异常堆栈框架900的GS[10h]。出错程序的堆栈段(SS)寄存器的内容驻于所述SEM安全异常堆栈框架900的GS[14h]。
图11图示图10中SEM安全异常堆栈框架900的错误码的示范格式1010。在图11的具体实施方案中,所述错误码格式包括写入/读取(W/R)位、用户/管理员(U/S)位、模型特定的寄存器(MSR)位、以及系统管理中断(SMI)位。所述写入/读取(W/R)位,当所述SEM安全异常在写入运行期间出现时为‘1’,以及当所述SEM安全异常在读取或执行运行期间出现时为‘0’。所述用户/管理员(U/S)位,当所述安全执行模式(SEM)异常在用户模式(CPL=3)出现时为‘1’,以及当所述SEM安全异常在管理员模式(CPL=0)出现时为‘0’。
所述模型特定的寄存器(MSR)位,当所述SEM安全异常在试图存取安全模型特定的寄存器(MSR)期间出现时为‘1’,以及当所述SEM安全异常在试图存取安全MSR期间不出现时为‘0’。所述系统管理中断(SMI)位,当所述SEM安全异常在系统管理中断(SMI)期间出现时为‘1’,以及当所述SEM安全异常在SMI期间不出现时为‘0’。
图12为根据本发明的一方面,图示一种处理SEM安全异常的方法1100的具体实施方案的流程图。该方法1100可以包括:在方块1105通过硬件或通过软件(例如透过通过SMCALL指令)产生所述SEM安全异常。所述方法1100包括:在方块1110,在基地址加上偏移地址处建立SEM堆栈框架900。所述安全模式GS基地址由该SMGSBASE寄存器852读取。所述SEM堆栈指针可以由所述安全模式GS基地址偏移所述SEM堆栈框架的字节数形成。所述SEM堆栈框架900可以被写入内存因此所述错误码是存储在所述SMGSBASE寄存器852的安全模式GS基地址所指向的位置。所述SEM安全异常的错误码由所述SEM异常硬件产生。所述SEM安全异常本身可能已由所述操作系统402、设备驱动程序406、应用程序400,等等产生。所述出错程序段值被写入GS空间,如图10所示。
接下来,在方块1115,所述方法1100由S所述MSTAR寄存器850读取所述目标EIP地址以及SMCALL CS与SS选择器值,并且存储所述目标EIP地址以及所述SMCALL CS与SS选择器值于适当的寄存器。该目标EIP地址被加载到所述EIP寄存器。所述CS选择器值被加载到所述CS寄存器,以及所述SS选择器值被加载到所述SS寄存器。所述SS选择器地址可以由所述CS选择器地址得到。所述目标EIP地址为指向所述SEM安全异常处理器码的第一个指令。
在方块1120,所述方法1100也执行SWAPGS指令。该SWAPGS指令的执行时将所述SMGSBASE寄存器902的内容与所述GS分段描述符的基地址互换,其是在CPU 402中高速缓冲存取。随后的SEM安全异常处理器指令可使用只置换GS空间寻址法(GS space displacement-onlyaddressing)存取所述SEM安全异常堆栈框架900与在所述SEM安全异常堆栈框架900上或下的内存。所述GS空间寻址法提供所述SEM安全异常处理程序用的安全内存。
所述安全内核404内的SEM安全异常处理程序可能包括被安全位(security bit)保护的数个分页的虚拟内存,例如储存于SEM寄存器510内或其它在此描述的安全措施。所述SEM安全异常处理程序可以包括被安全位保护的数个分页的物理内存,例如储存于SEM寄存器510内或其它在此描述的安全措施。
接下来,在方块1120,所述方法1100分析(parse)所述错误码。当判定所述SEM安全异常的来源时,可以一次分析一个错误码位。视需要,在方块1130,所述方法1100将一个或多个在产生该SEM安全异常的前执行或准备执行的指令译码。所述特殊指令及其操作数可以提供所述SEM安全异常的来源的额外信息。在方块1135,所述方法1100基于所述错误码以及可以造成所述SEM安全异常的指令之前或之后的指令,估计所述SEM安全异常。方块1135的估计可以包括:参考位图或执行安全算法。所述位图可以用一个或多个错误码、一个或多个位的错误码、以及一个或多个特定指令和/或其操作数加以索引。所述安全算法可以包括所述安全内核404所完成的编码树(code tree)。所述位图与安全算法两者取决于:实际的硬件310,等等以及具体实施于计算机系统300内的操作系统402。
一旦所述方法1100在方块1135估计到所述SEM安全异常,若需要,所述方法1100在方块1140对所述估计采取动作。所述SEM安全异常可以被忽略并恢复运行。所述出错的指令或程序段可以被忽略。所述出错的指令或程序段可以被容纳因此所述出错的指令或程序段由虚拟内存或I/O空间内的代理(proxy)执行。
在方块1145,所述方法1100将所述计算机系统300大部份复原为SEM安全异常前的配置。在方块1150,当所述SEM安全异常处理程序退出时,执行另一个SWAPGS指令以返回所述安全模式基地址值为其原始值并执行SMRET指令以返回到先前的运行模式。当执行所述SWAPGS指令时,所述安全内核404写入所述出错的编码的程序段(CS)用的值至所述SMSTAR寄存器850的SMRET CS选择器与SS选择器基址字段。所述SMRET指令可以返回所述系统300至正常模式。和所述SYSRET指令不同,所述SMRET指令可以使目前的优先级(CPL)为0,并且不设定EFLAGS.IF位。
应注意,在一个具体实施方案中,主要是在硬件中完成该方法1100的方块1105至1115,同时主要是在软件中完成方块1120至1135。在另一个具体实施方案中,主要是在软件中完成该方法1100。在另一个具体实施方案中,主要是在硬件中完成该方法1100。应注意,在一个具体实施方案中,将所述EIP地址修改以避开可能会导致SEM安全异常的指令。
请回头参考图7A,当计算机系统300在SEM中运行时,安全检查逻辑700A收到当前执行任务(即,当前执行中的指令)的CPL,与正常的控制位及一个或多个SEM位509(与物理地址驻于的选定内存分页有关)。安全检查逻辑700A使用上述信息以判定存取那一部份内存是否被授权。
所述CPU 302可以是一个x86处理器,并且可以包括程序段(CS)寄存器,其为x86处理器架构的多个16位段寄存器中的一个。每一个段寄存器选定64k块的内存,称作一个段。在分页使能的保护模式中,所述CS寄存器被加载到段选择器(segment selector),其表示分段可执行的内存306。所述分段选择器的最高阶(即,最高有效)位是用来存储表示分段内存的信息,所述分段内存包括下一个要由CPU 302的执行单元500执行的指令。指令指针(IP)寄存器是用来存储所述CS寄存器所表示的分段的偏移地址。所述CS:IP对是表示下一个指令的段地址。所述CS寄存器的两个最低阶(即,最小有效)位是用来存储当前执行单元500所执行任务的CPL的值(即,当前任务的CPL)。
所述MEM SCU 316A的安全检查逻辑700A可以产生页错误(“PF”)信号与“SEM安全异常”信号,并且提供所述PF与所述SEM安全异常信号至所述分页单元602内的逻辑。当所述安全检查逻辑700A确认所述PF信号时,所述MMU 502传送所述PF信号至执行单元500。为响应PF信号,执行单元500可以使用x86处理器架构的众所周知的中断描述符表(IDT)向量机制(vectoring mechanism)存取及执行PF处理程序例行程序(handler routine)。
当所述安全检查逻辑700A确认所述SEM安全异常信号时,所述MMU502传送所述SEM安全异常信号至执行单元500。与正常处理器异常使用x86处理器架构IDT向量机制不同,不同的向量方法可以用来处理SEM安全异常。可以通过一对寄存器(例如,MSRs)分派所述SEM安全异常,其是与x86“SYSENTER”和“SYSEXIT”指令运行的方式类似。该对寄存器可能是“安全异常进入点”寄存器,并且可以定义所述SEM安全异常出现时执行指令用的分支目标地址。所述安全异常进入点寄存器可能定义程序段(CS),然后指令指针(EIP,或64位版本RIP)、堆栈段(SS)、以及堆栈指针(ESP,或64位本RSP)等要登录至SEM安全异常处理器的值。所述执行单元500可以存入先前的SS、ESP/RSP、EFLAGS、CS、以及EIP/RIP等值于新的堆栈以表示在那里出现SEM安全异常。此外,所述执行单元500可以存入错误码到所述堆栈。如上述,当先前的SS与ESP/RSP值被存储,并且完成堆栈切换时,可以不使用IRET指令,即使没有出现CPL的改变。所述SEM安全异常处理程序经由SMRET指令返回。
可以将以上揭示的本发明的某些方面具体实施于硬件或软件。因此,详细说明于此的某些部份最后是以硬件实施过程呈现而详细说明于此的某些部份最后以软件实施过程呈现,其包括对运算系统或计算设备的内存内数据位的运算的符号表示(symbolic representation)。所述描述与表示是本领域技术人员向其它使用硬件及软件的熟练于本领域的技术人员最有效表达他们工作成果本质的手段。方法与运算两者均需要物理量的物理处理。就软件而言,通常尽管不需要,所述物理量采取能够予以储存、传送、结合、比较、及其它方式处理的电子、磁性、或光学信号的形式。主要是基于一般用法,有时称所述信号为位、值、单元、符号、字符、项、数目、诸如此类被证明是很方便的。
不过,应注意,所有这些及类似的术语是要与适当的物理量有关且为只适用于所述量的便利标记。除非特别说明或显而易见,本揭示内容从头到尾的描述论及电子设备的动作与处理,该电子设备是在某些电子设备储存器处处理及转换表现为物理(电子、磁性、或光学)量的数据为同样表现于储存器、传输装置、或显示装置内物理量的其它数据。表示此类描述的示范性术语有(但不局限于)“处理”、“运算”、“计算”、“判断”、“显示”、诸如此类。
应注意,本发明软件实施方面通常在某种形式的程序存储媒介或被实施为某种类型的传输媒介上被编码。该程序储存媒介可能为磁性类型(例如,软盘或硬盘)或光学类型(例如,只读光盘内存,或“CDROM”),且可以是只读或随机存取。同样,该传输媒介可能是对绞线(twisted wire pair),同轴电缆(coaxial cable),光纤,或某些其它本领域公知的适当的传输媒介。本发明不局限于任何给定的具体实施方面。
以上揭示的特定具体实施方案只具有图示说明性,因为对受益于本文教导的本领域的技术人员而言显然能将本发明修改及实施为不同但等价的方式。此外,除了以下权利要求中所描述的内容,不希望受限于在此陈述的构造及设计的细节。因此,显然有可能改变或修改以上所描述的特定的具体实施方案,且将所有此类的改变视为是在本发明的范畴及精神内。相应的,提出以下权利要求恳请保护。

Claims (10)

1、一种方法,包括:
在安全内存内基地址处建立安全异常堆栈框架(900);
写入出错码序地址与一个或多个寄存器值到所述安全异常堆栈框架(900);以及
执行多个安全异常指令。
2、根据权利要求1所述的方法,其中建立该安全异常堆栈框架(900)包括:接收安全异常,其包括硬件安全执行模式安全异常与软件安全执行模式安全异常中的至少一项,并且其中在所述安全内存内基地址处建立安全异常堆栈框架(900)进一步包括:确认与所述安全异常关联的错误码的位置。
3、根据权利要求1所述的方法,其中在所述安全内存内基地址处建立安全异常堆栈框架(900)进一步包括:
在错误码上写入目标地址;以及
从一个或多个寄存器(510)写入多个寄存器值。
4、根据权利要求1所述的方法,进一步包苦括:
由一个或多个安全寄存器(510)读取目标地址与复多个寄存器值。
5、根据权利要求1所述的方法,其中在安全内存内基地址处建立安全异常堆栈框架(900)包括:在所述安全内存内基地址写入堆栈指针加上一个偏移地址。
6、根据权利要求1所述的方法,进一步包括:交换内存基地址寄存器的一个地址和安全寄存器(902)内的一个地址,并且交换安全寄存器(902)内的地址和内存基地址寄存器的地址。
7、根据权利要求1所述的方法,其中执行所述多个安全异常指令包括:分析错误码或译码出错的指令以判定该安全异常的原因。
8、一种系统,包括:
一个或多个安全检查单元(316)经配置用于监视请求,其中一个或多个安全检查单元(316)被进一步配置用以产生安全异常以响应一个或多个请求;
多个安全储存位置(510);以及
处理器(302)被配置用于:
在安全内存内基地址处建立安全异常堆栈框架(900);以及
写入出错码的序地址与一个或多个寄存器值到所述安全异常堆栈框架(900);
其中所述处理器(302)被进一步设置用于执行安全内核(404),其中所述安全内核(404)被进一步配置用于:
执行多个安全异常指令。
9、根据权利要求8所述的系统,其中所述安全内核(404)被进一步配置可用来接收安全异常通告,包含错误码、硬件安全执行模式安全异常通告、以及软件安全执行模式安全异常通告中的至少一项。
10、根据权利要求8所述的系统,其中所述处理器(302)被进一步配置可用于:
由一个或多个安全寄存器(510)读取一个或多个寄存器值;
写入一个或多个寄存器值到所述安全内存;以及
转移控制到所述安全内核(404)。
CN028290593A 2002-05-31 2002-12-17 用于处理安全异常的方法与系统 Expired - Lifetime CN1628284B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/161,500 2002-05-31
US10/161,500 US7451324B2 (en) 2002-05-31 2002-05-31 Secure execution mode exceptions
PCT/US2002/040219 WO2003102770A1 (en) 2002-05-31 2002-12-17 Secure execution mode exceptions

Publications (2)

Publication Number Publication Date
CN1628284A true CN1628284A (zh) 2005-06-15
CN1628284B CN1628284B (zh) 2013-04-24

Family

ID=29583455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028290593A Expired - Lifetime CN1628284B (zh) 2002-05-31 2002-12-17 用于处理安全异常的方法与系统

Country Status (7)

Country Link
US (1) US7451324B2 (zh)
EP (1) EP1509843A1 (zh)
JP (1) JP2005528690A (zh)
KR (1) KR100992611B1 (zh)
CN (1) CN1628284B (zh)
AU (1) AU2002361717A1 (zh)
WO (1) WO2003102770A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106454914A (zh) * 2016-11-10 2017-02-22 邦彦技术股份有限公司 一种ims的大批量业务出现异常的定位方法及装置
CN107807870A (zh) * 2017-10-30 2018-03-16 郑州云海信息技术有限公司 一种存储服务器主板掉电保护功能的测试方法和系统
CN112269597A (zh) * 2020-10-23 2021-01-26 中国人民解放军战略支援部队信息工程大学 处理器指令异常行为检测方法及系统

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US7784063B2 (en) * 2004-01-09 2010-08-24 Hewlett-Packard Development Company, L.P. Method and apparatus for system caller authentication
US7617534B1 (en) 2005-08-26 2009-11-10 Symantec Corporation Detection of SYSENTER/SYSCALL hijacking
US7685638B1 (en) 2005-12-13 2010-03-23 Symantec Corporation Dynamic replacement of system call tables
US8572729B1 (en) * 2006-01-30 2013-10-29 Mcafee, Inc. System, method and computer program product for interception of user mode code execution and redirection to kernel mode
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
EP1881404A1 (fr) * 2006-07-20 2008-01-23 Gemplus Procédé de protection dynamique des données lors de l'exécution d'un code logiciel en langage intermédiaire dans un appareil numérique
GB2478733B (en) 2010-03-15 2013-08-14 Advanced Risc Mach Ltd Apparatus and method for handling exception events
US9507937B2 (en) * 2012-03-30 2016-11-29 Intel Corporation Reporting malicious activity to an operating system
US9298911B2 (en) * 2013-03-15 2016-03-29 Intel Corporation Method, apparatus, system, and computer readable medium for providing apparatus security
US20160048679A1 (en) * 2014-08-18 2016-02-18 Bitdefender IPR Management Ltd. Systems And Methods for Exposing A Current Processor Instruction Upon Exiting A Virtual Machine
CN106569904A (zh) * 2015-10-09 2017-04-19 中兴通讯股份有限公司 一种信息存储方法和装置、及服务器
US10146606B2 (en) * 2016-04-06 2018-12-04 Dell Products, Lp Method for system debug and firmware update of a headless server
US11783064B2 (en) * 2017-07-10 2023-10-10 Intel Corporation Techniques to provide hardware enforced protection environment for a system management mode
CN109787777B (zh) * 2017-11-10 2020-04-03 北京金山云网络技术有限公司 一种网卡模式切换方法、装置、电子设备及存储介质
US11797713B2 (en) 2020-12-16 2023-10-24 International Business Machines Corporation Systems and methods for dynamic control of a secure mode of operation in a processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784631A (en) * 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US5369770A (en) 1992-11-02 1994-11-29 Microsoft Corporation Standardized protected-mode interrupt manager
US5535397A (en) 1993-06-30 1996-07-09 Intel Corporation Method and apparatus for providing a context switch in response to an interrupt in a computer process
US5937186A (en) 1994-03-24 1999-08-10 International Business Machines Corporation Asynchronous interrupt safing of prologue portions of computer programs
US5684948A (en) 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6792499B1 (en) * 2000-11-14 2004-09-14 Cypress Semiconductor Corp. Dynamic swapping of memory bank base addresses
US6697959B2 (en) * 2000-12-20 2004-02-24 Bull Hn Information Systems Inc. Fault handling in a data processing system utilizing a fault vector pointer table
US6725362B2 (en) * 2001-02-06 2004-04-20 Intel Corporation Method for encoding an instruction set with a load with conditional fault instruction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106454914A (zh) * 2016-11-10 2017-02-22 邦彦技术股份有限公司 一种ims的大批量业务出现异常的定位方法及装置
CN107807870A (zh) * 2017-10-30 2018-03-16 郑州云海信息技术有限公司 一种存储服务器主板掉电保护功能的测试方法和系统
CN107807870B (zh) * 2017-10-30 2021-04-27 郑州云海信息技术有限公司 一种存储服务器主板掉电保护功能的测试方法和系统
CN112269597A (zh) * 2020-10-23 2021-01-26 中国人民解放军战略支援部队信息工程大学 处理器指令异常行为检测方法及系统
CN112269597B (zh) * 2020-10-23 2023-03-24 中国人民解放军战略支援部队信息工程大学 处理器指令异常行为检测方法及系统

Also Published As

Publication number Publication date
US7451324B2 (en) 2008-11-11
EP1509843A1 (en) 2005-03-02
AU2002361717A1 (en) 2003-12-19
KR20040111714A (ko) 2004-12-31
WO2003102770A1 (en) 2003-12-11
JP2005528690A (ja) 2005-09-22
KR100992611B1 (ko) 2010-11-08
CN1628284B (zh) 2013-04-24
US20030226022A1 (en) 2003-12-04

Similar Documents

Publication Publication Date Title
CN1628284A (zh) 安全执行模式异常
US7380049B2 (en) Memory protection within a virtual partition
US6823433B1 (en) Memory management system and method for providing physical address based memory access security
KR101955189B1 (ko) 스왑 아웃된 메모리 페이지의 가상 머신 가상화된 메모리로의 맵핑을 위한 가상 머신에서의 페이지 오류 삽입
EP1939754B1 (en) Providing protected access to critical memory regions
US6854039B1 (en) Memory management system and method providing increased memory access security
TWI255402B (en) Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture
US7356735B2 (en) Providing support for single stepping a virtual machine in a virtual machine environment
CN1904860A (zh) 无效存储器,清除缓冲区表项
US20230124004A1 (en) Method for handling exception or interrupt in heterogeneous instruction set architecture and apparatus
CN1285038C (zh) 控制装置对内存的访问以提供增强的内存访问安全的系统与方法
US10565141B1 (en) Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks
KR20040101332A (ko) 구획된 보안을 위한 입/출력 허가 비트맵
Allievi et al. Windows internals, part 2
US20030188169A1 (en) System and method for controlling device-to-device accesses within a computer system
JP7349437B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
WO2023034586A1 (en) Systems and methods for on-demand loading of metadata
JP2021157766A (ja) シャドウスタックを効率的に管理および処理するための装置および方法
US20240354412A1 (en) Systems and methods for on-demand loading of metadata
Razeen et al. Better performance through thread-local emulation
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
ASS Succession or assignment of patent right

Owner name: GLOBALFOUNDRIES SEMICONDUCTORS CO., LTD

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES CORPORATION

Effective date: 20100721

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA STATE, THE USA TO: GRAND CAYMAN ISLAND, BRITISH CAYMAN ISLANDS

TA01 Transfer of patent application right

Effective date of registration: 20100721

Address after: Grand Cayman, Cayman Islands

Applicant after: GLOBALFOUNDRIES Inc.

Address before: California, USA

Applicant before: ADVANCED MICRO DEVICES, Inc.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210310

Address after: California, USA

Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

TR01 Transfer of patent right
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20130424