安全特权等级执行和访问保护的制作方法

文档序号:9672552阅读:418来源:国知局
安全特权等级执行和访问保护的制作方法【专利说明】安全特权等级执行和访问保护[0001]背景[0002]对计算机系统的攻击为人熟知。防止攻击(以及防止写得较差的代码导致问题)的一种早先方式是在低特权等级运行用户模式代码中的用户应用,且在高特权等级运行系统(有时称为特权、核心或监督者)模式代码。[0003]—般而言,在系统特权等级运行的系统模式代码可访问基本上任何计算资源,而用户模式代码则不能。从而,一种常见的现代攻击基于经由隐错(bug)诱使系统模式代码用系统特权等级运行用户模式代码。通过诸如缓冲区溢出等各种漏洞,系统模式代码跳入到或返回到实际上是恶意用户模式代码的代码,该恶意用户模式代码随后以系统模式特权接管执行流。攻击基于以下概念:尽管用户模式代码不能访问系统模式数据或在系统模式中运行,然而反过来却不是如此。[0004]被称为监督者模式访问阻止(SMAP)和监督者模式执行阻止(SMEP)的最近的硬件特性尝试控制监督者模式代码的数据和执行访问。然而,这些特性不针对各种各样的攻击均进行保护,这部分是因为在页表(pagetable)中易于出错。而且,这些特性将用户模式对照监督者(supervisor)模式区别对待,但是不对超级监督者(hypervisor)模式中运行的代码做出任何区分。[0005]概述[0006]提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。[0007]简言之,本文描述的主题的各方面涉及阻止(例如,经由诸如硬件或超级监管者等逻辑)在另一种模式或在一不同特权等级运行的代码的访问和/或执行。在一个方面,可寻址m空间被分为块,其中所述块中的至少一些块与标识所述块的一个或多个执行能力和/或一个或多个访问能力的策略设置相关联。至少一个策略设置指示该块中的代码是否能在系统特权等级执行,或者该块中的数据是否能作为系统模式数据被访问。执行代码或访问数据的请求被处理,其中该请求具有该请求的特权等级的指示。[0008]实施针对请求是否允许代码执行或数据访问,例如通过硬件和/或软件中的实施逻辑来执行。实施包括标识与该请求相关联的块,访问策略设置来确定该块的执行或数据访问能力,以及基于特权等级、该请求是否将执行代码或访问数据以及与该请求相关联的块的能力来允许或拒绝请求。[0009]在一个方面,耦合至客软件的超级监督者包括(用硬件和/或软件实现的)实施逻辑,该实施逻辑被配置成阻止其它代码在与该其它代码的源代码所对应的模式不同的另一模式或一更高特权等级中执行。该实施逻辑对照针对地址空间的块维持的执行能力数据来评估与在一地址处的代码执行有关的来自一源的请求,以确定该地址是否对应于在其中该源被允许执行代码的块。在一个方面,该实施逻辑被进一步配置成对照针对地址空间的块维持的数据访问信息来评估与在一地址处的数据访问有关的来自一源的请求,以确定该地址是否对应于在其中该源被允许访问数据的块。[0010]在一个实现中,代码执行和数据访问策略在软件或硬件中的超级监督者处实施,包括通过处理与代码执行或数据访问有关的请求,对照策略设置来评估请求的源以及与该请求相关联的地址。超级监督者和/或硬件确定该请求针对在与该请求相关联的地址处的源被允许还是拒绝。[0011]附图简述[0012]作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:[0013]图1是表示根据一个示例实现的示例组件的框图,用于在该示例组件所耦合至的超级监督者逻辑或硬件逻辑处实施数据访问策略和代码执行策略。[0014]图2是根据一个示例实现的可如何将可寻址地址空间划分为块的表示,其中块由地址内的位来表示,其中所述块与数据访问策略和代码执行策略相关联。[0015]图3是根据一个示例实现的维持块内的页结构信息的示例寄存器的表示,该页结构信息由超级监督者或其它系统模式(例如最有特权的)代码用于维持和评估数据访问策略和代码执行策略。[0016]图4是根据一个示例实现的维持块策略数据的示例寄存器的表示,该块策略数据由超级监督者或其它系统模式(例如最有特权的)代码用于维持和评估超级监督者数据访问策略和代码执行策略。[0017]图5是根据一个示例实现的维持块策略数据的示例寄存器的表示,该块策略数据由超级监督者或其它系统模式(例如最有特权的)代码用于维持和评估用户和系统模式数据访问策略和代码执行策略。[0018]图6是表示根据一个示例实现的示例步骤的流程图,所述示例步骤可被采用以基于请求方实体和请求类型来分配来自超级监督者选择的块的空间。[0019]图7是表示根据一个示例实现的示例步骤的流程图,所述示例步骤可被采用以基于与与请求相关联的地址和请求者的源来实施是允许还是拒绝数据访问请求。[0020]图8是表示根据一个示例实现的示例步骤的流程图,所述示例步骤可被采用以基于与与请求相关联的地址和请求者的源来实施是允许还是拒绝与代码执行有关的请求。[0021]图9是表示其中可实现本文所描述各实施例的一个或多个方面的示例非限制计算系统和操作环境的框图。[0022]详细描述[0023]本文描述的技术的各方面一般涉及使得控制存储器的物理分配的CPU软件控制器访问和执行以及在更少特权等级运行的软件的访问和执行。控制物理存储器分配的软件的示例包括管理虚拟机/虚拟化的超级监督者,或者不存在超级监督者/虚拟化时的操作系统。[0024]在一个方面,访问/执行被控制,而不管任何时间更少特权等级软件的任何无意或有意的动作。这一点的示例包括迫使用户模式软件仅在用户模式中执行而不具有其它访问,以及系统模式软件仅在系统模式中执行而不具有其它访问。作为结果,即使隐错或其它恶意攻击尝试导致系统模式软件跳入或返回至用户模式地址,执行也被阻止。数据访问可被类似地限制。[0025]在一个方面,代码的访问/执行在建立经准许访问之后被控制。例如,超级监督者代码能够在仅超级监督者模式中执行,而没有其它访问,包括对其它模式的超级监督者访问。数据读/写访问仅限于超级监督者模式,而不允许对系统数据或用户模式数据的其它访问。[0026]为此目的,超级监督者和/或其它系统模式(例如,最多特权的)代码将访问能力链接到特权等级,由此逻辑(例如,以硬件和/或以超级监督者代码)使用现有存储器管理(例如在页粒度下)分别控制每种类型的访问。作为结果,此模式对更少特权等级软件不具有直接影响,且以最小的硬件改变提供了与现有架构的兼容性。[0027]在一个方面,机器的虚拟存储器地址空间被划分为多个块,诸如8个块(例如使用三比特地址空间作为引用所述块中的一个块的块标识符(例如“标签”)等。每个块具有由超级监督者/其它系统模式(例如,最多特权的)代码定义的属性;例如,一个块可被指定为仅用于用户模式数据页,而另一块被指定为仅用于用户模式执行页。另一块可被指定为用于特权模式数据页、一个块用于特权模式执行页、一个块用于超级监督者模式数据页、一个块用于超级监督者模式执行页,等等。一旦建立,则超级监督者或其它系统模式(例如最多特权的)代码具有锁定这些指定的能力(例如,保持在一个或多个机器状态寄存器中以供超级监督者读取),直到下次重启。[0028]当存储器被分配时,超级监督者/其它系统模式(例如,最多特权的)代码仅从应用到请求方实体的块(例如,用于用户模式代码分配请求的用户执行块)分配空间。当访问存储器或执行代码的请求传入时,(例如,超级监督者和/或硬件中的)实施逻辑实施与该请求相关联的指定,例如,系统代码可仅在系统模式可执行代码块中执行,超级监督者代码可仅在超级监督者模式可执行代码块中执行,等。[0029]应当理解,本文中的任何示例均是非限制的。例如,超级监督者被示出为在虚拟机中建立访问策略,然而,在没有虚拟化/超级监督者的机器中,操作系统可执行类似操作。而且,块和寄存器的各种配置是示例性的,而替换配置是可行的。因此,本发明不限制于本文所述的任何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的任何实施例、方面、概念、结构、功能或示例都是非限制性的,并且本发明一般能够以在概括而言的计算机保护方面提供好处和优点的各种方式来使用。[0030]图1示出了一般化框图,其中客虚拟机1021-102n请求对物理存储器(RAM)104的访问。一般而言,而且如所公知地,超级监督者106负责将因客而异的地址映射到客物理地址到RAM104中的正确的实际物理存储器位置。该映射基于使用客页表108和虚拟页表110的两级翻译。已知高速缓存和其它技术被用于更高效地做出此翻译。[0031]本文描述了将可寻址空间分为块,以及超监督者当前第1页1 2 3 4 
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1