CN114868126A - 处理器处的管理程序安全事件处置 - Google Patents

处理器处的管理程序安全事件处置 Download PDF

Info

Publication number
CN114868126A
CN114868126A CN202080068815.7A CN202080068815A CN114868126A CN 114868126 A CN114868126 A CN 114868126A CN 202080068815 A CN202080068815 A CN 202080068815A CN 114868126 A CN114868126 A CN 114868126A
Authority
CN
China
Prior art keywords
event
processor
hypervisor
information
guest
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.)
Pending
Application number
CN202080068815.7A
Other languages
English (en)
Inventor
戴维·卡普兰
耶莱娜·伊利克
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.)
Advanced Micro Devices 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 CN114868126A publication Critical patent/CN114868126A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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/2149Restricted operating environment

Landscapes

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

Abstract

通过限制管理程序对访客虚拟机的事件(中断或异常)处置路径的一个或多个部分的访问来保护虚拟化计算环境免受恶意管理程序的影响,其中所述访客虚拟机包括用于管理访客的安全性的安全层和用于处置事件处理的一个或多个非安全层。所述管理程序被限制向所述访客虚拟机(本文简称为“访客”)提供正常的异常信息,而是仅被允许向所述访客的所述安全层提供事件信号。响应于所述事件信号,所述访客的所述安全层访问指定存储器区域以获取事件信息,审查所述信息,并且向所述访客的另一个非安全层提供所述信息,以便只有所述事件信息符合指定的安全协议,才进行处理。

Description

处理器处的管理程序安全事件处置
背景技术
为了增强计算机服务的有效提供,一些服务器和其他计算机系统实现了虚拟化计算环境。在这样的环境中,主机计算机系统同时执行多个虚拟机,有时称为主机计算机系统的“访客”。为了简化访客的设计和执行,主机计算机系统采用管理程序(hypervisor),所述管理程序管理系统硬件资源向并发式执行的访客的提供。即,管理程序管理硬件资源的提供,使得硬件对每个访客来说就好像访客正在其自己的专用计算机系统上执行一样。因此,访客可以采用标准操作系统、库、驱动程序和其他程序以与系统硬件进行对接。此外,管理程序通过在不同访客之间提供隔离层来为访客提供安全性,使得例如一个访客无法访问与不同访客相关联的私有数据。然而,在一些情况下,管理程序本身提供了用于恶意访问访客数据或以其他方式不适当地操纵访客操作的途径。
附图说明
通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。在不同附图中使用相同附图标记指示类似或相同项。
图1是根据一些实施方案的将管理程序与事件处置隔离的计算机系统的框图。
图2是示出了根据一些实施方案的图1的计算机系统的示例的框图,该示例采用虚拟机的安全层来响应于来自管理程序的信号而访问事件队列。
图3是根据一些实施方案的通过采用虚拟机的安全层来访问事件队列来隔离管理程序与事件处置的方法的流程图。
图4是示出了根据一些实施方案的图1的计算机系统的示例的框图,该示例采用安全存储器区域来存储事件控制信息。
图5是根据一些实施方案的通过采用安全存储器区域来存储事件控制信息来隔离管理程序与事件处置的方法的流程图。
具体实施方式
图1至图5示出了用于通过限制管理程序对访客虚拟机的事件(中断或异常)处置路径的一个或多个部分的访问来保护虚拟化计算环境免受恶意管理程序影响的技术,其中访客虚拟机包括用于管理访客的安全性的安全层和用于处置事件处理的一个或多个非安全层两者。例如,在一些实施方案中,管理程序被限制向访客虚拟机(本文简称为“访客”)提供正常的异常信息,并且替代地仅被允许向访客的安全层提供事件信号。响应于所述事件信号,所述访客的所述安全层访问指定存储器区域以获取事件信息,审查所述信息,并且向所述访客的另一个非安全层提供所述信息,以便只有所述事件信息符合指定的安全协议,才进行处理。
在其他实施方案中,管理程序被限制访问事件控制信息,诸如任务优先级寄存器(TPR)信息,所述事件控制信息由访客用于确定是否以及如何处理事件。事件控制信息存储在管理程序不可访问的加密存储器区域。特别地,响应于接收到来自管理程序的对事件的指示,访客的安全层在加密存储器区域存储用于事件的事件控制信息,并且处理器的事件接口使用事件控制信息来确保事件符合指定的事件协议,诸如通过确保事件优先级信息符合存储在加密区域处的TPR信息进行。如果事件信息不符合指定的协议,则不处理对应的事件。由于管理程序无法访问加密存储器区域,因此管理程序无法使用事件控制信息来利用访客。
在一些实施方案中,管理程序被限制向访客的不安全层提供异常信息并且被限制访问用于访客的事件控制信息。而是,管理程序将事件发信号通知给访客的安全层,作为响应,所述安全层审查相关联的事件信息是否符合安全协议。响应于事件信息符合安全协议,安全层向非安全层提供事件信息以进行处理,并且将用于事件的事件控制信息存储在加密存储器区域。非安全层访问在加密存储器区域的事件控制信息,并且使用事件控制信息来处理事件。
通过限制管理程序对事件队列和事件控制信息中的一者或多者的访问,保护访客免受恶意管理程序的攻击。为了经由一个示例进行说明,在一些情况下,访客的事件处置路径依赖于关于系统硬件行为的指定假设,诸如系统硬件将不会生成优先级比由TPR设置的优先级更低的中断或发信号通知所述中断的假设。然而,由于管理程序在虚拟化计算环境中提供了在访客和系统硬件之间的抽象层,因此恶意管理程序能够生成违反装置行为的指定假设的事件,诸如通过向优先级低于TPR设置的优先级的访客操作系统提供中断而进行。原本将被禁止的这些事件会使访客的安全数据和其他方面容易受到未经授权的访问或操纵的影响。使用本文描述的技术,防止了恶意管理程序以这种方式利用访客,从而提高了系统安全性。此外,如本文所述,在一些实施方案中,所述技术用处理器的现有事件接口来实现,该处理器被设计为接收和处理事件,从而减少了实现技术所需的软件或硬件重新设计的量。
图1示出了根据一些实施方案的限制管理程序对事件处置路径的部分的访问的处理系统100的框图。处理系统100是通常执行计算机指令集(例如,计算机程序)来代表电子装置进行任务的系统。因此,在不同的实施方案中,处理系统100是电子装置的一部分,所述电子装置诸如台式计算机或膝上型计算机、服务器、智能手机、平板计算机、游戏控制台等。为了描述的目的,假设处理系统100是实现虚拟化计算环境的服务器的一部分。
为了支持计算机指令的执行,处理系统100包括处理器101和存储器110。存储器110是易失性存储器,诸如随机存取存储器(RAM);非易失性存储器,诸如闪存存储器;或其组合,并且代表处理器101存储数据。特别地,当处理器101执行指令时,数据(包括指令和操作数数据)被写入存储器110和从存储器110进行读取。应当理解,虽然存储器110被示为与处理器101分离,但在一些实施方案中,存储器110的全部或一部分是处理器101的一部分并且被并入与处理器101相同的半导体管芯或半导体封装中。
处理器101是处理装置,诸如中央处理单元(CPU),其包括一个或多个处理器核心(例如,处理器核心102)和用于执行计算机指令的支持电路。虽然为了简单起见处理器101被示为具有单个处理器核心,但是应当理解,在一些实施方案中,处理器101包括多个处理器核心。
在所描绘的示例中,支持指令执行的电路包括输入/输出(I/O)控制模块107,其提供至一个或多个输入/输出装置(诸如键盘)的接口。在一些实施方案中,处理器101包括额外的支持电路,诸如与计算机或通信网络对接的一个或多个网络接口、与处理器101的存储器子系统对接的一个或多个存储器控制器等。在执行其指定操作的过程中,支持电路生成在本文被称为处理器事件(例如,事件108)的条件。
如本文所使用的,处理器事件是指由处理器的硬件模块发信号通知的中断或异常。例如,响应于用户操纵输入/输出装置,I/O控制模块107发信号通知中断以允许处理器101响应用户操纵。电路调用事件以便触发事件处置程序(诸如中断处置程序或异常处置程序)的执行,以处理事件。例如,响应于在键盘或其他输入装置处的用户输入,I/O控制模块107调用中断事件以触发中断处置程序,所述中断处置程序处理用户输入,诸如通过将基于用户输入的数据存储在指定缓冲器(未示出)处进行。
为了响应于由I/O控制模块107或其他电路发信号通知的事件来触发异常处置程序,处理器101使用指定的电路以指定的序列执行指定的操作,诸如指定的事件队列等。处理器101用来处置处理器事件的操作、序列和电路在本文中被称为处理器101的事件处理路径。为了辅助处置事件,处理器101包括事件接口109。在一些实施方案中,事件接口109是符合指定事件接口标准的模块,诸如高级可编程中断控制器(APIC)或x2APIC标准中的任一个。因此,在一些实施方案中,事件接口109是一个模块,其接收指示处理器事件(诸如中断和异常)的信号,识别事件的源或向量,以及提供对事件的指示,连同至处理器核心102的关于事件的任何额外的信息。作为响应,处理器核心102调用与事件相关联的事件处置程序。特别地,处理器核心102使用由事件接口提供的信息来选择对应于事件的事件处置程序,并且执行事件处置程序,从而处置事件。
如上所述,在虚拟化计算环境中,事件处理路径提供了寻求未经授权访问处理器101的数据和操作的恶意实体的潜在的攻击途径。为了防止此类攻击,当执行虚拟化计算环境时,处理器101限制管理程序对事件处理路径的一个或多个部分的访问。
为了说明,在图1的示例中,处理器101通过同时执行两个虚拟机VM1 104和VM2106(也称为访客104和106)来实现虚拟化计算环境。访客104和106中的每一个是虚拟机,其包括一个或多个计算机程序,诸如操作系统、应用程序等。在一些实施方案中,为了提供防止未经授权的访问或操纵的安全性,访客104和106包括多层,其中每一层具有指定的访问保护以防止未经授权的访问。例如,访客104具有多层,其包括受保护以免被在其他层的软件访问和操纵的安全层120(指定的虚拟机特权级别0(VMPL0))和执行针对访客104的事件处理(诸如中断处置程序、异常处置程序等的执行)的非安全层132。因此,例如,在一些实施方案中,非安全层132是执行操作系统的VMPL3层,但是来自操作系统的用于改变在VMPL0层的数据或操作的命令被忽略,除非其与指定的安全协议匹配,从而保护访客104以免被利用。
在其他实施方案中,安全层120为位于非安全层132的操作系统模拟中央处理单元(CPU),并且安全层120为非安全层132执行中断处置和APIC模拟两者。这允许在非安全层132处执行的操作系统采用事件接口109作为标准APIC或x2APIC接口,其中安全层120执行事件处置,如本文进一步所述。
为了支持虚拟化,处理器101包括管理程序105,其提供了在处理器101的硬件资源和访客104和106之间的接口。特别地,访客104和106包括标准装置驱动程序和其他接口软件,所述其他接口软件生成硬件请求和其他通信,就好像访客正在专用计算机系统上执行一样。管理程序105接收来自装置驱动程序和其他接口软件的通信,并且基于所述通信来管理硬件资源向访客104和106的提供。管理程序105因此在访客104和106和处理器101的硬件资源之间提供一层,其抽象硬件资源,使得访客104和106可以使用为专用计算机系统设计的标准硬件接口软件。
为了进一步支持虚拟化,管理程序105处置事件处理的至少一些方面。例如,响应于来自I/O控制模块107的对中断的指示,管理程序105识别与中断相关联的访客,并且经由事件接口109将中断连同任何相关联的事件处置信息(诸如中断标识符、与中断相关联的优先级级别等)发信号通知给访客。传统上,管理程序使用事件接口109将事件硬件信息直接注入访客,并且访客采用对应的事件处置程序以基于注入的事件处置信息来处理事件。然而,如上所述,允许管理程序经由事件接口109或事件处置路径的其他部分注入任何事件处置信息为恶意管理程序提供了潜在的攻击途径。因此,处理器101限制管理程序访问事件处理路径的一个或多个部分。
为了说明,访客104和106的每一层可单独地以两种不同模式(指定为受限注入模式和交替注入模式)中的任一种操作。这些模式将相对于其在访客104处的实现方式进行描述,但是应当理解,访客106以类似的方式操作。在受限注入模式中,不允许管理程序105直接向访客的非安全层提供事件处置信息。而是,管理程序105经由事件接口109将事件的发生发信号通知给访客104的安全层120,并且将用于事件的事件处置信息存储在被存储在存储器110处的事件队列130处。在一些实施方案中,事件处置信息包括以下中的一个或多个:事件源的指示符(例如,触发中断的硬件模块)、事件的类型(例如,事件是中断还是异常、中断或异常的类型等)、事件的优先级级别等。
响应于事件信号,安全层120调用异常处置程序以访问事件队列130处的事件处置信息。经由异常处置程序,安全层120确定事件控制信息是否符合指定的安全协议,并且如果符合,则将事件处置信息提供给非安全层132以供正常处理。例如,在一些实施方案中,安全层120确定事件处置信息是否匹配处理器101的预期硬件行为。因此,在一些实施方案中,安全层120将事件优先级级别、事件类型、事件源、事件标识符等中的一个或多个与对应的指定值范围进行比较。如果任何事件信息在对应的指定范围之外,则安全层120不将事件发信号通知给非安全层132,安全层120也不向非安全层132提供事件处置信息。在一些实施方案中,安全层120采取额外的补救措施,诸如经由网络将潜在的被尝试的安全漏洞发信号通知给用户或其他计算机系统,从而停止访客104的执行等。
如果事件处置信息符合指定的安全协议,则安全层120将事件连同事件处置信息发信号通知给事件接口109。作为响应,事件接口109将事件通知给非安全层132并且将事件处置信息提供给非安全层132。非安全层132然后使用事件处置信息来处理事件,诸如通过调用事件的异常处置程序而进行。因此,在允许将信息经由事件接口109传递到非安全层132以进行处理之前,事件处置信息首先由安全层120进行审查。下面相对于图2和图3进一步描述受限注入模式。
在交替注入模式中,访客104的层(例如,非安全层132)使用事件控制信息118处理事件处置信息。事件控制信息118是控制事件接口109的信息。例如,在一些实施方案中,事件控制信息118包括设置被允许进行处理的事件的优先级级别的任务优先级寄存器(TPR)信息。如果由管理程序105提供的事件具有低于TPR信息的优先级级别,则不处理该事件,从而保护访客104免受恶意攻击。
在一些实施方案中,事件控制信息118存储在存储器110的加密区域,其中存储在加密区域的数据用与访客104相关联的密钥进行加密。密钥对于管理程序105来说是未知的,从而防止管理程序105改变事件控制信息118,并且进一步保护访客104。下面相对于图4和图5进一步描述交替注入模式。
为了针对访客104和106的各个层设置安全模式,处理器核心102包括模式控制寄存器111。模式控制寄存器111包括多个字段,其中每个字段设置用于对应的访客级别的安全模式,从而允许独立地设置不同访客级别的安全模式。因此,例如,在一些实施方案中,安全层120处于受限注入模式中,同时非安全层132处于交替注入模式中。在一些实施方案中,模式控制寄存器111仅可由访客的安全层(例如,安全层120)编程,并且不可由管理程序105编程,从而进一步保护处理器101的事件处理路径。此外,在一些实施方案中,模式控制寄存器111不允许受限注入模式和交替注入模式对于同一访客层同时生效。
在一些实施方案中,通过将安全层120置于受限注入模式并且将非安全层132置于交替注入模式来增强访客104的安全性。在这种安排下,管理程序105将事件(例如,事件108)发信号通知给事件接口109,并且将对应的事件处置信息存储在事件队列130。响应于事件信号,安全层120(在受限注入模式中)从事件队列130检索事件处置信息并且确定事件处置信息是否符合指定的安全协议。如果否,则安全层120不将事件发信号通知给事件接口109。
如果事件处置信息匹配安全协议,则安全层120将用于事件的事件控制信息存储在存储器110的加密区域作为事件控制信息118。安全层120向事件接口109提供事件处置信息118。作为响应,并且响应于非安全层132处于交替注入模式中,事件接口109访问事件控制信息118,解密事件控制信息,并且使用解密的控制信息和事件处置信息来处理事件,诸如通过请求非安全层132来执行与事件相关联的事件处置程序(例如,中断或异常处置程序)。因此,事件处置经由事件接口109所提供的标准接口进行管理,但却由安全层120调用,而不是由管理程序105直接调用。这允许非安全层132以标准方式处置和响应事件,而不需要重新设计在非安全层132处执行的软件或事件接口109。
图2示出了根据一些实施方案的在处理器101处的在受限注入模式中的事件处理的示例。在所示示例中,虚拟机104包括两层:安全层120和非安全层132。如上所述,安全层120是访客104的安全部分,其受到保护而免于被非安全层132、管理程序105和其他非安全实体修改。非安全层132是访客104的执行访客操作系统和其他程序的层,并且通常可由其他实体(诸如访客104的其他程序或层)访问。
在操作中,管理程序105接收对事件(中断或异常)的指示。指示还包括事件信息,诸如事件的类型、事件所针对的访客的指示符等。响应于对事件的指示,管理程序105生成附加的事件信息,诸如生成事件的装置的标识符、事件的优先级级别等。管理程序105将事件处置信息234存储在存储在存储器110处的事件队列130处。
此外,响应于事件,管理程序向事件接口109提供事件信号208。在一些实施方案中,事件信号208是简单的异常信号(例如,x86异常信号),其不包括事件处置信息234或事件的类型或源的任何指示,而是仅发信号通知已发生了事件。响应于事件信号208,事件接口通知访客104。作为响应,安全层120执行事件处置程序以访问在存储器110处的事件队列230以检索事件处置信息234。在一些实施方案中,安全层120审查事件处置信息234是否符合指定的安全协议,诸如确保事件的源和类型是预期的源和类型,事件的优先级级别符合TPR信息等。如果事件处置信息234未能符合安全协议,则安全层120不将事件发信号通知给事件接口109以供处理,从而保护访客104免受潜在攻击。响应于事件处置信息234符合安全协议,安全层120将事件发信号通知给事件接口109以供正常的事件处理。
因此,如以上示例所示,在受限注入模式中,管理程序105被限制将事件信息直接传送到非安全层132。而是,管理程序105向安全层120提供对事件的相对简单的指示,并且经由仅可由访客104的安全层120访问的事件队列提供事件信息。从而保护非安全层132免受直接向非安全层132提供事件信息并且可能访问安全信息或以其他方式操纵访客104的恶意管理程序的影响。
图3是根据一些实施方案的以受限注入模式操作访客层的方法300的流程图。为了描述的目的,方法300是关于在图1的处理系统100处的示例实现方式来描述的。在框302处,管理程序105从处理器101的硬件资源(诸如从I/O控制模块107)接收对处理器事件的指示。作为响应,管理程序105确定与事件相关联的事件信息,诸如生成事件的资源、事件所针对的访客、与事件相关联的优先级级别等。在框304处,管理程序105将事件信息存储在位于存储器110处的事件队列230处。
在框306处,管理程序105向事件接口109提供指示事件的发生的信号,其中该信号指示事件所针对的访客。因此,如果事件针对访客104,则管理程序105向事件接口109提供指示该事件的信号。在一些实施方案中,事件接口忽略由管理程序105与信号一起提供的任何事件信息。因此,信号仅充当“门铃”,从而向访客指示事件已发生,而没有任何相关联的事件信息。
在框308处,响应于来自管理程序105的信号,事件接口109向安全层通知该事件。作为响应,安全层120访问事件队列230并且检索事件信息。如果事件信息符合事件安全协议,则安全层120将事件信息提供给非安全层232,诸如通过将事件指示给处理器101的事件接口109而进行。非安全层232执行异常处置程序以处理事件。如果事件信息不符合安全协议,则安全层120不将事件发信号通知给事件接口109,并且因此不处理事件,从而保护访客104免受利用。
图4示出了根据一些实施方案的在处理器101处的在交替注入模式中的事件处理的示例。在所示示例中,类似于图2的示例,虚拟机104包括两层:安全层120和非安全层132。如上所述,安全层120是访客104的安全部分,其受到保护而免于被非安全层232、管理程序105和其他非安全实体修改。如图2的示例中所述,非安全层132是访客104的执行访客操作系统和其他程序的层,并且通常可由访客104的其他程序或层访问。
此外,在所示示例中,存储器110包括加密区域,其被指定为虚拟机状态区(VMSA)区域442。VMSA区域442存储用与访客104唯一地相关联的密钥进行加密的数据。在一些实施方案中,密钥仅可由安全层120使用,并且不可由管理程序105使用。安全层120因此管理对VMSA区域442的所有访问。特别地,安全层120通过使用访客专用密钥分别加密和解密用于写入和读取的数据来管理向VMSA区域442写入数据和从VMSA区域442读取数据。在一些实施方案中,数据的加密和解密由处理器101的专用硬件(未示出)在安全层120的请求下实现。访客专用密钥对于管理程序105来说是未知的并且是不可访问的,并且存储在VMSA区域442处的数据因此对于管理程序105来说是不可访问的。
VMSA区域442存储事件控制信息444,其管理访客104处理什么事件以及如何处理那些事件中的一者或多者。例如,在一些实施方案中,事件控制信息444存储TPR信息,其指示被允许由访客104的操作系统处理的事件的最低优先级级别。操作系统根据常规操作系统协议设置TPR级别,并且向安全层120指示TPR级别,安全层120将TPR级别存储在事件控制信息444,如下面进一步所述。
在操作中,管理程序105从硬件资源(诸如I/O控制模块107)接收对事件的指示。作为响应,管理程序105确定与事件相关联的事件信息408。如上所述,事件信息408包括诸如与事件相关联的优先级级别、生成事件的硬件资源、事件的类型等信息。管理程序105将事件信息408直接或经由事件队列130提供给安全层120,如上面关于图2所描述的。
响应于事件信息408符合指定的安全协议,安全层120将用于事件的事件控制信息444存储在VMSA区域442处。在一些实施方案中,当信息存储在存储器110时,事件控制信息444由处理器101的硬件自动加密。此外,安全层120将事件连同事件信息408发信号通知给事件接口109。作为响应,事件接口109访问VMSA区域442处的事件控制信息444并且基于事件控制信息444和事件信息408处理事件。因此,在图4的示例中,管理程序105被限制访问管理哪些事件被处理和如何处理事件的事件控制信息,从而保护访客104免受恶意管理程序的影响。
图5示出了根据一些实施方案的以交替注入模式操作处理器的方法500的流程图。方法500是关于在图1的处理系统100处的示例实现方式进行描述的。在框502处,管理程序105从硬件资源(诸如从I/O控制模块107)接收对事件的指示。作为响应,在框504处,管理程序105向安全层120指示事件。在一些实施方案中,安全层120处于受限注入模式中,并且响应于事件指示,从事件队列130检索用于事件的事件处置信息。安全层120确定事件处置信息是否匹配指定的安全协议,并且如果不匹配,则阻止进一步处理事件。如果事件处置信息符合安全协议,则该方法继续前进至框506。
在框506处,访客104的安全层120将事件控制数据(诸如任务优先级级别(TPR))作为事件控制信息444存储在存储器110的VMSA区域442处。在存储过程之前或期间,安全层120用与访客104相关联的密钥对事件控制信息444进行加密,其中密钥对于管理程序105来说是未知且是不可访问的。
在框508处,访客104的安全层120经由事件接口109向非安全层132指示事件信息408已准备好进行处理。作为响应,事件接口109从VMSA 442检索加密的事件控制信息444,解密该信息,并且使用解密的事件控制信息444以使用标准事件处理协议来处理事件。
在一些实施方案中,上文所描述的技术的某些方面可由执行软件的处理系统的一个或多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可包括指令和某些数据,当由一个或多个处理器执行时,所述指令和某些数据操纵所述一个或多个处理器来执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储装置、例如闪存存储器的固态存储装置、高速缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储器装置等。存储在非暂时性计算机可读存储介质上的可执行指令可呈现源代码、汇编语言代码、对象代码或由一个或多个处理器解译或以其它方式执行的其它指令格式。
应注意,并不需要上文在一般描述中所描述的所有活动或元件,特定活动或装置的一部分可能是不需要的,并且可以执行一个或多个其他活动,或者可以包括除所描述的那些元件之外的元件。此外,列出活动的顺序不一定是执行活动的顺序。另外,已经参考具体实施方案描述了相应概念。然而,本领域普通技术人员应了解,在不脱离如所附权利要求书中所阐述的本公开范围的情况下,可作出各种修改和改变。因此,本说明书和附图将被视为说明性而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。
上文已经参照具体实施方案描述了益处、其他优点以及问题的解决方案。然而,所述益处、优点、问题解决方案以及可使任何益处、优点或解决方案出现或变得更突出的任何特征都不应被解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上所公开的特定实施方案只是说明性的,因为所公开的主题可以按受益于本文教义的本领域的技术人员显而易知的不同但等效的方式来修改和实践。除了如所附权利要求中所描述的之外,并不意图限于本文所示的构造或设计的细节。因此,明显的是,上文所公开的特定实施方案可被更改或修改,并且所有此类变化都被认为是在所公开的主题的范围内。因此,本文所寻求的保护如所附权利要求中所阐述。

Claims (20)

1.一种方法,其包括:
在访客程序处接收来自管理程序的对处理器事件的指示;
响应于接收到对所述处理器事件的所述指示,访问在指定存储器区域处的事件处置信息;以及
基于所述事件处置信息来处理所述处理器事件。
2.如权利要求1所述的方法,其中:
所述访客程序包括安全层和非安全层;以及
接收对所述处理器事件的所述指示包括在所述访客程序的所述安全层接收对所述处理器事件的所述指示。
3.如权利要求2所述的方法,其中:
访问事件处置信息包括所述安全层访问所述事件处置信息。
4.如权利要求2所述的方法,其中:
接收对所述处理器事件的所述指示包括在处理器的事件接口接收对所述处理器事件的所述指示。
5.如权利要求1所述的方法,其中:
所述指定存储器区域包括所述管理程序不可访问的存储器区域。
6.如权利要求5所述的方法,其中所述指定存储器区域是加密存储器区域。
7.如权利要求5所述的方法,其中所述事件处置信息包括任务优先级寄存器(TPR)信息。
8.一种方法,其包括:
在处理器处设置安全性寄存器的状态;以及
基于所述安全性寄存器的所述状态,由管理程序将对事件的通知限制于访客程序的一层,所述事件包括中断和异常中的至少一者。
9.如权利要求8所述的方法,其中限制对事件的通知包括:
在所述访客程序的安全层接收来自所述管理程序的对事件的指示;
响应于接收到所述指示,访问在指定存储器区域处的事件数据。
10.如权利要求9所述的方法,其中:
所述管理程序将所述事件数据存储在所述指定存储器区域。
11.如权利要求8所述的方法,其中限制对事件的通知包括:
接收来自所述管理程序的对事件的指示;
响应于所述指示,访问指定存储器区域以检索事件控制信息,所述指定存储器区域对于所述管理程序来说是不可访问的。
12.如权利要求11所述的方法,其中所述指定存储器区域是用与所述访客程序相关联的密钥加密的。
13.如权利要求11所述的方法,其中所述事件控制信息包括任务优先级寄存器(TPR)信息。
14.一种处理器,其包括:
处理器核心,所述处理器核心被配置为执行访客程序;
管理程序,所述管理程序被配置为向所述访客程序提供对处理器事件的指示;以及
所述访客程序,所述访客程序被配置为响应于接收到对所述处理器事件的所述指示,访问在指定存储器区域处的事件处置信息以及基于所述事件处置信息来处理所述处理器事件。
15.如权利要求14所述的处理器,其中:
所述访客程序包括:安全层,其被配置为接收对所述处理器事件的所述指示;以及非安全层。
16.如权利要求15所述的处理器,其中:
所述安全层被配置为访问所述事件处置信息。
17.如权利要求15所述的处理器,其中:
接收对所述处理器事件的所述指示包括在所述处理器的事件接口接收所述指示。
18.如权利要求14所述的处理器,其中:
所述指定存储器区域包括所述管理程序不可访问的存储器区域。
19.如权利要求18所述的处理器,其中所述指定存储器区域是加密存储器区域。
20.如权利要求19所述的处理器,其中所述事件处置信息包括任务优先级寄存器(TPR)信息。
CN202080068815.7A 2019-10-10 2020-10-09 处理器处的管理程序安全事件处置 Pending CN114868126A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962913487P 2019-10-10 2019-10-10
US62/913,487 2019-10-10
US16/712,190 US11842227B2 (en) 2019-10-10 2019-12-12 Hypervisor secure event handling at a processor
US16/712,190 2019-12-12
PCT/US2020/055049 WO2021072243A1 (en) 2019-10-10 2020-10-09 Hypervisor secure event handling at a processor

Publications (1)

Publication Number Publication Date
CN114868126A true CN114868126A (zh) 2022-08-05

Family

ID=75382943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080068815.7A Pending CN114868126A (zh) 2019-10-10 2020-10-09 处理器处的管理程序安全事件处置

Country Status (6)

Country Link
US (1) US11842227B2 (zh)
EP (1) EP4042303A4 (zh)
JP (1) JP2022551684A (zh)
KR (1) KR20220080126A (zh)
CN (1) CN114868126A (zh)
WO (1) WO2021072243A1 (zh)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110197004A1 (en) * 2010-02-05 2011-08-11 Serebrin Benjamin C Processor Configured to Virtualize Guest Local Interrupt Controller
US8910158B2 (en) 2011-12-14 2014-12-09 Intel Corporation Virtualizing interrupt priority and delivery
US8892802B2 (en) 2012-01-01 2014-11-18 International Business Machines Corporation Enhancing interrupt handling in a virtual environment
US9400885B2 (en) 2014-01-10 2016-07-26 Bitdefender IPR Management Ltd. Computer security systems and methods using virtualization exceptions
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
GB2532415A (en) 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US11379385B2 (en) * 2016-04-16 2022-07-05 Vmware, Inc. Techniques for protecting memory pages of a virtual computing instance
US10459850B2 (en) * 2016-09-20 2019-10-29 Advanced Micro Devices, Inc. System and method for virtualized process isolation including preventing a kernel from accessing user address space
US20180165224A1 (en) * 2016-12-12 2018-06-14 Ati Technologies Ulc Secure encrypted virtualization
US11687654B2 (en) * 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10860359B2 (en) * 2018-02-28 2020-12-08 Red Hat, Inc. Key management for encrypted virtual machines
US11074094B2 (en) * 2018-08-29 2021-07-27 Red Hat, Inc. Securing hypercall support for user space processes in virtual machines
US11693952B2 (en) * 2018-10-31 2023-07-04 Vmware, Inc. System and method for providing secure execution environments using virtualization technology
US11048800B2 (en) * 2018-12-17 2021-06-29 Intel Corporation Composable trustworthy execution environments
US10824349B1 (en) * 2018-12-17 2020-11-03 Advanced Micro Devices, Inc. Secured input/output resource protection
US11308215B2 (en) * 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US11099878B2 (en) * 2019-06-28 2021-08-24 Intel Corporation Scalable virtual machine operation inside trust domains within the trust domain architecture

Also Published As

Publication number Publication date
JP2022551684A (ja) 2022-12-13
US20210109798A1 (en) 2021-04-15
EP4042303A4 (en) 2023-10-18
US11842227B2 (en) 2023-12-12
EP4042303A1 (en) 2022-08-17
WO2021072243A1 (en) 2021-04-15
KR20220080126A (ko) 2022-06-14

Similar Documents

Publication Publication Date Title
CN107851151B (zh) 保护虚拟机的状态信息
EP3281146B1 (en) Isolating guest code and data using multiple nested page tables
EP3201820B1 (en) Protecting application secrets from operating system attacks
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
Cho et al. {Hardware-Assisted}{On-Demand} Hypervisor Activation for Efficient Security Critical Code Execution on Mobile Devices
US9430642B2 (en) Providing virtual secure mode with different virtual trust levels each having separate memory access protections, interrupt subsystems and private processor states
US10095862B2 (en) System for executing code with blind hypervision mechanism
US11442770B2 (en) Formally verified trusted computing base with active security and policy enforcement
CN110874468A (zh) 应用程序安全保护方法以及相关设备
WO2016164424A1 (en) Isolating guest code and data using multiple nested page tables
EP3314502B1 (en) Protecting state information for virtual machines
US10430223B2 (en) Selective monitoring of writes to protected memory pages through page table switching
US11842227B2 (en) Hypervisor secure event handling at a processor
Lie et al. Using hypervisors to secure commodity operating systems
AT&T
EP3314516B1 (en) System management mode privilege architecture
US11893107B2 (en) Apparatus and method for preventing security threat to virtual machine
US20240111563A1 (en) Security for simultaneous multithreading processors
US20230289204A1 (en) Zero Trust Endpoint Device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination